mirror of https://github.com/postgres/postgres
134 lines
2.9 KiB
Plaintext
134 lines
2.9 KiB
Plaintext
set enable_seqscan=off;
|
|
CREATE TABLE test_bool (
|
|
i boolean
|
|
);
|
|
INSERT INTO test_bool VALUES (false),(true),(null);
|
|
CREATE INDEX idx_bool ON test_bool USING gin (i);
|
|
SELECT * FROM test_bool WHERE i<true ORDER BY i;
|
|
i
|
|
---
|
|
f
|
|
(1 row)
|
|
|
|
SELECT * FROM test_bool WHERE i<=true ORDER BY i;
|
|
i
|
|
---
|
|
f
|
|
t
|
|
(2 rows)
|
|
|
|
SELECT * FROM test_bool WHERE i=true ORDER BY i;
|
|
i
|
|
---
|
|
t
|
|
(1 row)
|
|
|
|
SELECT * FROM test_bool WHERE i>=true ORDER BY i;
|
|
i
|
|
---
|
|
t
|
|
(1 row)
|
|
|
|
SELECT * FROM test_bool WHERE i>true ORDER BY i;
|
|
i
|
|
---
|
|
(0 rows)
|
|
|
|
SELECT * FROM test_bool WHERE i<false ORDER BY i;
|
|
i
|
|
---
|
|
(0 rows)
|
|
|
|
SELECT * FROM test_bool WHERE i<=false ORDER BY i;
|
|
i
|
|
---
|
|
f
|
|
(1 row)
|
|
|
|
SELECT * FROM test_bool WHERE i=false ORDER BY i;
|
|
i
|
|
---
|
|
f
|
|
(1 row)
|
|
|
|
SELECT * FROM test_bool WHERE i>=false ORDER BY i;
|
|
i
|
|
---
|
|
f
|
|
t
|
|
(2 rows)
|
|
|
|
SELECT * FROM test_bool WHERE i>false ORDER BY i;
|
|
i
|
|
---
|
|
t
|
|
(1 row)
|
|
|
|
EXPLAIN (COSTS OFF) SELECT * FROM test_bool WHERE i<true ORDER BY i;
|
|
QUERY PLAN
|
|
-------------------------------------------
|
|
Sort
|
|
Sort Key: i
|
|
-> Bitmap Heap Scan on test_bool
|
|
Recheck Cond: (i < true)
|
|
-> Bitmap Index Scan on idx_bool
|
|
Index Cond: (i < true)
|
|
(6 rows)
|
|
|
|
EXPLAIN (COSTS OFF) SELECT * FROM test_bool WHERE i<=true ORDER BY i;
|
|
QUERY PLAN
|
|
-------------------------------------------
|
|
Sort
|
|
Sort Key: i
|
|
-> Bitmap Heap Scan on test_bool
|
|
Recheck Cond: (i <= true)
|
|
-> Bitmap Index Scan on idx_bool
|
|
Index Cond: (i <= true)
|
|
(6 rows)
|
|
|
|
EXPLAIN (COSTS OFF) SELECT * FROM test_bool WHERE i=true ORDER BY i;
|
|
QUERY PLAN
|
|
-------------------------------------------
|
|
Sort
|
|
Sort Key: i
|
|
-> Bitmap Heap Scan on test_bool
|
|
Recheck Cond: i
|
|
-> Bitmap Index Scan on idx_bool
|
|
Index Cond: (i = true)
|
|
(6 rows)
|
|
|
|
EXPLAIN (COSTS OFF) SELECT * FROM test_bool WHERE i>=true ORDER BY i;
|
|
QUERY PLAN
|
|
-------------------------------------------
|
|
Sort
|
|
Sort Key: i
|
|
-> Bitmap Heap Scan on test_bool
|
|
Recheck Cond: (i >= true)
|
|
-> Bitmap Index Scan on idx_bool
|
|
Index Cond: (i >= true)
|
|
(6 rows)
|
|
|
|
EXPLAIN (COSTS OFF) SELECT * FROM test_bool WHERE i>true ORDER BY i;
|
|
QUERY PLAN
|
|
-------------------------------------------
|
|
Sort
|
|
Sort Key: i
|
|
-> Bitmap Heap Scan on test_bool
|
|
Recheck Cond: (i > true)
|
|
-> Bitmap Index Scan on idx_bool
|
|
Index Cond: (i > true)
|
|
(6 rows)
|
|
|
|
-- probably sufficient to check just this one:
|
|
EXPLAIN (COSTS OFF) SELECT * FROM test_bool WHERE i=false ORDER BY i;
|
|
QUERY PLAN
|
|
-------------------------------------------
|
|
Sort
|
|
Sort Key: i
|
|
-> Bitmap Heap Scan on test_bool
|
|
Recheck Cond: (NOT i)
|
|
-> Bitmap Index Scan on idx_bool
|
|
Index Cond: (i = false)
|
|
(6 rows)
|
|
|