/
githubmirror
/
postgres
Обзор
Документация
Войти
/
githubmirror
/
postgres
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
contrib/btree_gist/expected/numeric.out
206 строк
3 KB
Tom Lane
btree_gist: fix NaN handling in float4/float8 opclasses.
01 июл 2026, 20:27
01 июл 2026, 20:27
7d34489
Код
Авторство
О чём код?
-- numeric check CREATE TABLE numerictmp (a numeric); \copy numerictmp from 'data/int8.data' \copy numerictmp from 'data/numeric.data' \copy numerictmp from 'data/float8.data' SET enable_seqscan=on; SELECT count(*) FROM numerictmp WHERE a < -1890.0; count ------- 506 (1 row) SELECT count(*) FROM numerictmp WHERE a <= -1890.0; count ------- 507 (1 row) SELECT count(*) FROM numerictmp WHERE a = -1890.0; count ------- 1 (1 row) SELECT count(*) FROM numerictmp WHERE a >= -1890.0; count ------- 599 (1 row) SELECT count(*) FROM numerictmp WHERE a > -1890.0; count ------- 598 (1 row) SELECT count(*) FROM numerictmp WHERE a < 'NaN' ; count ------- 1102 (1 row) SELECT count(*) FROM numerictmp WHERE a <= 'NaN' ; count ------- 1105 (1 row) SELECT count(*) FROM numerictmp WHERE a = 'NaN' ; count ------- 3 (1 row) SELECT count(*) FROM numerictmp WHERE a >= 'NaN' ; count ------- 3 (1 row) SELECT count(*) FROM numerictmp WHERE a > 'NaN' ; count ------- 0 (1 row) SELECT count(*) FROM numerictmp WHERE a < 0 ; count ------- 524 (1 row) SELECT count(*) FROM numerictmp WHERE a <= 0 ; count ------- 527 (1 row) SELECT count(*) FROM numerictmp WHERE a = 0 ; count ------- 3 (1 row) SELECT count(*) FROM numerictmp WHERE a >= 0 ; count ------- 581 (1 row) SELECT count(*) FROM numerictmp WHERE a > 0 ; count ------- 578 (1 row) CREATE INDEX numericidx ON numerictmp USING gist ( a ); SET enable_seqscan=off; SELECT count(*) FROM numerictmp WHERE a < -1890.0; count ------- 506 (1 row) SELECT count(*) FROM numerictmp WHERE a <= -1890.0; count ------- 507 (1 row) SELECT count(*) FROM numerictmp WHERE a = -1890.0; count ------- 1 (1 row) SELECT count(*) FROM numerictmp WHERE a >= -1890.0; count ------- 599 (1 row) SELECT count(*) FROM numerictmp WHERE a > -1890.0; count ------- 598 (1 row) SELECT count(*) FROM numerictmp WHERE a < 'NaN' ; count ------- 1102 (1 row) SELECT count(*) FROM numerictmp WHERE a <= 'NaN' ; count ------- 1105 (1 row) SELECT count(*) FROM numerictmp WHERE a = 'NaN' ; count ------- 3 (1 row) SELECT count(*) FROM numerictmp WHERE a >= 'NaN' ; count ------- 3 (1 row) SELECT count(*) FROM numerictmp WHERE a > 'NaN' ; count ------- 0 (1 row) SELECT count(*) FROM numerictmp WHERE a < 0 ; count ------- 524 (1 row) SELECT count(*) FROM numerictmp WHERE a <= 0 ; count ------- 527 (1 row) SELECT count(*) FROM numerictmp WHERE a = 0 ; count ------- 3 (1 row) SELECT count(*) FROM numerictmp WHERE a >= 0 ; count ------- 581 (1 row) SELECT count(*) FROM numerictmp WHERE a > 0 ; count ------- 578 (1 row) -- Test index-only scans SET enable_bitmapscan=off; EXPLAIN (COSTS OFF) SELECT * FROM numerictmp WHERE a BETWEEN 1 AND 300 ORDER BY a; QUERY PLAN --------------------------------------------------------------------- Sort Sort Key: a -> Index Only Scan using numericidx on numerictmp Index Cond: ((a >= '1'::numeric) AND (a <= '300'::numeric)) (4 rows) SELECT * FROM numerictmp WHERE a BETWEEN 1 AND 300 ORDER BY a; a ------------ 204.035430 207.400532 (2 rows)