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

x4mmm@yandex-team.ru

From: Andrey Borodin <x4mmm@yandex-team.ru>
To: Peter Geoghegan <pg@bowt.ie>
Cc: Michael Paquier <michael.paquier@gmail.com>, Anastasia Lubennikova <a.lubennikova@postgrespro.ru>, PostgreSQL mailing lists <pgsql-hackers@postgresql.org>
Date: 2017-11-29T05:32:47Z
Lists: pgsql-hackers
> 29 нояб. 2017 г., в 8:45, Peter Geoghegan <pg@bowt.ie> написал(а):
> 
> On Tue, Nov 28, 2017 at 6:16 PM, Michael Paquier
> <michael.paquier@gmail.com> wrote:
>> On Sun, Nov 12, 2017 at 8:40 PM, Andrey Borodin <x4mmm@yandex-team.ru> wrote:
>>> Postgres crashes:
>>> TRAP: FailedAssertion("!(((const void*)(&isNull) != ((void*)0)) && (scankey->sk_attno) > 0)", File: "nbtsearch.c", Line: 466)
>>> 
>>> May be I'm doing something wrong or amcheck support will go with different patch?
>> 
>> Usually amcheck complaining is a sign of other symptoms. I am marking
>> this patch as returned with feedback for now as no updates have been
>> provided after two weeks.
> 
> It looks like amcheck needs to be patched -- a simple oversight.
> amcheck is probably calling _bt_compare() without realizing that
> internal pages don't have the extra attributes (just leaf pages,
> although they should also not participate in comparisons in respect of
> included/extra columns). There were changes to amcheck at one point in
> the past. That must have slipped through again. I don't think it's
> that complicated.
> 


There is no doubts that this will be fixed. Therefor I propose move to next CF with Waiting for Author status.

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