/
githubmirror
/
postgres
Обзор
Документация
Войти
/
githubmirror
/
postgres
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
contrib/btree_gin/expected/bool.out
132 строки
3 KB
Tom Lane
Produce more-optimal plans for bitmap scans on boolean columns.
08 ноя 2022, 18:36
08 ноя 2022, 18:36
042c909
Код
Авторство
О чём код?
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)