Re: Proposal: Conflict log history table for Logical Replication

From: Peter Smith <smithpb2250(at)gmail(dot)com>
To: vignesh C <vignesh21(at)gmail(dot)com>
Cc: shveta malik <shveta(dot)malik(at)gmail(dot)com>, Nisha Moond <nisha(dot)moond412(at)gmail(dot)com>, Dilip Kumar <dilipbalaut(at)gmail(dot)com>, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>, Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>, Bharath Rupireddy <bharath(dot)rupireddyforpostgres(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, shveta malik <shvetamalik(at)gmail(dot)com>
Subject: Re: Proposal: Conflict log history table for Logical Replication
Date: 2026-05-28 01:20:03
Message-ID: CAHut+PsujTDzZ+c41qdvwUgDC3Wjow=V_Od=Pecp25550B-6rA@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi Vignesh.

Here are some review comments for the v41-0008/9 combined (docs) patch.

======
doc/src/sgml/ddl.sgml

(5.11.6. The Conflict Schema)

1.
+ <para>
+ Similarly, the <literal>pg_conflict</literal> schema (sometimes referred to
+ as the <emphasis>conflict schema</emphasis>) contains system managed
+ conflict log tables used for logical replication conflict tracking. These
+ tables are created and maintained by the system and are not intended for
+ direct user manipulation. Unlike <literal>pg_catalog</literal>, the
+ <literal>pg_catalog</literal> schema is not implicitly included in the
+ search path, so objects within it must be referenced explicitly or by
+ adjusting the search path.
+ </para>

1a.
/Similarly, the/The/

~

1b.
IMO don't say "sometimes".

Also, case. /conflict schema/Conflict schema/

~

1c.
"conflict log tables" -- I think it will be helpful if this includes a
link to "29.8.2. Table-based logging #".

~

1d.
"Unlike <literal>pg_catalog</literal>, the
<literal>pg_catalog</literal> schema..."

typo. That 2nd pg_catalog should say pg_conflict.

======
doc/src/sgml/glossary.sgml

2.
+ <glossentry id="glossary-conflict-schema">
+ <glossterm>conflict schema</glossterm>
+ <glossdef>
+ <para>
+ The <literal>pg_conflict</literal> schema that contains system-managed
+ conflict log tables for logical replication. These tables are created
+ and maintained automatically by the system and are not intended for
+ direct user manipulation. See <xref linkend="ddl-schemas-conflict"/>.
+ </para>
+ </glossdef>
+ </glossentry>
+

case. /conflict schema/Conflict schema/

======
doc/src/sgml/logical-replication.sgml

(29.2. Subscription)

3.
+ automatically manages a dedicated <firstterm>conflict log table</firstterm>,
+ which is created an dropped along with the subscription. This significantly
+ improves post-mortem analysis and operational visibility of the replication
+ setup.

typo. /created an dropped/created and dropped/

~~~

(29.8.2. Table-based logging)

4.
+ a dedicated conflict log table will be automatically created. This table is
+ created in the <literal>pg_conflict</literal> namespace. The name of the

Instead of "<literal>pg_conflict</literal> namespace", this should now
say "Conflict schema" and have a link to that new docs section.

======
doc/src/sgml/ref/create_subscription.sgml

(Parameters - conflict_log_destination)

5.
+ named <literal>pg_conflict_log_for_subid_&lt;subid&gt;</literal>
+ in the <literal>pg_conflict</literal> schema. This allows for easy

Same as review comment #4. Instead of "<literal>pg_conflict</literal>
schema", this should now say "Conflict schema" and have a link to that
new docs section.

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

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Xuneng Zhou 2026-05-28 01:22:07 Re: Fix safe_wal_size for slots without restart_lsn
Previous Message SATYANARAYANA NARLAPURAM 2026-05-28 01:11:16 Re: [PATCH] Release replication slot on error in SQL-callable slot functions