executor/spi.h includes far more than it needs, starting with postgres.h
which as a general rule we don't expect any other header file to
include. I think the argument for this was to keep things simple for
SPI-using loadable modules, but I doubt that it's really improving their
lives much. A quick look through the existing files that include spi.h
shows that most of them have to include a pile of other stuff anyway.
I propose changing spi.h to follow the same include-only-what-you-must
rule as every other backend header file. Thoughts?
regards, tom lane