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


Reply via email to