Re: Add support for specifying tables in pg_createsubscriber.
Shubham Khanna <khannashubham1197@gmail.com>
From: Shubham Khanna <khannashubham1197@gmail.com>
To: "Zhijie Hou (Fujitsu)" <houzj.fnst@fujitsu.com>
Cc: Peter Smith <smithpb2250@gmail.com>, vignesh C <vignesh21@gmail.com>, "Hayato Kuroda (Fujitsu)" <kuroda.hayato@fujitsu.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-09-02T11:42:04Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Support existing publications in pg_createsubscriber.
- 85ddcc2f4cde 19 (unreleased) landed
Attachments
- v4-0001-Support-existing-publications-in-pg_createsubscri.patch (application/octet-stream) patch v4-0001
On Mon, Aug 25, 2025 at 12:53 PM Zhijie Hou (Fujitsu) <houzj.fnst@fujitsu.com> wrote: > > On Monday, August 25, 2025 8:08 AM Peter Smith <smithpb2250@gmail.com> wrote: > > > > IIUC, the only purpose of the proposed '--table' spec is to allow some users the > > ability to tweak the default "CREATE PUBLICATION p FOR ALL TABLES;" that > > the 'pg_createsubscriber' tool would otherwise construct. > > > > But --table is introducing problems too: e.g. > > - tricky option ordering rules (e.g. most recent --database if dbname not > > specified?) > > - too many --table may be needed; redundant repeating of databases and > > schemas also seems very verbose. > > - limitations for syntax (e.g. what about FOR TABLES IN SCHEMA?) > > - limitations for future syntax (e.g. what about SEQUENCES?; what about > > EXCEPT?) > > > > Can these problems disappear just by slightly changing the meaning of the > > existing '--publication' option to allow specifying more than just the > > publication name: e.g. > > --publication = 'pub1' ==> "CREATE PUBLICATION pub1 FOR ALL TABLES;" > > --publication = 'pub1 FOR TABLE t1,t2(c1,c2),t3' ==> "CREATE > > PUBLICATION pub1 FOR TABLE t1,t2(c1,c2),t3;" > > --publication = 'pub1 FOR TABLES IN SCHEMA s1' ==> "CREATE > > PUBLICATION > > pub1 FOR TABLES IN SCHEMA s1;" > > --publication = 'pub1 FOR ALL TABLES WITH (publish_via_partition_root)' > > ==> "CREATE PUBLICATION pub1 FOR ALL TABLES WITH > > (publish_via_partition_root);" > > I think embedding commands directly in the option value poses SQL injection > risks, so is not very safe. We could directly allow users to use an existing > publication (as mentioned by Euler[1]). > > [1] https://www.postgresql.org/message-id/30cc34eb-07a0-4b55-b4fe-6c526886b2c4%40app.fastmail.com > I have incorporated the latest approach suggested by Hou-san at [1] and added a new --existing-publication option. This enhancement allows users to specify existing publications instead of always creating new ones. The attached patch includes the corresponding changes. [1] - https://www.postgresql.org/message-id/TY4PR01MB169075A23F8D5EED4154A4AF3943EA%40TY4PR01MB16907.jpnprd01.prod.outlook.com Thanks and regards, Shubham Khanna.