blob: ba9f4d9cdf3b1291684e6c24d156325135425ddb [file] [log] [blame]
set enable_seqscan=off;
CREATE TABLE test_bpchar (
i char(10)
);
INSERT INTO test_bpchar VALUES ('a'),('ab'),('abc'),('abc '),('abb'),('axy'),('xyz'),('xyz ');
CREATE INDEX idx_bpchar ON test_bpchar USING gin (i);
SELECT * FROM test_bpchar WHERE i<'abc' ORDER BY i;
i
------------
a
ab
abb
(3 rows)
SELECT * FROM test_bpchar WHERE i<='abc' ORDER BY i;
i
------------
a
ab
abb
abc
abc
(5 rows)
SELECT * FROM test_bpchar WHERE i='abc' ORDER BY i;
i
------------
abc
abc
(2 rows)
SELECT * FROM test_bpchar WHERE i='abc ' ORDER BY i;
i
------------
abc
abc
(2 rows)
SELECT * FROM test_bpchar WHERE i>='abc' ORDER BY i;
i
------------
abc
abc
axy
xyz
xyz
(5 rows)
SELECT * FROM test_bpchar WHERE i>'abc' ORDER BY i;
i
------------
axy
xyz
xyz
(3 rows)
EXPLAIN (COSTS OFF) SELECT * FROM test_bpchar WHERE i<'abc' ORDER BY i;
QUERY PLAN
-----------------------------------------------------
Gather Motion 3:1 (slice1; segments: 3)
Merge Key: i
-> Sort
Sort Key: i
-> Bitmap Heap Scan on test_bpchar
Recheck Cond: (i < 'abc'::bpchar)
-> Bitmap Index Scan on idx_bpchar
Index Cond: (i < 'abc'::bpchar)
Optimizer: Postgres query optimizer
(9 rows)
EXPLAIN (COSTS OFF) SELECT * FROM test_bpchar WHERE i<='abc' ORDER BY i;
QUERY PLAN
------------------------------------------------------
Gather Motion 3:1 (slice1; segments: 3)
Merge Key: i
-> Sort
Sort Key: i
-> Bitmap Heap Scan on test_bpchar
Recheck Cond: (i <= 'abc'::bpchar)
-> Bitmap Index Scan on idx_bpchar
Index Cond: (i <= 'abc'::bpchar)
Optimizer: Postgres query optimizer
(9 rows)
EXPLAIN (COSTS OFF) SELECT * FROM test_bpchar WHERE i='abc' ORDER BY i;
QUERY PLAN
-----------------------------------------------
Gather Motion 1:1 (slice1; segments: 1)
-> Bitmap Heap Scan on test_bpchar
Recheck Cond: (i = 'abc'::bpchar)
-> Bitmap Index Scan on idx_bpchar
Index Cond: (i = 'abc'::bpchar)
Optimizer: Postgres query optimizer
(6 rows)
EXPLAIN (COSTS OFF) SELECT * FROM test_bpchar WHERE i>='abc' ORDER BY i;
QUERY PLAN
------------------------------------------------------
Gather Motion 3:1 (slice1; segments: 3)
Merge Key: i
-> Sort
Sort Key: i
-> Bitmap Heap Scan on test_bpchar
Recheck Cond: (i >= 'abc'::bpchar)
-> Bitmap Index Scan on idx_bpchar
Index Cond: (i >= 'abc'::bpchar)
Optimizer: Postgres query optimizer
(9 rows)
EXPLAIN (COSTS OFF) SELECT * FROM test_bpchar WHERE i>'abc' ORDER BY i;
QUERY PLAN
-----------------------------------------------------
Gather Motion 3:1 (slice1; segments: 3)
Merge Key: i
-> Sort
Sort Key: i
-> Bitmap Heap Scan on test_bpchar
Recheck Cond: (i > 'abc'::bpchar)
-> Bitmap Index Scan on idx_bpchar
Index Cond: (i > 'abc'::bpchar)
Optimizer: Postgres query optimizer
(9 rows)