On 7/15/26 15:00, Stepan Neretin wrote:
> Hi,
>
> gin_index_check() compares adjacent separator keys on posting-tree
> internal pages with ItemPointerCompare(...) < 0, so it reports
> out-of-order keys but misses duplicates.
>
> Equal separators should not occur: each PostingItem key is the child
> page's right bound (dataPrepareDownlink), and leaf TIDs are strictly
> increasing, so siblings must be strictly ascending. dataLocateItem
> also treats equal keys as an exact match to that downlink. Entry-tree
> checks already reject equals (>= 0); posting trees should do the same.
>
> The attached patch changes the comparison to <= 0 and adds a TAP test
> that corrupts two adjacent keys to be equal.
>
>
> Best regards, Stepan Neretin.
Thanks for your patch, Stepan!
The fix itself looks good to me, but why don't you make your test in the
same style as other tests? I mean, make 'test' relation name and '2'
block number perl variables, like it's done in the tests above.
--
regards,
Sofia Kopikova
Postgres Professional