Tom, > (I'm also wondering whether this
doesn't overlap the use-case for GIN.)
It does not. GIN is strictly for multi-value fields. I can think of applications where either GIN or Bitmaps would be an option, but for the majority, they wouldn't.
One particular compelling situation for on-disk bitmaps is for terabyte tables where a btree index would not fit into memory. Index performance for an index which is 10x or more the size of RAM really sucks ... I can come up with some test results if you doubt that.
Also note that "low cardinality" is relative. For a 1 billion row table, a column with 10,000 values is "low-cardinality", having around 100,000 rows per value ... but that's still 0.01% of the table per value, making index use still applicable.
--Josh ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match