| 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) |
| |