postgresql/contrib/test_decoding/expected
Amit Kapila f6429bd7db Fix xmin advancement during fast_forward decoding.
During logical decoding, we advance catalog_xmin of logical too early in
fast_forward mode, resulting in required catalog data being removed by
vacuum. This mode is normally used to advance the slot without processing
the changes, but we still can't let the slot's xmin to advance to an
incorrect value.

Commit f49a80c481 fixed a similar issue where the logical slot's
catalog_xmin was getting advanced prematurely during non-fast-forward
mode. During xl_running_xacts processing, instead of directly advancing
the slot's xmin to the oldest running xid in the record, it allowed the
xmin to be held back for snapshots that can be used for
not-yet-replayed transactions, as those might consider older txns as
running too. However, it missed the fact that the same problem can happen
during fast_forward mode decoding, as we won't build a base snapshot in
that mode, and the future call to get_changes from the same slot can miss
seeing the required catalog changes leading to incorrect reslts.

This commit allows building the base snapshot even in fast_forward mode to
prevent the early advancement of xmin.

Reported-by: Amit Kapila <amit.kapila16@gmail.com>
Author: Zhijie Hou <houzj.fnst@fujitsu.com>
Reviewed-by: Masahiko Sawada <sawada.mshk@gmail.com>
Reviewed-by: shveta malik <shveta.malik@gmail.com>
Reviewed-by: Amit Kapila <amit.kapila16@gmail.com>
Backpatch-through: 13
Discussion: https://postgr.es/m/CAA4eK1LqWncUOqKijiafe+Ypt1gQAQRjctKLMY953J79xDBgAg@mail.gmail.com
Discussion: https://postgr.es/m/OS0PR01MB57163087F86621D44D9A72BF94BB2@OS0PR01MB5716.jpnprd01.prod.outlook.com
2025-04-28 10:56:24 +05:30
..
binary.out Message style improvements 2015-10-28 20:38:36 -04:00
catalog_change_snapshot.out Fix catalog lookup due to wrong snapshot for subtransactions during decoding. 2024-01-29 10:42:41 +05:30
concurrent_ddl_dml.out Improve display of query results in isolation tests. 2021-06-23 11:13:00 -04:00
concurrent_stream.out Improve display of query results in isolation tests. 2021-06-23 11:13:00 -04:00
ddl.out Make test_decoding ddl.out shorter 2023-07-24 17:48:06 +02:00
decoding_in_xact.out Revert "Logical decoding of sequences" 2022-04-07 20:06:36 +02:00
decoding_into_rel.out Revert "Logical decoding of sequences" 2022-04-07 20:06:36 +02:00
delayed_startup.out Improve display of query results in isolation tests. 2021-06-23 11:13:00 -04:00
invalidation_distribution.out Fix typo in test file name added in commit 4909b38af0. 2025-04-25 12:05:52 +05:30
messages.out Add required database and origin filtering for logical messages. 2016-04-13 17:38:54 -07:00
mxact.out Revert "Logical decoding of sequences" 2022-04-07 20:06:36 +02:00
oldest_xmin.out Fix xmin advancement during fast_forward decoding. 2025-04-28 10:56:24 +05:30
ondisk_startup.out Revert "Logical decoding of sequences" 2022-04-07 20:06:36 +02:00
permissions.out Replace AclObjectKind with ObjectType 2018-01-19 14:01:15 -05:00
prepared.out Add skip-empty-xacts option to test_decoding for use in the regression tests. 2014-09-01 15:59:44 +02:00
replorigin.out Revert "Logical decoding of sequences" 2022-04-07 20:06:36 +02:00
rewrite.out Revert "Logical decoding of sequences" 2022-04-07 20:06:36 +02:00
skip_snapshot_restore.out Fix possibility of logical decoding partial transaction changes. 2024-07-11 22:48:16 +09:00
slot.out Revert "Logical decoding of sequences" 2022-04-07 20:06:36 +02:00
slot_creation_error.out Close race condition in slot_creation_error.spec. 2022-03-18 18:18:00 -07:00
snapshot_transfer.out Improve display of query results in isolation tests. 2021-06-23 11:13:00 -04:00
spill.out Make contrib/test_decoding regression tests safe for CZ locale. 2016-11-21 20:39:28 -05:00
stats.out pgstat: add/extend tests for resetting various kinds of stats. 2022-04-07 15:43:43 -07:00
stream.out Stabilize the test added by commit 022564f60c. 2024-10-08 11:45:58 +05:30
subxact_without_top.out Improve display of query results in isolation tests. 2021-06-23 11:13:00 -04:00
time.out logical decoding: fix decoding of a commit's commit time. 2016-03-02 23:42:21 -08:00
toast.out Revert "Logical decoding of sequences" 2022-04-07 20:06:36 +02:00
truncate.out Revert "Logical decoding of sequences" 2022-04-07 20:06:36 +02:00
twophase.out Stabilize the test added by commit 022564f60c. 2024-10-08 11:45:58 +05:30
twophase_snapshot.out Improve display of query results in isolation tests. 2021-06-23 11:13:00 -04:00
twophase_stream.out Add option to enable two_phase commits via pg_create_logical_replication_slot. 2021-03-03 07:34:11 +05:30
xact.out Don't propagate a null subtransaction snapshot up to parent transaction. 2016-08-07 13:15:55 -04:00