Re: DOCS - Clarify that REFRESH SEQUENCES might be using stale publication data

From: Peter Smith <smithpb2250(at)gmail(dot)com>
To: Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>
Cc: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: DOCS - Clarify that REFRESH SEQUENCES might be using stale publication data
Date: 2026-07-03 03:18:08
Message-ID: CAHut+PurBp3fHRMBO18Jeg_1TeeWjY9XYk6rD6fXAKgDRQxaMg@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, Jul 2, 2026 at 6:48 PM Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> wrote:
>
> On Thu, Jul 2, 2026 at 8:29 AM Peter Smith <smithpb2250(at)gmail(dot)com> wrote:
> >
> > The docs do refer to "currently subscribed sequences" but do not
> > explicitly warn about this gotcha.
> >
> > PSA: a patch to add a clarifying sentence.
> >
>
> It does not add or remove
> sequences from the subscription to match the publication.
> </para>
> + <para>
> + If the publication's sequence membership has changed,
> + <link linkend="sql-altersubscription-params-refresh-publication">
> + <command>ALTER SUBSCRIPTION ... REFRESH PUBLICATION</command></link>
> + should be run before <literal>REFRESH SEQUENCES</literal> to ensure the
> + subscription's known sequence list is current.
> + </para>
>
> It is already mentioned that this command "does not add or remove
> sequences from the subscription to match the publication.". Adding
> more information, especially a separate para for the same, appears
> like bloating the text in docs. OTOH, I see your point of running
> REFRESH PUBLICATION before REFRESH SEQUENCES which I tried to cover in
> the existing paragraph. Apart from that, I have merged your
> doc-changes from another thread [1] which is on the same topic. Let's
> commit them together.
>

+1 to combine both patches.

Upon re-reading, I think there is still ambiguity due to that word
"synchronizing".

IMO, when we are talking about "synchronizing" sequences, we mean that
the sequence *values* on the subscriber will be synchronized with
those from the publisher.

So, REFRESH SEQUENCES synchronizes all currently known sequences.

OTOH, the REFRESH PUBLICATION refreshes all sequences known to the
subscriber, but it will only synchronize values for newly added ones
(not all of them). So "synchnonizing" is a misleading term to use when
describing the `pg_subscription_rel` members getting updated.

~~~

CHANGES:

Alter Subscription REFRESH SEQUENCES:

The REFRESH PUBLICATION option already correctly describes all that
above ("Previously subscribed sequences are not re-synchronized."), so
I think the fix is to remove the unnecessary explanation: "Unlike
...". After doing that, the remaining text is shorter and more
correct.

Logical Replication:

(2nd bullet) Should also mention that REFRESH PUBLICATION refreshes
the sequences known to the subscription.

~~~

PSA v3.

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

Attachment Content-Type Size
v3-0001-doc-Clarify-sequence-synchronization-commands.patch application/octet-stream 3.4 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Thomas Munro 2026-07-03 03:32:54 Can we get rid of TerminateThread() in pg_dump?
Previous Message Michael Paquier 2026-07-03 03:18:04 Re: Use PG_MODULE_MAGIC_EXT macro in modules added in PG19