pgsql: Basic foreign table support.

Started by Robert Haasabout 15 years ago3 messages
#1Robert Haas
rhaas@postgresql.org

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(-)

#2Magnus Hagander
magnus@hagander.net
In reply to: Robert Haas (#1)
Re: [COMMITTERS] pgsql: Basic foreign table support.

Typo, I think:

-               (errmsg("skipping \"%s\" --- cannot vacuum indexes,
views, or special system tables",
+               (errmsg("skipping \"%s\" --- cannot only non-tables or
special system tables",

//Magnus

On Sun, Jan 2, 2011 at 05:48, Robert Haas <rhaas@postgresql.org> wrote:

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
--------------

--
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/

#3Robert Haas
robertmhaas@gmail.com
In reply to: Magnus Hagander (#2)
Re: [COMMITTERS] pgsql: Basic foreign table support.

On Sun, Jan 2, 2011 at 4:24 AM, Magnus Hagander <magnus@hagander.net> wrote:

Typo, I think:

-               (errmsg("skipping \"%s\" --- cannot vacuum indexes,
views, or special system tables",
+               (errmsg("skipping \"%s\" --- cannot only non-tables or
special system tables",

Oops, fixed.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company