mirror of
				https://github.com/postgres/postgres.git
				synced 2025-10-31 10:30:33 +03:00 
			
		
		
		
	(7.3 and current CVS) with support of int8, float4, float8 in addition to int4. Thanks Janko Richter for contribution. Oleg Bartunov
		
			
				
	
	
		
			67 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PL/PgSQL
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PL/PgSQL
		
	
	
	
	
	
| --
 | |
| -- first, define the datatype.  Turn off echoing so that expected file
 | |
| -- does not depend on contents of btree_gist.sql.
 | |
| --
 | |
| \set ECHO none
 | |
| \i btree_gist.sql
 | |
| \set ECHO all
 | |
| 
 | |
| CREATE TABLE int4tmp (b int4);
 | |
| 
 | |
| \copy int4tmp from 'data/test_btree.data'
 | |
| 
 | |
| CREATE TABLE int8tmp (b int8);
 | |
| 
 | |
| \copy int8tmp from 'data/test_btree.data'
 | |
| 
 | |
| CREATE TABLE float4tmp (b float4);
 | |
| 
 | |
| \copy float4tmp from 'data/test_btree.data'
 | |
| 
 | |
| CREATE TABLE float8tmp (b float8);
 | |
| 
 | |
| \copy float8tmp from 'data/test_btree.data'
 | |
| 
 | |
| CREATE TABLE tstmp ( t timestamp without time zone );
 | |
| 
 | |
| \copy tstmp from 'data/test_btree_ts.data'
 | |
| 
 | |
| -- without idx
 | |
| 
 | |
| SELECT count(*) FROM int4tmp WHERE b <=10;
 | |
| 
 | |
| SELECT count(*) FROM int8tmp WHERE b <=10;
 | |
| 
 | |
| SELECT count(*) FROM float4tmp WHERE b <=10;
 | |
| 
 | |
| SELECT count(*) FROM float8tmp WHERE b <=10;
 | |
| 
 | |
| SELECT count(*) FROM tstmp WHERE t < '2001-05-29 08:33:09';
 | |
| 
 | |
| -- create idx
 | |
| 
 | |
| CREATE INDEX aaaidx ON int4tmp USING gist ( b );
 | |
| 
 | |
| CREATE INDEX bbbidx ON int8tmp USING gist ( b );
 | |
| 
 | |
| CREATE INDEX cccidx ON float4tmp USING gist ( b );
 | |
| 
 | |
| CREATE INDEX dddidx ON float8tmp USING gist ( b );
 | |
| 
 | |
| CREATE INDEX tsidx ON tstmp USING gist ( t );
 | |
| 
 | |
| --with idx
 | |
| 
 | |
| SET enable_seqscan=off;
 | |
| 
 | |
| SELECT count(*) FROM int4tmp WHERE b <=10::int4;
 | |
| 
 | |
| SELECT count(*) FROM int8tmp WHERE b <=10::int8;
 | |
| 
 | |
| SELECT count(*) FROM float4tmp WHERE b <=10::float4;
 | |
| 
 | |
| SELECT count(*) FROM float8tmp WHERE b <=10::float8;
 | |
| 
 | |
| SELECT count(*) FROM tstmp WHERE t < '2001-05-29 08:33:09';
 | |
| 
 |