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-23T15:39:24Z
Lists: pgsql-hackers
On 22.03.2018 23:37, Alvaro Herrera wrote: > The rd_projidx (list of each nth element in the index list that is a > projection index) thing looks odd. Wouldn't it make more sense to have > a list of index OIDs that are projection indexes? > rd_projidx is not a list, it is Bitmapset. It is just one of many bitmap sets in RelationData: Bitmapset *rd_indexattr; /* identifies columns used in indexes */ Bitmapset *rd_keyattr; /* cols that can be ref'd by foreign keys */ Bitmapset *rd_pkattr; /* cols included in primary key */ Bitmapset *rd_idattr; /* included in replica identity index */ Yes, it is possible to construct Oid list of projectional indexes instead of having bitmap which marks some indexes in projectional, but I am not sure that it will be more efficient both from CPU and memory footprint point of view (in most indexes bitmap will consists of just one integer). In any case, I do not think that it can have some measurable impact on performance or memory size: number of indexes and especially projectional indexes will very rarely exceed 10. -- Konstantin Knizhnik Postgres Professional: http://www.postgrespro.com The Russian Postgres Company
Commits
-
Finish reverting "recheck_on_update" patch.
- 1c53c4dec398 12.0 landed