Hello world!

Few years ago we had a thread with $subj [0]. A year ago Heikki put a lot of 
effort in improving GIN checks [1] while hunting a GIN bug.
And in view of some releases with a recommendation to reindex anything that 
fails or lacks amcheck verification, I decided that I want to review the thread.

PFA $subj incorporating all Heikki's improvements and restored GiST checks. 
Also I've added heapallindexed verification for GiST. I'm sure that we must add 
it for GIN too. Yet I do not know how to implement it. Maybe just check that 
every entry generated from heap present in entry tree? Or that every tids is 
present in the index?

GiST verification does parent check despite taking only AccessShareLock. It's 
possible because when the key discrepancy is found we acquire parent tuple with 
lock coupling. I'm sure that this is correct to check keys this way. And I'm 
almost sure it will not deadlock, because split is doing the same locking.

What do you think?

Best regards, Andrey Borodin.

[0] 
https://www.postgresql.org/message-id/flat/CAF3eApa07-BajjG8%2BRYx-Dr_cq28ZA0GsZmUQrGu5b2ayRhB5A%40mail.gmail.com
[1] 
https://www.postgresql.org/message-id/flat/9fdbb584-1e10-6a55-ecc2-9ba8b5dca1cf%40iki.fi#fec2751faf1ca52495b0a61acc0f5532

Attachment: v10-0001-Amcheck-for-GIN-and-GiST.patch
Description: Binary data

Reply via email to