RE: Add support for specifying tables in pg_createsubscriber.

From: "Zhijie Hou (Fujitsu)" <houzj(dot)fnst(at)fujitsu(dot)com>
To: Peter Smith <smithpb2250(at)gmail(dot)com>, Shubham Khanna <khannashubham1197(at)gmail(dot)com>
Cc: vignesh C <vignesh21(at)gmail(dot)com>, "Hayato Kuroda (Fujitsu)" <kuroda(dot)hayato(at)fujitsu(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: RE: Add support for specifying tables in pg_createsubscriber.
Date: 2025-08-25 07:22:56
Message-ID: TY4PR01MB16907D0161A3CB98533F62650943EA@TY4PR01MB16907.jpnprd01.prod.outlook.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Monday, August 25, 2025 8:08 AM Peter Smith <smithpb2250(at)gmail(dot)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

Best Regards,
Hou zj

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Nishant Sharma 2025-08-25 07:51:45 Problem in 'ORDER BY' of a column using a created collation?
Previous Message Zhijie Hou (Fujitsu) 2025-08-25 07:17:37 RE: Add support for specifying tables in pg_createsubscriber.