Re: Logical Replication of sequences
Dilip Kumar <dilipbalaut@gmail.com>
Commits
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Doc: Add documentation for sequence synchronization.
- 55cefadde874 19 (unreleased) landed
-
Remove unused assignment in CREATE PUBLICATION grammar.
- bfb7419b0bbe 19 (unreleased) landed
-
Add seq_sync_error_count to subscription statistics.
- f6a4c498dcf6 19 (unreleased) landed
-
Fix few issues in commit 5509055d69.
- 5a4eba558aa7 19 (unreleased) landed
-
Add sequence synchronization for logical replication.
- 5509055d6956 19 (unreleased) landed
-
Add worker type argument to logical replication worker functions.
- 3e8e05596a02 19 (unreleased) landed
-
Introduce "REFRESH SEQUENCES" for subscriptions.
- f0b3573c3aac 19 (unreleased) landed
-
Refactor logical worker synchronization code into a separate file.
- 41c674d2e31e 19 (unreleased) landed
-
Standardize use of REFRESH PUBLICATION in code and messages.
- 2436b8c047ff 19 (unreleased) landed
-
Add "ALL SEQUENCES" support to publications.
- 96b378497346 19 (unreleased) landed
-
Expose sequence page LSN via pg_get_sequence_data.
- b93172ca59f4 19 (unreleased) landed
-
Resume conflict-relevant data retention automatically.
- 0d48d393d465 19 (unreleased) cited
-
Post-commit review fixes for 228c370868.
- 1f7e9ba3ac4e 19 (unreleased) cited
-
Generate GUC tables from .dat file
- 63599896545c 19 (unreleased) cited
On Tue, Oct 7, 2025 at 3:51 PM Amit Kapila <amit.kapila16@gmail.com> wrote: > > On Tue, Oct 7, 2025 at 2:21 PM Dilip Kumar <dilipbalaut@gmail.com> wrote: > > > > On Mon, Oct 6, 2025 at 4:33 PM vignesh C <vignesh21@gmail.com> wrote: > > > > > > On Mon, 6 Oct 2025 at 12:07, vignesh C <vignesh21@gmail.com> wrote: > > > > > > > > On Sat, 4 Oct 2025 at 21:24, Amit Kapila <amit.kapila16@gmail.com> wrote: > > > > > > > > > > On Tue, Sep 30, 2025 at 9:55 PM vignesh C <vignesh21@gmail.com> wrote: > > > > > > > > > > > > > > > > In the 0001 patch, pg_get_sequence_data() exposes two new fields > > > > > log_cnt and page_lsn. I see that the later subscriber-side patch uses > > > > > both, the first one in SetSequence(). It is not clear from the > > > > > comments or the commit message of 0001 why it is necessary to use > > > > > log_cnt when setting the sequence. Can you explain what the problem > > > > > will be if we don't use log_cnt during sequence sync? > > > > > > > > I thought to keep the log_cnt value the same value as the publisher. > > > > I have verified from the upgrade that we don't retain the log_cnt > > > > value after upgrade, even if we copy log_cnt, the value will not be > > > > retained. The attached > > > > v20251006-0001-Enhance-pg_get_sequence_data-function.patch has the > > > > changes to remove log_cnt. > > > > > > Here is the rebased remaining patches. > > > > While testing the patches with different combinations to make > > publications, I do not understand why we don't support ALL SEQUENCE > > with some table option, or is it future pending work. > > > > Yes, it is left for future similar to the cases like FOR SEQUENCE s1 > or FOR SEQUENCES IN SCHEMA. The key idea was to first support the > cases required for upgrade and we can later extend the feature after > some user feedback or separate discussion with -hackers to see what > others think. Does that sound reasonable to you? Yeah that's correct, I think the main use case for sequence synchronization is upgrade and it makes sense to use ALL TABLES/ALL SEQUENCES for upgrade. However, if a user is using selective tables for upgrade for now they might not be able to use ALL SEQUENCE and that should be fine as we are going to provide add on functionality. 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. I mean what will be the use case where users just want to synchronize the newly added sequences and not others? [1] + <para> + use <link linkend="sql-altersubscription-params-refresh-publication"> + <command>ALTER SUBSCRIPTION ... REFRESH PUBLICATION</command></link> + to synchronize only newly added sequences. + </para> + </listitem> + <listitem> + <para> + use <link linkend="sql-altersubscription-params-refresh-publication-sequences"> + <command>ALTER SUBSCRIPTION ... REFRESH PUBLICATION SEQUENCES</command></link> + to re-synchronize all sequences. + </para> -- Regards, Dilip Kumar Google