Re: Logical Replication of sequences

Peter Smith <smithpb2250@gmail.com>

From: Peter Smith <smithpb2250@gmail.com>
To: vignesh C <vignesh21@gmail.com>
Cc: Masahiko Sawada <sawada.mshk@gmail.com>, "Hayato Kuroda (Fujitsu)" <kuroda.hayato@fujitsu.com>, "Zhijie Hou (Fujitsu)" <houzj.fnst@fujitsu.com>, Dilip Kumar <dilipbalaut@gmail.com>, shveta malik <shveta.malik@gmail.com>, Shlok Kyal <shlok.kyal.oss@gmail.com>, Chao Li <li.evan.chao@gmail.com>, Nisha Moond <nisha.moond412@gmail.com>, Peter Eisentraut <peter@eisentraut.org>, Amit Kapila <amit.kapila16@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Euler Taveira <euler@eulerto.com>, Michael Paquier <michael@paquier.xyz>, "Jonathan S. Katz" <jkatz@postgresql.org>
Date: 2025-10-22T02:21:50Z
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 →
  1. Doc: Add documentation for sequence synchronization.

  2. Remove unused assignment in CREATE PUBLICATION grammar.

  3. Add seq_sync_error_count to subscription statistics.

  4. Fix few issues in commit 5509055d69.

  5. Add sequence synchronization for logical replication.

  6. Add worker type argument to logical replication worker functions.

  7. Introduce "REFRESH SEQUENCES" for subscriptions.

  8. Refactor logical worker synchronization code into a separate file.

  9. Standardize use of REFRESH PUBLICATION in code and messages.

  10. Add "ALL SEQUENCES" support to publications.

  11. Expose sequence page LSN via pg_get_sequence_data.

  12. Resume conflict-relevant data retention automatically.

  13. Post-commit review fixes for 228c370868.

  14. Generate GUC tables from .dat file

Hi Vignesh, Here are a few small review comments just for the docs
part of patch 0001:

======
Commit message

1.
In addition to the new command, the following subscription commands have
been enhanced to automatically refresh sequence mappings:

~

Is "mappings" the right word?

======
doc/src/sgml/ref/alter_subscription.sgml

2.
          <para>
-          When false, the command will not try to refresh table information.
-          <literal>REFRESH PUBLICATION</literal> should then be
executed separately.
-          The default is <literal>true</literal>.
+          When false, the command will not try to refresh table and sequence
+          information. <literal>REFRESH PUBLICATION</literal> should then be
+          executed separately. The default is <literal>true</literal>.
          </para>

I thought false should use markup: <literal>false</literal>  (just
like true does)

~~~

3.
+         <para>
+          Previously subscribed sequences are not re-synchronized. To do that,
+          see <link linkend="sql-altersubscription-params-refresh-sequences">
+          <command>ALTER SUBSCRIPTION ... REFRESH SEQUENCES</command></link>.
+         </para>

/To do that, see/To do that, use/

~~~

4.
+     <para>
+      Re-synchronize sequence data with the publisher. Unlike
+      <link linkend="sql-altersubscription-params-refresh-publication">
+      <literal>ALTER SUBSCRIPTION ... REFRESH
PUBLICATION</literal></link> which
+      only synchronizes newly added sequences, <literal>REFRESH
SEQUENCES</literal>
+      will re-synchronize the sequence data for all subscribed sequences. It
+      does not add or remove the missing publication sequences from the
+      subscription.
+     </para>

4a.
IMO the ALTER SUBSCRIPTION command should have <command> markup
instead of <literal>

~

4b.
I wondered if that part "...for all subscribed sequences" should say
"...for all currently subscribed sequences", just for more clarity.

~

4c.
I do not think you need to say "the missing" here; IMO, that just
leads to more questions -- missing from where? How do you remove
something that is missing? etc. The suggestion below removes the
ambiguity.

SUGGESTION:
It does not add or remove sequences from the subscription to match the
publication.

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