Re: WIP: Covering + unique indexes.

Teodor Sigaev <teodor@sigaev.ru>

From: Teodor Sigaev <teodor@sigaev.ru>
To: Peter Geoghegan <pg@bowt.ie>
Cc: Alexander Korotkov <a.korotkov@postgrespro.ru>, Jeff Janes <jeff.janes@gmail.com>, Anastasia Lubennikova <a.lubennikova@postgrespro.ru>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2018-04-19T08:09:29Z
Lists: pgsql-hackers
Thank you, pushed

Peter Geoghegan wrote:
> On Wed, Apr 18, 2018 at 10:47 PM, Teodor Sigaev <teodor@sigaev.ru> wrote:
>> Thank you, pushed.
> 
> Thanks.
> 
> I saw another preexisting issue, this time one that has been around
> since 2007. Commit bc292937 forgot to remove a comment above
> _bt_insertonpg() (the 'afteritem' stuff ended up being moved to the
> bottom of _bt_findinsertloc(), where it remains today). The attached
> patch fixes this, and in passing mentions the fact that
> _bt_insertonpg() only performs retail insertions, and specifically
> never inserts high key items.
> 
> I don't think it's necessary to add something about negative infinity
> items to the same comment block. While it's true that _bt_insertonpg()
> cannot truncate downlinks to make new minus infinity items, I see that
> as a narrower issue.
> 

-- 
Teodor Sigaev                                   E-mail: teodor@sigaev.ru
                                                    WWW: http://www.sigaev.ru/


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