Re: [HACKERS] WIP: Covering + unique indexes.

x4mmm@yandex-team.ru

From: Andrey Borodin <x4mmm@yandex-team.ru>
To: Anastasia Lubennikova <a.lubennikova@postgrespro.ru>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2018-01-18T14:41:34Z
Lists: pgsql-hackers
Hi!
> 18 янв. 2018 г., в 18:57, Anastasia Lubennikova <a.lubennikova@postgrespro.ru> написал(а):
> 
> What is amcheck_next ?
amcheck_next is external version of amcheck, maintained by Peter G. on his github. It checks one more thing: that every heap tuple has twin in B-tree, so called heapallindexed check.
Version V3 of your patch was checked with heapallindexed and passed the test, both on master and on slave.

>> During bt_index_check()  test from time to time I was observing
>> ERROR:  canceling statement due to conflict with recovery
>> DETAIL:  User query might have needed to see row versions that must be removed.
>> 
> 
> Sorry, I forgot  to attach the amcheck fix to the previous message.
No problem, surely I've fixed that before testing.
> Now all the patches are in attachment.
> Could you recheck if the error is still there?
No need to do that, I was checking exactly same codebase.
And that error has nothing to do with your patch, amcheck does not always can perform bt_index_parent_check() on slave when master is heavy loaded. It's OK. I reported this error just to be 100% precise about observed things.

Thanks for working on this feature, hope to see it in 11.

Best regards, Andrey Borodin.

Commits

  1. Adjust INCLUDE index truncation comments and code.

  2. Add commentary explaining why MaxIndexTuplesPerPage calculation is safe.

  3. Indexes with INCLUDE columns and their support in B-tree

  4. Add amcheck verification of heap relations belonging to btree indexes.

  5. Doc: move info for btree opclass implementors into main documentation.

  6. Doc: mention that you can't PREPARE TRANSACTION after NOTIFY.

  7. Remove dedicated B-tree root-split record types.

  8. Restructure index access method API to hide most of it at the C level.

  9. Split _bt_insertonpg to two functions.

  10. Major overhaul of btree index code. Eliminate special BTP_CHAIN logic for