| -- varbit check |
| CREATE TABLE varbittmp (a varbit); |
| \copy varbittmp from 'data/varbit.data' |
| SET enable_seqscan=on; |
| SELECT count(*) FROM varbittmp WHERE a < '1110100111010'; |
| count |
| ------- |
| 549 |
| (1 row) |
| |
| SELECT count(*) FROM varbittmp WHERE a <= '1110100111010'; |
| count |
| ------- |
| 550 |
| (1 row) |
| |
| SELECT count(*) FROM varbittmp WHERE a = '1110100111010'; |
| count |
| ------- |
| 1 |
| (1 row) |
| |
| SELECT count(*) FROM varbittmp WHERE a >= '1110100111010'; |
| count |
| ------- |
| 51 |
| (1 row) |
| |
| SELECT count(*) FROM varbittmp WHERE a > '1110100111010'; |
| count |
| ------- |
| 50 |
| (1 row) |
| |
| CREATE INDEX varbitidx ON varbittmp USING GIST ( a ); |
| SET enable_seqscan=off; |
| SELECT count(*) FROM varbittmp WHERE a < '1110100111010'::varbit; |
| count |
| ------- |
| 549 |
| (1 row) |
| |
| SELECT count(*) FROM varbittmp WHERE a <= '1110100111010'::varbit; |
| count |
| ------- |
| 550 |
| (1 row) |
| |
| SELECT count(*) FROM varbittmp WHERE a = '1110100111010'::varbit; |
| count |
| ------- |
| 1 |
| (1 row) |
| |
| SELECT count(*) FROM varbittmp WHERE a >= '1110100111010'::varbit; |
| count |
| ------- |
| 51 |
| (1 row) |
| |
| SELECT count(*) FROM varbittmp WHERE a > '1110100111010'::varbit; |
| count |
| ------- |
| 50 |
| (1 row) |
| |
| -- Test index-only scans |
| SET enable_bitmapscan=off; |
| EXPLAIN (COSTS OFF) |
| SELECT a FROM bittmp WHERE a BETWEEN '1000000' and '1000001'; |
| QUERY PLAN |
| --------------------------------------------------------------------------- |
| Gather Motion 3:1 (slice1; segments: 3) |
| -> Index Scan using bitidx on bittmp |
| Index Cond: ((a >= '1000000'::"bit") AND (a <= '1000001'::"bit")) |
| Filter: ((a >= '1000000'::"bit") AND (a <= '1000001'::"bit")) |
| Optimizer: Pivotal Optimizer (GPORCA) |
| (5 rows) |
| |