Karl,
> For reference, I was having SEVERE performance problems with the
> following comparison in an SQL statement where "mask" was an integer:
>
> "select ... from .... where ...... and (permission & mask = permission)"
AFAIK, the only way to use an index on these queries is through
expression indexes. That's why a lot of folks use INTARRAY instead; it
comes with a GIN index type.
It would probably be possible to create a new index type using GiST or
GIN which indexed bitstrings automatically, but I don't know that anyone
has done it yet.
Changing your integer to a bitstring will not, to my knowledge, improve
this.
--
Josh Berkus
PostgreSQL Experts Inc.
www.pgexperts.com