Hi, Thanks for the info. I new it would have been too easy! :) Sorry, I made a mistake earlier, my queries will actually be more like SELECT * FROM myTable WHERE myBitStringCol & B'101' = B'101'; Many thanks for your help. George. > To: oakmang@xxxxxxxxxxx > CC: pgsql-general@xxxxxxxxxxxxxx > Subject: Re: Indexing a Bit String column > From: stark@xxxxxxxxxxxxxxxx > Date: Tue, 24 Feb 2009 15:35:58 +0000 > > > George Oakman <oakmang@xxxxxxxxxxx> writes: > > > Is it all I need to do? Will PgSQL know how to index properly a Bit String > > column? Should I build the index using a special method, e.g. > > CREATE INDEX myBitStringCol_idx ON myTable USING gist(myBitStringCol); > > No, the default will be to build a btree index which won't help these types of > queries at all. > > You would want a GIST index if there was a built-in GIST opclass for these > kinds of queries, but sadly there isn't. You could add one fairly easily but > it would require C code. I think it would be a valuable addition to Postgres > if you do write one. > > Note that something like "WHERE myBitStringCol & B'101'" might be selecting > too much of your table to make an index useful anyways. If each bit is set in > half the table then you're talking about selecting 3/4 of the table in which > case a full table scan would be more efficient than any index. > > -- > Gregory Stark > EnterpriseDB http://www.enterprisedb.com > Ask me about EnterpriseDB's On-Demand Production Tuning > > -- > Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-general Share your photos with Windows Live Photos - Free Try it Now! |