On Thu, Mar 19, 2026 at 4:59 AM Masahiko Sawada <[email protected]> wrote:
>
> On Wed, Mar 18, 2026 at 3:31 PM Masahiko Sawada <[email protected]> wrote:
> >
>
> I've attached the patch to implement this idea. The patch still
> introduces a new function but it overloads
> pg_get_publication_tables(). We might be able to handle different
> input (array or text) in pg_get_publication_tables() better, but it's
> enough for discussion at least.
>

*
+ /*
+ * We can pass relid to pg_get_publication_table_info() since
+ * version 19.
+ */
+ appendStringInfo(&cmd,
+ "SELECT DISTINCT"
+ "  (CASE WHEN (array_length(gpt.attrs, 1) = c.relnatts)"
+ "   THEN NULL ELSE gpt.attrs END)"
+ "  FROM pg_publication p,"
+ "  LATERAL pg_get_publication_tables(p.pubname, %u) gpt,"
+ "  pg_class c"
+ " WHERE c.oid = gpt.relid"
+ "   AND p.pubname IN ( %s )",
+ lrel->remoteid,
+ pub_names->data);

Why in the above query we need a join with pg_publication? Can't we
directly pass 'pub_names' and 'relid' to pg_get_publication_tables()
to get the required information?


--
With Regards,
Amit Kapila.


Reply via email to