| set enable_seqscan=off; |
| CREATE TABLE test_name ( |
| i name |
| ); |
| INSERT INTO test_name VALUES ('a'),('ab'),('abc'),('abb'),('axy'),('xyz'); |
| CREATE INDEX idx_name ON test_name USING gin (i); |
| SELECT * FROM test_name WHERE i<'abc' ORDER BY i; |
| i |
| ----- |
| a |
| ab |
| abb |
| (3 rows) |
| |
| SELECT * FROM test_name WHERE i<='abc' ORDER BY i; |
| i |
| ----- |
| a |
| ab |
| abb |
| abc |
| (4 rows) |
| |
| SELECT * FROM test_name WHERE i='abc' ORDER BY i; |
| i |
| ----- |
| abc |
| (1 row) |
| |
| SELECT * FROM test_name WHERE i>='abc' ORDER BY i; |
| i |
| ----- |
| abc |
| axy |
| xyz |
| (3 rows) |
| |
| SELECT * FROM test_name WHERE i>'abc' ORDER BY i; |
| i |
| ----- |
| axy |
| xyz |
| (2 rows) |
| |
| EXPLAIN (COSTS OFF) SELECT * FROM test_name 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_name |
| Recheck Cond: (i < 'abc'::name) |
| -> Bitmap Index Scan on idx_name |
| Index Cond: (i < 'abc'::name) |
| Optimizer: Postgres query optimizer |
| (9 rows) |
| |
| EXPLAIN (COSTS OFF) SELECT * FROM test_name 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_name |
| Recheck Cond: (i <= 'abc'::name) |
| -> Bitmap Index Scan on idx_name |
| Index Cond: (i <= 'abc'::name) |
| Optimizer: Postgres query optimizer |
| (9 rows) |
| |
| EXPLAIN (COSTS OFF) SELECT * FROM test_name WHERE i='abc' ORDER BY i; |
| QUERY PLAN |
| --------------------------------------------- |
| Gather Motion 1:1 (slice1; segments: 1) |
| Merge Key: i |
| -> Sort |
| Sort Key: i |
| -> Bitmap Heap Scan on test_name |
| Recheck Cond: (i = 'abc'::name) |
| -> Bitmap Index Scan on idx_name |
| Index Cond: (i = 'abc'::name) |
| Optimizer: Pivotal Optimizer (GPORCA) |
| (9 rows) |
| |
| EXPLAIN (COSTS OFF) SELECT * FROM test_name 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_name |
| Recheck Cond: (i >= 'abc'::name) |
| -> Bitmap Index Scan on idx_name |
| Index Cond: (i >= 'abc'::name) |
| Optimizer: Postgres query optimizer |
| (9 rows) |
| |
| EXPLAIN (COSTS OFF) SELECT * FROM test_name 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_name |
| Recheck Cond: (i > 'abc'::name) |
| -> Bitmap Index Scan on idx_name |
| Index Cond: (i > 'abc'::name) |
| Optimizer: Postgres query optimizer |
| (9 rows) |
| |