Обсуждение: pgsql: Create the catalog infrastructure for foreign-data-wrapper handl

Поиск
Список
Период
Сортировка

pgsql: Create the catalog infrastructure for foreign-data-wrapper handl

От
Tom Lane
Дата:
Create the catalog infrastructure for foreign-data-wrapper handlers.

Add a fdwhandler column to pg_foreign_data_wrapper, plus HANDLER options
in the CREATE FOREIGN DATA WRAPPER and ALTER FOREIGN DATA WRAPPER commands,
plus pg_dump support for same.  Also invent a new pseudotype fdw_handler
with properties similar to language_handler.

This is split out of the "FDW API" patch for ease of review; it's all stuff
we will certainly need, regardless of any other details of the FDW API.
FDW handler functions will not actually get called yet.

In passing, fix some omissions and infelicities in foreigncmds.c.

Shigeru Hanada, Jan Urbanski, Heikki Linnakangas

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/327e0250716f12fe94b62669d25e572b40a8fba5

Modified Files
--------------
doc/src/sgml/catalogs.sgml                        |   38 +++--
doc/src/sgml/datatype.sgml                        |    9 +
doc/src/sgml/ref/alter_foreign_data_wrapper.sgml  |   39 +++-
doc/src/sgml/ref/create_foreign_data_wrapper.sgml |   50 ++++--
src/backend/commands/foreigncmds.c                |  209 +++++++++++++++++----
src/backend/foreign/foreign.c                     |    1 +
src/backend/nodes/copyfuncs.c                     |    5 +-
src/backend/nodes/equalfuncs.c                    |    5 +-
src/backend/parser/gram.y                         |   46 +++--
src/backend/utils/adt/pseudotypes.c               |   27 +++
src/bin/pg_dump/pg_dump.c                         |   45 ++++--
src/bin/pg_dump/pg_dump.h                         |    1 +
src/bin/psql/describe.c                           |   11 +-
src/include/catalog/catversion.h                  |    2 +-
src/include/catalog/pg_foreign_data_wrapper.h     |   12 +-
src/include/catalog/pg_proc.h                     |    4 +
src/include/catalog/pg_type.h                     |    2 +
src/include/foreign/foreign.h                     |    3 +-
src/include/nodes/parsenodes.h                    |    5 +-
src/include/utils/builtins.h                      |    2 +
src/test/regress/expected/foreign_data.out        |  184 +++++++++---------
src/test/regress/sql/foreign_data.sql             |    6 +-
22 files changed, 496 insertions(+), 210 deletions(-)