Fix logical decoding test to correctly check slot removal on standby.
authorFujii Masao <fujii@postgresql.org>
Fri, 4 Apr 2025 04:32:46 +0000 (13:32 +0900)
committerFujii Masao <fujii@postgresql.org>
Fri, 4 Apr 2025 04:32:46 +0000 (13:32 +0900)
The regression test for logical decoding verifies whether a logical slot
is correctly dropped on a standby when its associated database is dropped.
However, the test mistakenly retrieved slot information from the primary
instead of the standby, causing incorrect behavior.

This commit fixes the issue by ensuring the test correctly checks the slot
on the standby.

Back-patch to all supported versions.

Author: Hayato Kuroda <kuroda.hayato@fujitsu.com>
Reviewed-by: Fujii Masao <masao.fujii@gmail.com>
Discussion: https://postgr.es/m/1fdfd020-a509-403c-bd8f-a04664aba148@oss.nttdata.com
Backpatch-through: 13

src/test/recovery/t/010_logical_decoding_timelines.pl

index 0199ae95abf229754b38238e03aab428d933b6da..351a9ef7bddd45b0495e7ecc1541231c9cbb8cb8 100644 (file)
@@ -94,7 +94,7 @@ is( $node_replica->safe_psql(
        'postgres', q[SELECT 1 FROM pg_database WHERE datname = 'dropme']),
    '',
    'dropped DB dropme on standby');
-is($node_primary->slot('dropme_slot')->{'plugin'},
+is($node_replica->slot('dropme_slot')->{'plugin'},
    '', 'logical slot was actually dropped on standby');
 
 # Back to testing failover...