Reject sequence synchronization against pre-PostgreSQL 19 publishers.
authorAmit Kapila <akapila@postgresql.org>
Thu, 23 Jul 2026 05:16:42 +0000 (10:46 +0530)
committerAmit Kapila <akapila@postgresql.org>
Thu, 23 Jul 2026 05:16:42 +0000 (10:46 +0530)
commit1a8c172228db9f8ffd7add086e3b0a3cc4986b1c
tree9d1adbdb82ae736a7b819b41f53413f473bac268
parent8767a10cb8c5d08b924f40c8fc1f2a1e5fb8c55e
Reject sequence synchronization against pre-PostgreSQL 19 publishers.

Sequence synchronization requires the page_lsn field returned by
pg_get_sequence_data(), which was added in PostgreSQL 19. Previously,
requesting sequence synchronization against an older publisher (via
ALTER SUBSCRIPTION ... REFRESH SEQUENCES or by running
ALTER SUBSCRIPTION ... CONNECTION on a disabled subscription with
sequences in the INIT state and subsequently enabling the subscription)
would cause the sequence synchronization worker to repeatedly fail with a
confusing "invalid query response" error.

Check the publisher's server version up front in both
AlterSubscription_refresh_seq() and copy_sequences(), and error out
immediately when it predates PostgreSQL 19.

Also document the PostgreSQL 19 publisher requirement for sequence
replication in the logical replication documentation and in
ALTER SUBSCRIPTION ... REFRESH SEQUENCES.

Reported-by: Noah Misch <noah@leadboat.com>
Author: vignesh C <vignesh21@gmail.com>
Reviewed-by: Shveta Malik <shveta.malik@gmail.com>
Reviewed-by: Hayato Kuroda <kuroda.hayato@fujitsu.com>
Reviewed-by: Amit Kapila <amit.kapila16@gmail.com>
Backpatch-through: 19
Discussion: https://postgr.es/m/20260710045217.f0.noahmisch@microsoft.com
doc/src/sgml/logical-replication.sgml
doc/src/sgml/ref/alter_subscription.sgml
src/backend/commands/subscriptioncmds.c
src/backend/replication/logical/sequencesync.c