Re: Using functions as filters in queries - Mailing list pgsql-admin

From Tom Lane
Subject Re: Using functions as filters in queries
Date
Msg-id 13991.1047603494@sss.pgh.pa.us
Whole thread Raw
In response to Re: Using functions as filters in queries  (Stephan Szabo <sszabo@megazone23.bigpanda.com>)
List pgsql-admin
Stephan Szabo <sszabo@megazone23.bigpanda.com> writes:
> Of course, I misread what explain did (without trying the
> enable_seqscan=off case) and this is still not indexable because even
> after that, you'll not get a clause on the outside that it considers
> indexable.  It is smart enough (7.4 anyway) to make the filter ((t.*).n)=5
> which I thought it'd index, but doesn't. :(

As of a few moments ago, CVS tip reduces that to t.n=5 which is
indexable.

regression=# EXPLAIN select * from t where f(t, 5) AND x like 'a%';
                          QUERY PLAN
--------------------------------------------------------------
 Index Scan using ti on t  (cost=0.00..17.08 rows=1 width=38)
   Index Cond: (n = 5)
   Filter: (x ~~ 'a%'::text)
(3 rows)


            regards, tom lane

pgsql-admin by date:

Previous
From: postgres@sbsd.de
Date:
Subject: could not create large object cross-reference entry
Next
From: "Marc G. Fournier"
Date:
Subject: Re: removal from list