Hot standbys now support exporting snapshots while creating a logical replication slot
The Post Office <noreply@postgresql.org>
From: PG Doc comments form <noreply@postgresql.org>
To: pgsql-docs@lists.postgresql.org
Cc: kevinkbiju@gmail.com
Date: 2025-05-22T11:53:24Z
Lists: pgsql-docs
The following documentation comment has been logged on the website: Page: https://www.postgresql.org/docs/17/logicaldecoding-explanation.html Description: Hi, I'm referring to this bit at the very end of the page: Creation of a snapshot is not always possible. In particular, it will fail when connected to a hot standby. Applications that do not require snapshot export may suppress it with the NOEXPORT_SNAPSHOT option. It's not clear what the intention of this is (is it referring only to physical replication slots?) but as it stands you can export snapshots while creating a logical replication slot. This should have been possible starting PG16, I've tested this on PG17. postgres=# CREATE_REPLICATION_SLOT export LOGICAL pgoutput (SNAPSHOT 'export'); -[ RECORD 1 ]----+-------------------- slot_name | export consistent_point | 0/36C9F28 snapshot_name | 00000072-0000000A-1 output_plugin | pgoutput postgres=# SELECT pg_is_in_recovery(); -[ RECORD 1 ]-----+-- pg_is_in_recovery | t postgres=# SHOW hot_standby; -[ RECORD 1 ]--- hot_standby | on As an aside, I think NOEXPORT_SNAPSHOT is from the older syntax of CREATE_REPLICATION_SLOT and should be swapped with SNAPSHOT 'nothing'. Thanks, Kevin
Commits
-
doc: Fix documenation for snapshot export in logical decoding.
- 4f49456094df 13.22 landed
- 14127818e6a0 14.19 landed
- 0f29022e0591 15.14 landed
- dac37e3f3ba1 16.10 landed
- 90558dbf5483 17.6 landed
- 47d90b741d09 18.0 landed
-
Don't force-assign transaction id when exporting a snapshot.
- 6c2003f8a1bb 10.0 cited