Re: [HACKERS] Surjective functional indexes
Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
From: Konstantin Knizhnik <k.knizhnik@postgrespro.ru>
To: Alvaro Herrera <alvherre@alvh.no-ip.org>
Cc: Stephen Frost <sfrost@snowman.net>,
Michael Paquier <michael.paquier@gmail.com>,
Simon Riggs <simon@2ndquadrant.com>, Christoph Berg <myon@debian.org>,
Thomas Munro <thomas.munro@enterprisedb.com>,
Peter Eisentraut <peter.eisentraut@2ndquadrant.com>,
PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2018-03-23T16:17:03Z
Lists: pgsql-hackers
On 23.03.2018 18:45, Alvaro Herrera wrote: > Konstantin Knizhnik wrote: > >> rd_projidx is not a list, it is Bitmapset. It is just one of many bitmap >> sets in RelationData: > Yes, but the other bitmapsets are of AttrNumber of the involved column. > They new one is of list_nth() counters for items in the index list. > That seems weird and it scares me -- do we use that coding pattern > elsewhere? Maybe use an array of OIDs instead? > Using list or array instead of bitmap requires much more space... And bitmaps are much more efficient for many operations: check for element presence, combine, intersect,... Check in bitmap has O(0) complexity so iterating through list of all indexes or attributes with bitmap check doesn't add any essential overhead. Sorry, I do not understand this: "They new one is of list_nth() counters for items in the index list" -- Konstantin Knizhnik Postgres Professional: http://www.postgrespro.com The Russian Postgres Company
Commits
-
Finish reverting "recheck_on_update" patch.
- 1c53c4dec398 12.0 landed