v8-0007-Document-that-WAIT-FOR-LSN-is-timeline-blind.patch
application/octet-stream
Filename: v8-0007-Document-that-WAIT-FOR-LSN-is-timeline-blind.patch
Type: application/octet-stream
Part: 1
From 79589ef643c698a73055324805141ecbda588091 Mon Sep 17 00:00:00 2001
From: alterego655 <824662526@qq.com>
Date: Tue, 21 Apr 2026 11:43:52 +0800
Subject: [PATCH v8 7/7] Document that WAIT FOR LSN is timeline-blind
WAIT FOR LSN compares only the numeric LSN and has no notion of which
timeline a WAL record belongs to. There are many possible scenarios when
timeline-switching can break read-your-writes consistency. The proper
analysis and timeline support is possible in the next major release. Yet
just document the current behaviour.
Reported-by: Xuneng Zhou <xunengzhou@gmail.com>
Author: Alexander Korotkov <aekorotkov@gmail.com>
---
doc/src/sgml/ref/wait_for.sgml | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/doc/src/sgml/ref/wait_for.sgml b/doc/src/sgml/ref/wait_for.sgml
index 8819973c774..cd5dd031991 100644
--- a/doc/src/sgml/ref/wait_for.sgml
+++ b/doc/src/sgml/ref/wait_for.sgml
@@ -257,6 +257,20 @@ WAIT FOR LSN '<replaceable class="parameter">lsn</replaceable>'
timeline.
</para>
+ <para>
+ <command>WAIT FOR</command> compares only the numeric
+ <acronym>LSN</acronym>; it has no notion of which timeline a WAL
+ record belongs to. This matters when a standby continues recovery
+ across an upstream timeline switch — for example, a cascading
+ standby whose upstream gets promoted. In that case
+ <command>WAIT FOR</command> will return <literal>success</literal>
+ as soon as the position used by the selected wait mode reaches or
+ passes the numeric <acronym>LSN</acronym>, regardless of which
+ timeline that <acronym>LSN</acronym> belongs to. Applications that need to
+ confirm the target refers to the expected timeline must validate
+ the timeline themselves.
+ </para>
+
<para>
On a standby server, <command>WAIT FOR</command> sessions may be
interrupted by recovery conflicts. Some recovery conflicts are
--
2.51.0