Add ForeignScan executor node and hook points.
authorShigeru Hanada <[email protected]>
Mon, 7 Feb 2011 06:06:27 +0000 (15:06 +0900)
committerShigeru Hanada <[email protected]>
Tue, 8 Feb 2011 08:49:08 +0000 (17:49 +0900)
commit38636e34a03f9a0d9fdc7a2948547fcda3eac9b4
tree4015635e86ca484898c855441e7e81e30d838c20
parent0aebead7e3cc39ccdc710f859951f44d7aa0d9c2
Add ForeignScan executor node and hook points.

ForeignScan node uses FDW handler to execut a scan on a foreign table.
FDW should supply PlanRelScan, BeginScan, Iterate and EndScan at least.
If FDW has more efficient way to reset the scan than using the pair of
EndScan and BeginScan, FDW can supply ReScan too.
28 files changed:
doc/src/sgml/ref/explain.sgml
doc/src/sgml/ref/lock.sgml
doc/src/sgml/ref/select.sgml
src/backend/commands/explain.c
src/backend/executor/Makefile
src/backend/executor/execAmi.c
src/backend/executor/execProcnode.c
src/backend/executor/nodeForeignscan.c [new file with mode: 0644]
src/backend/executor/nodeLockRows.c
src/backend/foreign/foreign.c
src/backend/nodes/copyfuncs.c
src/backend/nodes/outfuncs.c
src/backend/optimizer/path/allpaths.c
src/backend/optimizer/plan/createplan.c
src/backend/optimizer/plan/setrefs.c
src/backend/optimizer/plan/subselect.c
src/backend/optimizer/util/pathnode.c
src/backend/optimizer/util/plancat.c
src/include/executor/nodeForeignscan.h [new file with mode: 0644]
src/include/foreign/fdwapi.h [new file with mode: 0644]
src/include/foreign/foreign.h
src/include/nodes/execnodes.h
src/include/nodes/nodes.h
src/include/nodes/plannodes.h
src/include/nodes/relation.h
src/include/optimizer/pathnode.h
src/test/regress/expected/foreign_data.out
src/test/regress/sql/foreign_data.sql