Previously, all CustomScan providers had to support projections, but there may be cases where this is inconvenient. Add a flag bit to say if it's supported.
Important item for the release notes: this is non-backwards-compatible since the default is now to assume that CustomScan providers can't project, instead of assuming that they can. It's fail-soft, but could result in visible performance penalties due to adding unnecessary Result nodes.
Sven Klemm, reviewed by Aleksander Alekseev; some cosmetic fiddling by me.
955b3e0f92 Allow CustomScan providers to say whether they support projections.
doc/src/sgml/custom-scan.sgml | 13 ++++++++++---
src/backend/executor/execAmi.c | 17 +++++------------
src/backend/optimizer/plan/createplan.c | 8 ++++++++
src/include/nodes/extensible.h | 4 +++-
4 files changed, 26 insertions(+), 16 deletions(-)