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: vignesh C <vignesh21@gmail.com>, "Hayato Kuroda (Fujitsu)" <kuroda.hayato@fujitsu.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-08-14T10:12:44Z
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
- v2-0001-Support-tables-via-pg_createsubscriber.patch (application/octet-stream) patch v2-0001
On Fri, Aug 8, 2025 at 1:47 PM Zhijie Hou (Fujitsu) <houzj.fnst@fujitsu.com> wrote: > > On Wednesday, August 6, 2025 7:23 PM vignesh C <vignesh21@gmail.com> wrote: > > On Fri, 1 Aug 2025 at 13:33, Zhijie Hou (Fujitsu) <houzj.fnst@fujitsu.com> > > wrote: > > > > > > On Monday, July 28, 2025 1:07 PM Hayato Kuroda (Fujitsu) > > <kuroda.hayato@fujitsu.com> wrote: > > > > > > > > Dear Shubham, > > > > > > > > > The attached patch introduces a new '--table' option that can be > > > > > specified after each '--database' argument. > > > > > > > > Do we have another example which we consider the ordering of > > > > options? I'm unsure for it. Does getopt_long() always return parsed > > > > options with the specified order? > > > > > > > > > The syntax is like that used in 'vacuumdb' > > > > > and supports multiple '--table' arguments per database, including > > > > > optional column lists and row filters. > > > > > > > > Vacuumdb nor pg_restore do not accept multiple --database, right? > > > > I'm afraid that current API has too complex. > > > > > > We have another example to consider: pg_amcheck, which allows users to > > > specify multiple databases. Following this precedent, it may be > > > beneficial to adopt a similar style in pg_createsubscriber. E.g., > > > Users could specify tables using database-qualified names, such as: > > > > > > ./pg_createsubscriber --database db1 --table 'db1.public.t1' --table > > > 'db1.public.t2(a,b) WHERE a > 100' --database db2 --table 'db2.public.t3' > > > > pg_amcheck allows specifying tables as a pattern, the below note is from [1]: > > Patterns may be unqualified, e.g. myrel*, or they may be schema-qualified, e.g. > > myschema*.myrel* or database-qualified and schema-qualified, e.g. > > mydb*.myschema*.myrel*. A database-qualified pattern will add matching > > databases to the list of databases to be checked. > > > > In pg_createsubscriber will it be using the exact spec of pg_amcheck or will the > > user have to give fully qualified names? > > Both options are acceptable to me. Fully qualified names might be more familiar > to users of publication DDLs, given that regex is not supported for these > statements. So, I personally think that if we want to start with something > simple, using fully qualified names is sensible, with the possibility to extend > this functionality later if needed. > Thanks for the suggestion. I have implemented your approach and incorporated the required changes into the attached patch. Thanks and regards, Shubham Khanna.