]> git.ipfire.org Git - thirdparty/postgresql.git/commit
CREATE SUBSCRIPTION ... SERVER.
authorJeff Davis <jdavis@postgresql.org>
Fri, 6 Mar 2026 16:27:56 +0000 (08:27 -0800)
committerJeff Davis <jdavis@postgresql.org>
Fri, 6 Mar 2026 16:27:56 +0000 (08:27 -0800)
commit8185bb53476378443240d57f7d844347d5fae1bf
tree8d1d2745225fe3f8271e93250245ca3cb94d7703
parent868825aaeb4099081364b563e532c30c1b31cabd
CREATE SUBSCRIPTION ... SERVER.

Allow CREATE SUBSCRIPTION to accept a foreign server using the SERVER
clause instead of a raw connection string using the CONNECTION clause.

  * Enables a user with sufficient privileges to create a subscription
    using a foreign server by name without specifying the connection
    details.

  * Integrates with user mappings (and other FDW infrastructure) using
    the subscription owner.

  * Provides a layer of indirection to manage multiple subscriptions
    to the same remote server more easily.

Also add CREATE FOREIGN DATA WRAPPER ... CONNECTION clause to specify
a connection_function. To be eligible for a subscription, the foreign
server's foreign data wrapper must specify a connection_function.

Add connection_function support to postgres_fdw, and bump postgres_fdw
version to 1.3.

Bump catversion.

Reviewed-by: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
Reviewed-by: Shlok Kyal <shlok.kyal.oss@gmail.com>
Reviewed-by: Masahiko Sawada <sawada.mshk@gmail.com>
Reviewed-by: Amit Kapila <amit.kapila16@gmail.com>
Discussion: https://postgr.es/m/61831790a0a937038f78ce09f8dd4cef7de7456a.camel@j-davis.com
36 files changed:
contrib/postgres_fdw/Makefile
contrib/postgres_fdw/connection.c
contrib/postgres_fdw/expected/postgres_fdw.out
contrib/postgres_fdw/meson.build
contrib/postgres_fdw/postgres_fdw--1.2--1.3.sql [new file with mode: 0644]
contrib/postgres_fdw/postgres_fdw.control
contrib/postgres_fdw/sql/postgres_fdw.sql
contrib/postgres_fdw/t/010_subscription.pl [new file with mode: 0644]
doc/src/sgml/logical-replication.sgml
doc/src/sgml/postgres-fdw.sgml
doc/src/sgml/ref/alter_foreign_data_wrapper.sgml
doc/src/sgml/ref/alter_subscription.sgml
doc/src/sgml/ref/create_foreign_data_wrapper.sgml
doc/src/sgml/ref/create_server.sgml
doc/src/sgml/ref/create_subscription.sgml
src/backend/catalog/dependency.c
src/backend/catalog/pg_subscription.c
src/backend/catalog/system_views.sql
src/backend/commands/foreigncmds.c
src/backend/commands/subscriptioncmds.c
src/backend/foreign/foreign.c
src/backend/parser/gram.y
src/backend/replication/logical/worker.c
src/bin/pg_dump/pg_dump.c
src/bin/pg_dump/pg_dump.h
src/bin/psql/describe.c
src/bin/psql/tab-complete.in.c
src/include/catalog/catversion.h
src/include/catalog/pg_foreign_data_wrapper.h
src/include/catalog/pg_subscription.h
src/include/foreign/foreign.h
src/include/nodes/parsenodes.h
src/test/regress/expected/oidjoins.out
src/test/regress/expected/subscription.out
src/test/regress/regress.c
src/test/regress/sql/subscription.sql