The following bug has been logged on the website:
Bug reference: 16013
Logged by: Daryl Waycott
Email address: daryl.waycott@edgeintelligence.com
PostgreSQL version: 9.6.9
Operating system: Ubuntu 18.04.2 LTS
Description:
A query using a right bit shift and an equality on a bit field seems to
return incorrect results. See the following snippet:
DROP TABLE IF EXISTS table1;
CREATE TABLE table1(col_bit_10_1 bit(10) NULL);
INSERT INTO table1 VALUES (B'0000000000');
INSERT INTO table1 VALUES (B'0000000001');
select col_bit_10_1>>1 from table1;
select col_bit_10_1 from table1 where col_bit_10_1>>1 = B'0000000000';
Results:
DROP TABLE
CREATE TABLE
INSERT 0 1
INSERT 0 1
?column?
------------
0000000000
0000000000
(2 rows)
col_bit_10_1
--------------
0000000000
(1 row)
The second result set should include both rows.