RE: Handle infinite recursion in logical replication setup - Mailing list pgsql-hackers

From wangw.fnst@fujitsu.com
Subject RE: Handle infinite recursion in logical replication setup
Date
Msg-id OS3PR01MB627551A86DB31284951DDD359E7E9@OS3PR01MB6275.jpnprd01.prod.outlook.com
Whole thread Raw
In response to Re: Handle infinite recursion in logical replication setup  (vignesh C <vignesh21@gmail.com>)
Responses Re: Handle infinite recursion in logical replication setup
Re: Handle infinite recursion in logical replication setup
List pgsql-hackers
On Tues, 6 Sept 2022 at 11:14, vignesh C <vignesh21@gmail.com> wrote:
> Thanks for the comments, the attached patch has the changes for the same.

Thanks for updating the patch.

Here is one comment for 0001 patch.
1. The query in function check_publications_origin.
+    appendStringInfoString(&cmd,
+                           "SELECT DISTINCT P.pubname AS pubname\n"
+                           "FROM pg_publication P,\n"
+                           "     LATERAL pg_get_publication_tables(P.pubname) GPT\n"
+                           "     LEFT JOIN pg_subscription_rel PS ON (GPT.relid = PS.srrelid),\n"
+                           "     pg_class C JOIN pg_namespace N ON (N.oid = C.relnamespace)\n"
+                           "WHERE C.oid = GPT.relid AND PS.srrelid IS NOT NULL AND P.pubname IN (");

Since I found that we only use "PS.srrelid" in the WHERE statement by
specifying "PS.srrelid IS NOT NULL", could we just use "[INNER] JOIN" to join
the table pg_subscription_rel?

Regards,
Wang wei

pgsql-hackers by date:

Previous
From: "shiy.fnst@fujitsu.com"
Date:
Subject: RE: Handle infinite recursion in logical replication setup
Next
From: John Naylor
Date:
Subject: Re: Compilation issue on Solaris.