Re: WIP: Covering + unique indexes.

Peter Geoghegan <pg@bowt.ie>

From: Peter Geoghegan <pg@bowt.ie>
To: Teodor Sigaev <teodor@sigaev.ru>
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-18T22:04:06Z
Lists: pgsql-hackers
On Wed, Apr 18, 2018 at 1:45 PM, Peter Geoghegan <pg@bowt.ie> wrote:
> I suggest committing this patch as-is.

Actually, I see one tiny issue with extra '*' characters here:

> +            * The number of attributes won't be explicitly represented if the
> +            * negative infinity tuple was generated during a page split that
> +            * occurred with a version of Postgres before v11.  There must be a
> +            * problem when there is an explicit representation that is
> +            * non-zero, * or when there is no explicit representation and the
> +            * tuple is * evidently not a pre-pg_upgrade tuple.

I also suggest fixing this indentation before commit:

> +   /*
> +    *Cannot leak memory here, TupleDescCopy() doesn't allocate any
> +    * inner structure, so, plain pfree() should clean all allocated memory
> +    */

-- 
Peter Geoghegan


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