Re: [PATCH] Improve amcheck to also check UNIQUE constraint in btree index.
Pavel Borisov <pashkin.elfe@gmail.com>
From: Pavel Borisov <pashkin.elfe@gmail.com>
To: Mark Dilger <mark.dilger@enterprisedb.com>
Cc: Anastasia Lubennikova <a.lubennikova@postgrespro.ru>, Postgres hackers <pgsql-hackers@lists.postgresql.org>,
Peter Geoghegan <pg@bowt.ie>
Date: 2021-03-02T14:08:43Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
amcheck: Optimize speed of checking for unique constraint violation
- cdd6ab9d1f53 18.0 landed
-
amcheck: Report an error when the next page to a leaf is not a leaf
- 97e5b0026fc2 17.0 landed
-
amcheck: Don't load the right sibling page into BtreeCheckState
- 0b5c16124811 17.0 landed
-
amcheck: Refactoring the storage of the last visible entry
- 532d94fec32a 17.0 landed
-
Teach contrib/amcheck to check the unique constraint violation
- 5ae2087202af 17.0 landed
-
Add macros in hash and btree AMs to get the special area of their pages
- d16773cdc862 15.0 cited
Attachments
- v4-0001-Make-amcheck-checking-UNIQUE-constraint-for-btree.patch (application/octet-stream) patch v4-0001
> > I completely agree that checking uniqueness requires looking at the heap, > but I don't agree that every caller of bt_index_check on an index wants > that particular check to be performed. There are multiple ways in which an > index might be corrupt, and Peter wrote the code to only check some of them > by default, with options to expand the checks to other things. This is why > heapallindexed is optional. If you don't want to pay the price of checking > all entries in the heap against the btree, you don't have to. > I've got the idea and revised the patch accordingly. Thanks! Pfa v4 of a patch. I've added an optional argument to allow uniqueness checks for the unique indexes. Also, I added a test variant to make them work on 32-bit systems. Unfortunately, converting the regression test to TAP would be a pain for me. Hope it can be used now as a 2-variant regression test for 32 and 64 bit systems. Thank you for your consideration! -- Best regards, Pavel Borisov Postgres Professional: http://postgrespro.com <http://www.postgrespro.com>