operators and bit field
I haven't seen what operators can be applied to bit masks.
In particular, I am looking to use binary AND:
I want to AND two bitmasks together and see:
A/ if the result has ANY bits set
B/ what bits are set in the results.
SELECT other_fields
FROM some_table
WHERE
( bitmask_8_columnA & bitmask_8_column B) = bitmask_8_patternONE
OR ( bitmask_8_columnA & bitmask_8_column B) = bitmask_8_patternTWO
;
I may try to use a single char for one of the bit masks I need,
is it possible to store all 256 values into a varchar(1) using
escaped input?
Is it possible to AND two varchars within a select and compare the result?
SELECT other_fields
FROM some_table
WHERE ( varchar_1_columnA & varchar_1_columnB ) = 'single_escaped_char_string';
On Fri, Feb 14, 2003 at 11:12:15 -0800,
Dennis Gearon <gearond@cvc.net> wrote:
I haven't seen what operators can be applied to bit masks.
It looks like & works:
area=> select 3&6;
?column?
----------
2
(1 row)
Show quoted text
In particular, I am looking to use binary AND:
I want to AND two bitmasks together and see:
A/ if the result has ANY bits set
B/ what bits are set in the results.SELECT other_fields
FROM some_table
WHERE
( bitmask_8_columnA & bitmask_8_column B) = bitmask_8_patternONE
OR ( bitmask_8_columnA & bitmask_8_column B) = bitmask_8_patternTWO
;I may try to use a single char for one of the bit masks I need,
is it possible to store all 256 values into a varchar(1) using
escaped input?Is it possible to AND two varchars within a select and compare the result?
SELECT other_fields
FROM some_table
WHERE ( varchar_1_columnA & varchar_1_columnB ) = 'single_escaped_char_string';---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?
Bruno, could you check that with explicity bitfield(n) values, please?
2/14/2003 1:37:03 PM, Bruno Wolff III <bruno@wolff.to> wrote:
Show quoted text
On Fri, Feb 14, 2003 at 11:12:15 -0800,
Dennis Gearon <gearond@cvc.net> wrote:I haven't seen what operators can be applied to bit masks.
It looks like & works:
area=> select 3&6;
?column?
----------
2
(1 row)In particular, I am looking to use binary AND:
I want to AND two bitmasks together and see:
A/ if the result has ANY bits set
B/ what bits are set in the results.SELECT other_fields
FROM some_table
WHERE
( bitmask_8_columnA & bitmask_8_column B) = bitmask_8_patternONE
OR ( bitmask_8_columnA & bitmask_8_column B) = bitmask_8_patternTWO
;I may try to use a single char for one of the bit masks I need,
is it possible to store all 256 values into a varchar(1) using
escaped input?Is it possible to AND two varchars within a select and compare the result?
SELECT other_fields
FROM some_table
WHERE ( varchar_1_columnA & varchar_1_columnB ) = 'single_escaped_char_string';---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?
Also, for fun, could you try '3' & '6' ?
2/14/2003 1:37:03 PM, Bruno Wolff III <bruno@wolff.to> wrote:
Show quoted text
On Fri, Feb 14, 2003 at 11:12:15 -0800,
Dennis Gearon <gearond@cvc.net> wrote:I haven't seen what operators can be applied to bit masks.
It looks like & works:
area=> select 3&6;
?column?
----------
2
(1 row)In particular, I am looking to use binary AND:
I want to AND two bitmasks together and see:
A/ if the result has ANY bits set
B/ what bits are set in the results.SELECT other_fields
FROM some_table
WHERE
( bitmask_8_columnA & bitmask_8_column B) = bitmask_8_patternONE
OR ( bitmask_8_columnA & bitmask_8_column B) = bitmask_8_patternTWO
;I may try to use a single char for one of the bit masks I need,
is it possible to store all 256 values into a varchar(1) using
escaped input?Is it possible to AND two varchars within a select and compare the result?
SELECT other_fields
FROM some_table
WHERE ( varchar_1_columnA & varchar_1_columnB ) = 'single_escaped_char_string';---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?
Dennis Gearon <gearond@cvc.net> writes:
I haven't seen what operators can be applied to bit masks.
In particular, I am looking to use binary AND:
I want to AND two bitmasks together and see:
A/ if the result has ANY bits set
B/ what bits are set in the results.
Why don't you use bit strings, like the SQL spec authors intended?
regression=# select b'10001' & b'01111';
?column?
----------
00001
(1 row)
See types BIT(n) and BIT VARYING(n).
regards, tom lane
Sorry,
'bit masks' === 'bit strings'
BTW, how are 'bit strings' stored and manipulated?
2/14/2003 2:29:48 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Show quoted text
Dennis Gearon <gearond@cvc.net> writes:
I haven't seen what operators can be applied to bit masks.
In particular, I am looking to use binary AND:
I want to AND two bitmasks together and see:
A/ if the result has ANY bits set
B/ what bits are set in the results.Why don't you use bit strings, like the SQL spec authors intended?
regression=# select b'10001' & b'01111';
?column?
----------
00001
(1 row)See types BIT(n) and BIT VARYING(n).
regards, tom lane