Re: Logical Replication of sequences

Dilip Kumar <dilipbalaut@gmail.com>

From: Dilip Kumar <dilipbalaut@gmail.com>
To: Amit Kapila <amit.kapila16@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-09T05:57:17Z
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 Thu, Oct 9, 2025 at 10:14 AM Amit Kapila <amit.kapila16@gmail.com> wrote:
>
> 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.

Right

 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?

I would have preferred "Alter Subscription sub1 SYNC Publication
Sequences" but if your preference is to use existing keywords then
IMHO "MERGE Publication Sequences" or "UPDATE Publication Sequences"
are also good options.

-- 
Regards,
Dilip Kumar
Google