mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-10-02 19:26:51 +02:00
176961c1f1
as LIKE. I oversimplified this code when removing support for plan-time determination of index operator lossiness back in April --- I had thought create_bitmap_subplan could stop returning two separate lists of qual conditions, but it still must so that we can treat special operators correctly in create_bitmap_scan_plan. Per report from Rushabh Lathia.
130 lines
2.4 KiB
Plaintext
130 lines
2.4 KiB
Plaintext
--
|
|
-- BTREE_INDEX
|
|
-- test retrieval of min/max keys for each index
|
|
--
|
|
SELECT b.*
|
|
FROM bt_i4_heap b
|
|
WHERE b.seqno < 1;
|
|
seqno | random
|
|
-------+------------
|
|
0 | 1935401906
|
|
(1 row)
|
|
|
|
SELECT b.*
|
|
FROM bt_i4_heap b
|
|
WHERE b.seqno >= 9999;
|
|
seqno | random
|
|
-------+------------
|
|
9999 | 1227676208
|
|
(1 row)
|
|
|
|
SELECT b.*
|
|
FROM bt_i4_heap b
|
|
WHERE b.seqno = 4500;
|
|
seqno | random
|
|
-------+------------
|
|
4500 | 2080851358
|
|
(1 row)
|
|
|
|
SELECT b.*
|
|
FROM bt_name_heap b
|
|
WHERE b.seqno < '1'::name;
|
|
seqno | random
|
|
-------+------------
|
|
0 | 1935401906
|
|
(1 row)
|
|
|
|
SELECT b.*
|
|
FROM bt_name_heap b
|
|
WHERE b.seqno >= '9999'::name;
|
|
seqno | random
|
|
-------+------------
|
|
9999 | 1227676208
|
|
(1 row)
|
|
|
|
SELECT b.*
|
|
FROM bt_name_heap b
|
|
WHERE b.seqno = '4500'::name;
|
|
seqno | random
|
|
-------+------------
|
|
4500 | 2080851358
|
|
(1 row)
|
|
|
|
SELECT b.*
|
|
FROM bt_txt_heap b
|
|
WHERE b.seqno < '1'::text;
|
|
seqno | random
|
|
-------+------------
|
|
0 | 1935401906
|
|
(1 row)
|
|
|
|
SELECT b.*
|
|
FROM bt_txt_heap b
|
|
WHERE b.seqno >= '9999'::text;
|
|
seqno | random
|
|
-------+------------
|
|
9999 | 1227676208
|
|
(1 row)
|
|
|
|
SELECT b.*
|
|
FROM bt_txt_heap b
|
|
WHERE b.seqno = '4500'::text;
|
|
seqno | random
|
|
-------+------------
|
|
4500 | 2080851358
|
|
(1 row)
|
|
|
|
SELECT b.*
|
|
FROM bt_f8_heap b
|
|
WHERE b.seqno < '1'::float8;
|
|
seqno | random
|
|
-------+------------
|
|
0 | 1935401906
|
|
(1 row)
|
|
|
|
SELECT b.*
|
|
FROM bt_f8_heap b
|
|
WHERE b.seqno >= '9999'::float8;
|
|
seqno | random
|
|
-------+------------
|
|
9999 | 1227676208
|
|
(1 row)
|
|
|
|
SELECT b.*
|
|
FROM bt_f8_heap b
|
|
WHERE b.seqno = '4500'::float8;
|
|
seqno | random
|
|
-------+------------
|
|
4500 | 2080851358
|
|
(1 row)
|
|
|
|
--
|
|
-- Check correct optimization of LIKE (special index operator support)
|
|
-- for both indexscan and bitmapscan cases
|
|
--
|
|
set enable_seqscan to false;
|
|
set enable_indexscan to true;
|
|
set enable_bitmapscan to false;
|
|
select proname from pg_proc where proname like E'RI\\_FKey%del' order by 1;
|
|
proname
|
|
------------------------
|
|
RI_FKey_cascade_del
|
|
RI_FKey_noaction_del
|
|
RI_FKey_restrict_del
|
|
RI_FKey_setdefault_del
|
|
RI_FKey_setnull_del
|
|
(5 rows)
|
|
|
|
set enable_indexscan to false;
|
|
set enable_bitmapscan to true;
|
|
select proname from pg_proc where proname like E'RI\\_FKey%del' order by 1;
|
|
proname
|
|
------------------------
|
|
RI_FKey_cascade_del
|
|
RI_FKey_noaction_del
|
|
RI_FKey_restrict_del
|
|
RI_FKey_setdefault_del
|
|
RI_FKey_setnull_del
|
|
(5 rows)
|
|
|