Re: Logical Replication of sequences

Amit Kapila <amit.kapila16@gmail.com>

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

On Wed, Oct 8, 2025 at 9:13 AM Dilip Kumar <dilipbalaut@gmail.com> wrote:
>
> On Tue, Oct 7, 2025 at 5:46 PM Amit Kapila <amit.kapila16@gmail.com> wrote:
> >
>
> > > I have one more question: while testing the sequence sync, I found
> > > this behavior is documented as well[1], but what's the reasoning
> > > behind it?  Why REFRESH PUBLICATION will synchronize only newly added
> > > sequences and need to use REFRESH PUBLICATION SEQUENCES to
> > > re-synchronize all sequences.
> > >
> >
> > The idea is that REFRESH PUBLICATION should behave similarly for
> > tables and sequences. This means that this command is primarily used
> > to add/remove tables/sequences and copy their respective initial
> > contents. The new command REFRESH PUBLICATION SEQUENCES is to sync the
> > existing sequences, it shouldn't add any new sequences, now, if it is
> > too confusing we can discuss having a different syntax for it.
>
> Sure, let's discuss this when we get this patch at the start of the
> commit queue.
>

I have pushed the publications related patch. Now, we can discuss this
command. I think confusion arises from the fact that both commands use
REFRESH. So, how about for the second case (sync/copy all existing
sequences), we use a different command, some ideas that come to my
mind are:

Alter Subscription sub1 REPLICATE Publication Sequences;
Alter Subscription sub1 RESYNC Publication Sequences;
Alter Subscription sub1 SYNC Publication Sequences;
Alter Subscription sub1 MERGE Publication Sequences;

Among these, the first three require a new keyword to be introduced. I
prefer to use existing keyword if possible. Any ideas?

-- 
With Regards,
Amit Kapila.