Greg Stark <[EMAIL PROTECTED]> writes: > If you have two indexes (a,ctid) and (b,ctid) and do a query where a=1 and b=2 > then it would be particularly easy to combine the two efficiently.
> If specially marked btree indexes -- or even all btree indexes -- implicitly > had ctid as a final sort order after all the index column, then it would > esentially obviate the need for bitmap indexes. I don't think so. You are thinking only of exact-equality queries --- as soon as the WHERE clause describes a range of index entries, the readout wouldn't be sorted by ctid anyway. Combining indexes via a bitmap intermediate step (which is not really the same thing as bitmap indexes, IIUC) seems like a more robust approach than relying on the index entries to be in ctid order. But if we did want to sort indexes that way, we could do it today, I think. The ctid is already stored in index entries (it is the "payload" remember...) and we could use it as a tiebreaker when determining insertion position. This doesn't have the problems that putting ctid into the user columns would do, because the system knows about that ctid as being special; the difficulty with ctid in the user columns is the code not knowing that it'd need to change on a tuple move. regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faqs/FAQ.html