Thread: pgsql: Support writable foreign tables.

pgsql: Support writable foreign tables.

From
Tom Lane
Date:
Support writable foreign tables.

This patch adds the core-system infrastructure needed to support updates
on foreign tables, and extends contrib/postgres_fdw to allow updates
against remote Postgres servers.  There's still a great deal of room for
improvement in optimization of remote updates, but at least there's basic
functionality there now.

KaiGai Kohei, reviewed by Alexander Korotkov and Laurenz Albe, and rather
heavily revised by Tom Lane.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/21734d2fb896e0ecdddd3251caa72a3576e2d415

Modified Files
--------------
contrib/file_fdw/input/file_fdw.source            |    1 -
contrib/file_fdw/output/file_fdw.source           |   10 +-
contrib/postgres_fdw/connection.c                 |   67 +-
contrib/postgres_fdw/deparse.c                    |  303 ++++-
contrib/postgres_fdw/expected/postgres_fdw.out    | 1509 +++++++++++++++++++++
contrib/postgres_fdw/postgres_fdw.c               | 1066 +++++++++++++--
contrib/postgres_fdw/postgres_fdw.h               |   18 +-
contrib/postgres_fdw/sql/postgres_fdw.sql         |   74 +
doc/src/sgml/ddl.sgml                             |   31 +-
doc/src/sgml/fdwhandler.sgml                      |  439 ++++++-
doc/src/sgml/file-fdw.sgml                        |    7 +-
doc/src/sgml/postgres-fdw.sgml                    |    5 +-
doc/src/sgml/ref/create_foreign_data_wrapper.sgml |   10 +-
src/backend/commands/copy.c                       |   15 +-
src/backend/commands/explain.c                    |   35 +-
src/backend/executor/execMain.c                   |   42 +-
src/backend/executor/nodeForeignscan.c            |    3 +-
src/backend/executor/nodeModifyTable.c            |  151 ++-
src/backend/nodes/copyfuncs.c                     |    1 +
src/backend/nodes/outfuncs.c                      |    1 +
src/backend/optimizer/plan/createplan.c           |   54 +-
src/backend/optimizer/plan/planner.c              |   15 +-
src/backend/optimizer/prep/preptlist.c            |    3 +-
src/backend/parser/analyze.c                      |   13 +-
src/backend/rewrite/rewriteHandler.c              |   27 +-
src/include/foreign/fdwapi.h                      |   69 +-
src/include/nodes/execnodes.h                     |    7 +-
src/include/nodes/plannodes.h                     |   38 +-
src/include/optimizer/planmain.h                  |    3 +-
29 files changed, 3671 insertions(+), 346 deletions(-)