Thread: pgsql: Basic foreign table support.

pgsql: Basic foreign table support.

From
Robert Haas
Date:
Basic foreign table support.

Foreign tables are a core component of SQL/MED.  This commit does
not provide a working SQL/MED infrastructure, because foreign tables
cannot yet be queried.  Support for foreign table scans will need to
be added in a future patch.  However, this patch creates the necessary
system catalog structure, syntax support, and support for ancillary
operations such as COMMENT and SECURITY LABEL.

Shigeru Hanada, heavily revised by Robert Haas

Branch
------
master

Details
-------
http://git.postgresql.org/gitweb?p=postgresql.git;a=commitdiff;h=0d692a0dc9f0e532c67c577187fe5d7d323cb95b

Modified Files
--------------
contrib/pageinspect/rawpage.c                  |    5 +
contrib/pgstattuple/pgstattuple.c              |    3 +
doc/src/sgml/catalogs.sgml                     |   64 +++++-
doc/src/sgml/information_schema.sgml           |  131 +++++++++-
doc/src/sgml/ref/allfiles.sgml                 |    3 +
doc/src/sgml/ref/alter_default_privileges.sgml |    4 +-
doc/src/sgml/ref/alter_foreign_table.sgml      |  315 +++++++++++++++++++++
doc/src/sgml/ref/comment.sgml                  |    8 +-
doc/src/sgml/ref/create_foreign_table.sgml     |  188 +++++++++++++
doc/src/sgml/ref/create_sequence.sgml          |    2 +-
doc/src/sgml/ref/create_table.sgml             |    4 +-
doc/src/sgml/ref/create_view.sgml              |    2 +-
doc/src/sgml/ref/drop_foreign_table.sgml       |  112 ++++++++
doc/src/sgml/ref/pg_dump.sgml                  |    6 +-
doc/src/sgml/ref/psql-ref.sgml                 |   35 ++-
doc/src/sgml/ref/security_label.sgml           |    5 +-
doc/src/sgml/reference.sgml                    |    3 +
src/backend/access/common/reloptions.c         |    5 +-
src/backend/access/heap/heapam.c               |    3 +-
src/backend/catalog/Makefile                   |    1 +
src/backend/catalog/aclchk.c                   |  101 ++++++-
src/backend/catalog/dependency.c               |   10 +
src/backend/catalog/heap.c                     |   33 ++-
src/backend/catalog/information_schema.sql     |   73 +++++-
src/backend/catalog/objectaddress.c            |    8 +
src/backend/catalog/system_views.sql           |    5 +-
src/backend/commands/alter.c                   |    3 +
src/backend/commands/analyze.c                 |    2 +-
src/backend/commands/comment.c                 |   17 +-
src/backend/commands/copy.c                    |   11 +
src/backend/commands/foreigncmds.c             |   93 +++++++-
src/backend/commands/seclabel.c                |    6 +-
src/backend/commands/tablecmds.c               |  348 ++++++++++++++++++------
src/backend/commands/vacuum.c                  |    2 +-
src/backend/executor/execMain.c                |    6 +
src/backend/nodes/copyfuncs.c                  |   36 +++-
src/backend/nodes/equalfuncs.c                 |   15 +
src/backend/nodes/outfuncs.c                   |   14 +
src/backend/optimizer/util/plancat.c           |    6 +
src/backend/parser/gram.y                      |  137 +++++++++-
src/backend/parser/parse_utilcmd.c             |    7 +-
src/backend/tcop/utility.c                     |   47 ++++
src/backend/utils/adt/acl.c                    |    4 +
src/backend/utils/cache/syscache.c             |   12 +
src/bin/pg_dump/dumputils.c                    |    2 +
src/bin/pg_dump/pg_backup_archiver.c           |    2 +
src/bin/pg_dump/pg_dump.c                      |   73 ++++-
src/bin/psql/command.c                         |    6 +-
src/bin/psql/describe.c                        |  123 ++++++++-
src/bin/psql/describe.h                        |    3 +
src/bin/psql/help.c                            |    4 +-
src/bin/psql/tab-complete.c                    |   86 +++++-
src/include/catalog/catversion.h               |    2 +-
src/include/catalog/dependency.h               |    1 +
src/include/catalog/indexing.h                 |    3 +
src/include/catalog/pg_class.h                 |    1 +
src/include/catalog/pg_foreign_table.h         |   53 ++++
src/include/commands/defrem.h                  |    5 +
src/include/nodes/nodes.h                      |    1 +
src/include/nodes/parsenodes.h                 |   18 ++-
src/include/utils/acl.h                        |    2 +
src/include/utils/syscache.h                   |    1 +
src/test/regress/expected/alter_table.out      |    6 +-
src/test/regress/expected/foreign_data.out     |  125 +++++++++-
src/test/regress/expected/rules.out            |    6 +-
src/test/regress/expected/sanity_check.out     |    3 +-
src/test/regress/expected/type_sanity.out      |    2 +-
src/test/regress/sql/foreign_data.sql          |   63 +++++
src/test/regress/sql/type_sanity.sql           |    2 +-
69 files changed, 2276 insertions(+), 212 deletions(-)