> Ah.  Your problem is you need to mark sig_in() as IMMUTABLE, or at
> least [...]

That was it!  Thanks!

For your enjoyment:

test=# select count(*) from x;
 count  
--------
 200000
(1 row)

test=# explain analyze select * from x where y ~>= sig_in('{1,2,3,4,5}'::int4[]);
                                              QUERY PLAN                               
               
------------------------------------------------------------------------------------------------------
 Index Scan using xx on x  (cost=0.00..4.82 rows=1 width=8) (actual time=5.07..93.15 
rows=29 loops=1)
   Index Cond: (y ~>= 
'.*****..........................................................'::sig)
 Total runtime: 93.31 msec
(3 rows)

test=# select * from x where y ~>= sig_in('{1,2,3,4,5}'::int4[]);
                                y                                 
------------------------------------------------------------------
 .*****.*..*..**.....*.*...*.*.*.....*....................*...*..
 .*******.*..**.*.*.***...*....*.....**..*..*.*...**..**....**...
 .*****..*...**......*.....*.....*....*..*...*...*..............*
 .*****..*...**.....*....*.....*..*......**....*.......**...*....
 ******........*.**.....*...............**.........*.......*.....
 .*****.*.**.*...***.............*...........*.**.*..*..**...*...
 .******.*.*...*..*.****.*.*..**..*....**.*...***.*..*...****.**.
 ******....*..*.*.*.**.*..*....*..................*..*...*.......
 *******..**..***.*..*...*...*.*.***.*.*...**...***.......*......
 .*****..................*.*..*.*.....*...**.......*....**..**...
 .******......*.*.**.*.*.*..*.....***.............**......**.....
 ******.*.....*.*...*......*...*.**.......*........***..*.*.....*
 .******....*...*....***.*.*..*.*.....*..*......*..*.......*.....
 *********.*..*.*...*...*.*.*.......................*.*....*...*.
 .*****..............*.....................*....*...*...*....*..*
 .*******.**.*..*....**.*.....*.....*..*.*.*..**....*...**..*...*
 .*****............**..*..*.***....*...*.**.............*........
 .*******...*.**.***..*.****.*..**..*....*.*.**.**.*..*........**
 ******.*...**..*..*.****..*...*..*.*..******.....*.*..*.**..*...
 .*****.*....*..****.........*....*..*...*............**..*....**
 *******.**.......*..*........*..*.***....*........**...**.....*.
 ******...*...........*.*.....**...**...*...**.....*...*.**...*..
 .*****..............***.**.*...*....*...**.*...***......*..**...
 ******..**....*......**.*................*.*...*.**......*.*.**.
 .*****....*.*.*...*.**..*......*...*..**.**.*...*...**....****..
 .*****..*...*........*....*....*....*....................*...*..
 .*****..**.*........*..*...*..*.*.*..*..*....**.*..***.*......*.
 .*****...*.......................................*...........*..
 *********........*.......*.......*..*.*...*....*.......*........
(29 rows)

test=# drop index xx;
DROP INDEX
test=# explain analyze select * from x where y ~>= sig_in('{1,2,3,4,5}'::int4[]);
                                          QUERY PLAN                                   
        
-----------------------------------------------------------------------------------------------
 Seq Scan on x  (cost=0.00..22.50 rows=1 width=8) (actual time=35.16..2231.98 rows=29 
loops=1)
   Filter: (y ~>= 
'.*****..........................................................'::sig)
 Total runtime: 2232.18 msec
(3 rows)

-- 
Itai Zukerman  <http://www.math-hat.com/~zukerman/>

---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]

Reply via email to