Re: BUG #16619: Amcheck detects corruption in hstore' btree index (ver 2)
Peter Geoghegan <pg@bowt.ie>
From: Peter Geoghegan <pg@bowt.ie>
To: Anastasia Lubennikova <a.lubennikova@postgrespro.ru>
Cc: andrewbille@gmail.com, PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>,
Alexander Korotkov <aekorotkov@gmail.com>
Date: 2020-09-16T17:47:19Z
Lists: pgsql-bugs
On Wed, Sep 16, 2020 at 7:24 AM Anastasia Lubennikova <a.lubennikova@postgrespro.ru> wrote: > For v2 indexes pivot tuple's offset can contain any random number which > will lead to bt_pivot_tuple_identical() failure. > > The fix is pretty simple - only compare data part of the tuples. I think > we can skip offnum check for all index versions to keep the code simple. I pushed a tweaked version of this patch. It seemed worth preserving the inclusion of offset number in the bt_pivot_tuple_identical() memcmp() comparison. The field contains important metadata that really should match. Also, I made sure to compare t_info field on all indexes (including pg_upgrade'd indexes) for the same reason. We already account for heapkeyspace difference in other similar routines, such as invariant_l_offset(). It's not hard to do this here as well. Thanks -- Peter Geoghegan
Commits
-
Fix amcheck child check pg_upgrade bug.
- aac80bfcddf7 14.0 landed
- c287f585865b 13.0 landed
-
Improve checking of child pages in contrib/amcheck.
- d114cc538715 13.0 cited