]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Fix copy-paste error in test_ginpostinglist
authorJohn Naylor <john.naylor@postgresql.org>
Tue, 24 Mar 2026 09:40:33 +0000 (16:40 +0700)
committerJohn Naylor <john.naylor@postgresql.org>
Tue, 24 Mar 2026 10:17:48 +0000 (17:17 +0700)
The check for a mismatch on the second decoded item pointer
was an exact copy of the first item pointer check, comparing
orig_itemptrs[0] with decoded_itemptrs[0] instead of orig_itemptrs[1]
with decoded_itemptrs[1].  The error message also reported (0, 1) as
the expected value instead of (blk, off).  As a result, any decoding
error in the second item pointer (where the varbyte delta encoding
is exercised) would go undetected.

This has been wrong since commit bde7493d1, so backpatch to all
supported versions.

Author: Jianghua Yang <yjhjstz@gmail.com>
Discussion: https://postgr.es/m/CAAZLFmSOD8R7tZjRLZsmpKtJLoqjgawAaM-Pne1j8B_Q2aQK8w@mail.gmail.com
Backpatch-through: 14

src/test/modules/test_ginpostinglist/test_ginpostinglist.c

index e1161bdfbfacfe4b525d5980ad3703f265ade86a..52161dcc38a90c01a830414e52386d6f1c42aac8 100644 (file)
@@ -72,12 +72,12 @@ test_itemptr_pair(BlockNumber blk, OffsetNumber off, int maxsize)
                         ItemPointerGetOffsetNumber(&decoded_itemptrs[0]));
 
        if (ndecoded == 2 &&
-               !ItemPointerEquals(&orig_itemptrs[0], &decoded_itemptrs[0]))
+               !ItemPointerEquals(&orig_itemptrs[1], &decoded_itemptrs[1]))
        {
                elog(ERROR, "mismatch on second itemptr: (%u, %d) vs (%u, %d)",
-                        0, 1,
-                        ItemPointerGetBlockNumber(&decoded_itemptrs[0]),
-                        ItemPointerGetOffsetNumber(&decoded_itemptrs[0]));
+                        blk, off,
+                        ItemPointerGetBlockNumber(&decoded_itemptrs[1]),
+                        ItemPointerGetOffsetNumber(&decoded_itemptrs[1]));
        }
 }