BUG: test_ginpostinglist second itemptr check is a no-op due to copy-paste error

From: Jianghua Yang <yjhjstz(at)gmail(dot)com>
To: pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: BUG: test_ginpostinglist second itemptr check is a no-op due to copy-paste error
Date: 2026-03-24 01:44:40
Message-ID: CAAZLFmSOD8R7tZjRLZsmpKtJLoqjgawAaM-Pne1j8B_Q2aQK8w@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

I found a copy-paste bug in
src/test/modules/test_ginpostinglist/test_ginpostinglist.c.

The function test_itemptr_pair() encodes a pair of item pointers and
decodes them back to verify the round-trip. The two original item
pointers are:

orig_itemptrs[0] = (0, 1)
orig_itemptrs[1] = (blk, off)

After the first itemptr check (lines 68-72), there is a second check
intended to verify the second decoded item pointer when ndecoded == 2:

if (ndecoded == 2 &&
!ItemPointerEquals(&orig_itemptrs[0], &decoded_itemptrs[0]))
{
elog(ERROR, "mismatch on second itemptr: (%u, %d) vs (%u, %d)",
0, 1,
ItemPointerGetBlockNumber(&decoded_itemptrs[0]),
ItemPointerGetOffsetNumber(&decoded_itemptrs[0]));
}

This is an exact duplicate of the first check — it uses index [0]
throughout, and the expected value is hardcoded as (0, 1) instead of
(blk, off). As a result, any decoding error in decoded_itemptrs[1]
would go undetected.

This is particularly unfortunate because the whole purpose of testing a
pair (as the comment at line 30-33 explains) is to exercise the varbyte
delta encoding, which only applies to the second and subsequent item
pointers. The broken check defeats exactly that goal.

The attached patch fixes the second check to compare orig_itemptrs[1]
with decoded_itemptrs[1] and reports (blk, off) as the expected
value in the error message.

Regards,
Jianghua Yang

Attachment Content-Type Size
v1-0001-Fix-copy-paste-error-in-test_ginpostinglist-secon.patch application/octet-stream 1.7 KB

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Sami Imseih 2026-03-24 01:59:11 Re: Proposal to allow setting cursor options on Portals
Previous Message Gyan Sreejith 2026-03-24 01:23:29 Re: [Proposal] Adding Log File Capability to pg_createsubscriber