Re: Add support for specifying tables in pg_createsubscriber. - Mailing list pgsql-hackers

From Peter Smith
Subject Re: Add support for specifying tables in pg_createsubscriber.
Date
Msg-id CAHut+PuG8Vd=MNbQyN-3D1nsfEatmcd5bG6+L-GnOyoR9tC_6w@mail.gmail.com
Whole thread Raw
In response to Re: Add support for specifying tables in pg_createsubscriber.  (Shubham Khanna <khannashubham1197@gmail.com>)
List pgsql-hackers
Hi Shubham,

The patch claims (e.g. in the PG docs and in the commit message) that
"Column lists" and "WHERE clause" are possible, but I don't see how
they can work. AFAICT the patch assumes everything to the right of the
rightmost dot (.) must be the relation name.

~~~

WHERE Clause
------------

e.g.
If I say something like this:
'--table' => "$db3.public.t1 WHERE (id != 1234)",

Gives error like:
2025-08-18 09:41:50.295 AEST client backend[17727]
040_pg_createsubscriber.pl LOG:  execute <unnamed>: SELECT n.nspname,
c.relname FROM pg_class c JOIN pg_namespace n ON n.oid =
c.relnamespace WHERE n.nspname ~ $1 AND c.relname ~ $2 AND c.relkind
IN ('r','p') ORDER BY 1, 2
2025-08-18 09:41:50.295 AEST client backend[17727]
040_pg_createsubscriber.pl DETAIL:  Parameters: $1 = '^(public)$', $2
= '^(t1 where (id != 1234))$'

~~~

Column Lists
------------

Same. These don't work either...

e.g.
--table' => "$db3.public.t1(id,val)",

Gives error like:
2025-08-18 09:53:20.338 AEST client backend[19785]
040_pg_createsubscriber.pl LOG:  execute <unnamed>: SELECT n.nspname,
c.relname FROM pg_class c JOIN pg_namespace n ON n.oid =
c.relnamespace WHERE n.nspname ~ $1 AND c.relname ~ $2 AND c.relkind
IN ('r','p') ORDER BY 1, 2
2025-08-18 09:53:20.338 AEST client backend[19785]
040_pg_createsubscriber.pl DETAIL:  Parameters: $1 = '^(public)$', $2
= '^(t1(id,val))$'

======
Kind Regards
Peter Smith.
Fujitsu Australia



pgsql-hackers by date:

Previous
From: Michael Paquier
Date:
Subject: make -C src/test/isolation failure in index-killtuples due to btree_gist
Next
From: Kir Shatrov
Date:
Subject: Proposal: Extending the PostgreSQL Protocol with Command Metadata