Rework custom scans to work more like the new extensible node stuff.
Per discussion, the new extensible node framework is thought to be
better designed than the custom path/scan/scanstate stuff we added
in PostgreSQL 9.5. Rework the latter to be more like the former.
This is not backward-compatible, but we generally don't promise that
for C APIs, and there probably aren't many people using this yet
anyway.
KaiGai Kohei, reviewed by Petr Jelinek and me. Some further
cosmetic changes by me.
Branch
------
master
Details
-------
http://git.postgresql.org/pg/commitdiff/f9143d102ffd0947ca904c62b1d3d6fd587e0c80
Modified Files
--------------
src/backend/commands/explain.c | 1 +
src/backend/nodes/extensible.c | 88 ++++++++++++++++++++++++++-------
src/backend/nodes/outfuncs.c | 6 +--
src/backend/nodes/readfuncs.c | 19 ++-----
src/backend/optimizer/plan/createplan.c | 1 +
src/include/executor/nodeCustom.h | 1 +
src/include/nodes/execnodes.h | 35 +------------
src/include/nodes/extensible.h | 85 ++++++++++++++++++++++++++++++-
src/include/nodes/plannodes.h | 14 +-----
src/include/nodes/relation.h | 19 +------
10 files changed, 168 insertions(+), 101 deletions(-)