mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	Mostly for completeness, but I believe there are cases to use that in multicolumn GIN indexes. Bump btree_gin module version Author: Matheus Oliveira Reviewed by: Tomas Vondra Discussion: https://www.postgresql.org/message-id/flat/CAJghg4LMJf6Z13fnZD-MBNiGxzd0cA2=F3TDjNkX3eQH58hktQ@mail.gmail.com
		
			
				
	
	
		
			110 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
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                   
 | 
						|
-----------------------------------------------
 | 
						|
 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)
 | 
						|
(6 rows)
 | 
						|
 | 
						|
EXPLAIN (COSTS OFF) SELECT * FROM test_bpchar WHERE i<='abc' ORDER BY i;
 | 
						|
                   QUERY PLAN                   
 | 
						|
------------------------------------------------
 | 
						|
 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)
 | 
						|
(6 rows)
 | 
						|
 | 
						|
EXPLAIN (COSTS OFF) SELECT * FROM test_bpchar WHERE i='abc' ORDER BY i;
 | 
						|
               QUERY PLAN                
 | 
						|
-----------------------------------------
 | 
						|
 Bitmap Heap Scan on test_bpchar
 | 
						|
   Recheck Cond: (i = 'abc'::bpchar)
 | 
						|
   ->  Bitmap Index Scan on idx_bpchar
 | 
						|
         Index Cond: (i = 'abc'::bpchar)
 | 
						|
(4 rows)
 | 
						|
 | 
						|
EXPLAIN (COSTS OFF) SELECT * FROM test_bpchar WHERE i>='abc' ORDER BY i;
 | 
						|
                   QUERY PLAN                   
 | 
						|
------------------------------------------------
 | 
						|
 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)
 | 
						|
(6 rows)
 | 
						|
 | 
						|
EXPLAIN (COSTS OFF) SELECT * FROM test_bpchar WHERE i>'abc' ORDER BY i;
 | 
						|
                  QUERY PLAN                   
 | 
						|
-----------------------------------------------
 | 
						|
 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)
 | 
						|
(6 rows)
 | 
						|
 |