using new bitmap scans to index bit columns? - Mailing list pgsql-general

From TJ O'Donnell
Subject using new bitmap scans to index bit columns?
Date
Msg-id 43723D7B.8070906@acm.org
Whole thread Raw
Responses Re: using new bitmap scans to index bit columns?  (Oleg Bartunov <oleg@sai.msu.su>)
Re: using new bitmap scans to index bit columns?  (Martijn van Oosterhout <kleptog@svana.org>)
List pgsql-general
I like the new bitmap scans and I'm wondering if there is any way
I can utilize them for my bitmask column, defined as bit(1024).
I use this column as a sort of fingerprint to quickly scan my tables.
But it is a scan, not an index.  I have not figured out a way to
index the bitmask column.  Is there some way it can be used as
an index now that there are bitmap scans in 8.1?

Currently I do this:
Select * from mytable where contains(bitmask, fingerprint(user_data))
  and matches(datacolumn, user_data);

user_data is a string, like a regexp but with different semantics for chemical data.
bitmask is precomputed/stored as bit(1024) = fingerprint(datacolumn)
contains(a,b) returns bool as 'select b=(a&b);'

This works well because matches() is an expensive functions.
But it would work better if bitmask could be indexed, no?

TJ O'Donnell

pgsql-general by date:

Previous
From: Bob Pawley
Date:
Subject: Where Statement
Next
From: "Mikael Carneholm"
Date:
Subject: Hanging creating of function