Greg Gazanian wrote:
I was wondering if anyone happens to know whether there is an Aggregate function available in Postgres that can do an OR on a column of the bit varying type. For example I would like to do something as follows:
bitstring
*--------
1110
0100
1111
SELECT bitwise_or(bitstring) FROM table;
Resulting in:
1111
There is no such function predefined, but you can easily define one
yourself.
create aggregate or_bit64(
basetype=bit,
sfunc=bitor,
stype=bit,
initcond=
'0000000000000000000000000000000000000000000000000000000000000000'
) ;
I'm using this in production, and it works fine. I didn't find a way to
make this length-agnostic, so I defined this for all lenghts of
bitstrings the my app uses (32 and 64).
greetings, Florian Pflug