Re: WIP: Covering + unique indexes.
Anastasia Lubennikova <a.lubennikova@postgrespro.ru>
31.03.2017 20:47, Andres Freund: >>> Maybe it would be better to modify index_form_tuple() to accept a new >>> argument with a number of attributes, then you can just Assert that >>> this number is never higher than the number of attributes in the >>> TupleDesc. >> Good point. >> I agree that this function is a bit strange. I have to set >> tupdesc->nattrs to support compatibility with index_form_tuple(). >> I didn't want to add neither a new field to tupledesc nor a new >> parameter to index_form_tuple(), because they are used widely. >> >> >> But I haven't considered the possibility of index_form_tuple() failure. >> Fixed in this version of the patch. Now it creates a copy of tupledesc to >> pass it to index_form_tuple. > That seems like it'd actually be a noticeable increase in memory > allocator overhead. I think we should just add (as just proposed in > separate thread), a _extended version of it that allows to specify the > number of columns. The function is called not that often. Only once per page split for indexes with included columns. Doesn't look like dramatic overhead. So I decided that a wrapper function would be more appropriate than refactoring of all index_form_tuple() calls. But index_form_tuple_extended() looks like a better solution. -- Anastasia Lubennikova Postgres Professional: http://www.postgrespro.com The Russian Postgres Company
Commits
-
Adjust INCLUDE index truncation comments and code.
- 075aade4361b 11.0 landed
-
Add commentary explaining why MaxIndexTuplesPerPage calculation is safe.
- 2a67d6440db4 11.0 cited
-
Indexes with INCLUDE columns and their support in B-tree
- 8224de4f42cc 11.0 landed
-
Add amcheck verification of heap relations belonging to btree indexes.
- 7f563c09f890 11.0 cited
-
Doc: move info for btree opclass implementors into main documentation.
- 3785f7eee3d9 11.0 cited
-
Doc: mention that you can't PREPARE TRANSACTION after NOTIFY.
- e4fbf22831c2 11.0 cited
-
Remove dedicated B-tree root-split record types.
- 0c504a80cf2e 11.0 cited
-
Restructure index access method API to hide most of it at the C level.
- 65c5fcd353a8 9.6.0 cited
-
Split _bt_insertonpg to two functions.
- bc292937ae6a 8.3.0 cited
-
Major overhaul of btree index code. Eliminate special BTP_CHAIN logic for
- 9e85183bfc31 7.1.1 cited