mirror of
https://github.com/postgres/postgres.git
synced 2025-06-14 18:42:34 +03:00
Add index-only scan support to btree_gist.
inet, cidr, and timetz indexes still cannot support index-only scans, because they don't store the original unmodified value in the index, but a derived approximate value.
This commit is contained in:
@ -29,3 +29,8 @@ SELECT count(*) FROM bittmp WHERE a = '011011000100010111011000110000100';
|
||||
SELECT count(*) FROM bittmp WHERE a >= '011011000100010111011000110000100';
|
||||
|
||||
SELECT count(*) FROM bittmp WHERE a > '011011000100010111011000110000100';
|
||||
|
||||
-- Test index-only scans
|
||||
SET enable_bitmapscan=off;
|
||||
EXPLAIN (COSTS OFF)
|
||||
SELECT a FROM bittmp WHERE a BETWEEN '1000000' and '1000001';
|
||||
|
File diff suppressed because one or more lines are too long
@ -29,3 +29,9 @@ SELECT count(*) FROM chartmp WHERE a = '31b0'::char(32);
|
||||
SELECT count(*) FROM chartmp WHERE a >= '31b0'::char(32);
|
||||
|
||||
SELECT count(*) FROM chartmp WHERE a > '31b0'::char(32);
|
||||
|
||||
-- Test index-only scans
|
||||
SET enable_bitmapscan=off;
|
||||
EXPLAIN (COSTS OFF)
|
||||
SELECT * FROM chartmp WHERE a BETWEEN '31a' AND '31c';
|
||||
SELECT * FROM chartmp WHERE a BETWEEN '31a' AND '31c';
|
||||
|
@ -29,3 +29,9 @@ SELECT count(*) FROM macaddrtmp WHERE a = '22:00:5c:e5:9b:0d'::macaddr;
|
||||
SELECT count(*) FROM macaddrtmp WHERE a >= '22:00:5c:e5:9b:0d'::macaddr;
|
||||
|
||||
SELECT count(*) FROM macaddrtmp WHERE a > '22:00:5c:e5:9b:0d'::macaddr;
|
||||
|
||||
-- Test index-only scans
|
||||
SET enable_bitmapscan=off;
|
||||
EXPLAIN (COSTS OFF)
|
||||
SELECT * FROM macaddrtmp WHERE a < '02:03:04:05:06:07'::macaddr;
|
||||
SELECT * FROM macaddrtmp WHERE a < '02:03:04:05:06:07'::macaddr;
|
||||
|
@ -75,3 +75,9 @@ SELECT count(*) FROM numerictmp WHERE a = 0 ;
|
||||
SELECT count(*) FROM numerictmp WHERE a >= 0 ;
|
||||
|
||||
SELECT count(*) FROM numerictmp WHERE a > 0 ;
|
||||
|
||||
-- Test index-only scans
|
||||
SET enable_bitmapscan=off;
|
||||
EXPLAIN (COSTS OFF)
|
||||
SELECT * FROM numerictmp WHERE a BETWEEN 1 AND 300 ORDER BY a;
|
||||
SELECT * FROM numerictmp WHERE a BETWEEN 1 AND 300 ORDER BY a;
|
||||
|
File diff suppressed because one or more lines are too long
@ -29,3 +29,8 @@ SELECT count(*) FROM varbittmp WHERE a = '1110100111010'::varbit;
|
||||
SELECT count(*) FROM varbittmp WHERE a >= '1110100111010'::varbit;
|
||||
|
||||
SELECT count(*) FROM varbittmp WHERE a > '1110100111010'::varbit;
|
||||
|
||||
-- Test index-only scans
|
||||
SET enable_bitmapscan=off;
|
||||
EXPLAIN (COSTS OFF)
|
||||
SELECT a FROM bittmp WHERE a BETWEEN '1000000' and '1000001';
|
||||
|
Reference in New Issue
Block a user