On Thursday 11 January 2007 15:03, Adam Rich wrote:
> How about this?
>
> select item, very_expensive_function(item) as exp, cheap
> from ( Select item, cheap_function(item) as cheap
> From atable where cheap_function(item) > 0 ) sub
> where very_expensive_function(item) > 0
>
>
Well, there i
On Thursday 11 January 2007 15:12, Alban Hertroys wrote:
> Maybe your functions can be marked STABLE or even IMMUTABLE? That should
> help the planner evaluate them less often.
They are immutable, nevertheless they will have to be computed for each
record. I'd just like to have some influence on
[EMAIL PROTECTED] wrote:
> On Thursday 11 January 2007 12:34, Richard Huxton wrote:
>
>>> The query would run much faster with the filter reordered.
>>> Is there a way to tell the planner/optimizer that certain functions are
>>> more expensive than others, and should be postponed in lazy evaluatio
[EMAIL PROTECTED] On Behalf Of
[EMAIL PROTECTED]
Sent: Thursday, January 11, 2007 4:59 AM
To: pgsql-general@postgresql.org
Subject: [GENERAL] Optimize expresiions.
Hello,
Given a table:
create table atable (
item integer;
);
and a view:
create view aview as select
item,
very_expensive_functio
On Thursday 11 January 2007 12:34, Richard Huxton wrote:
> > The query would run much faster with the filter reordered.
> > Is there a way to tell the planner/optimizer that certain functions are
> > more expensive than others, and should be postponed in lazy evaluation ?
> > Or is there a hook in
[EMAIL PROTECTED] wrote:
Now the query:
select item from aview where exp > 0 and cheap > 0;
will lead to a sequential scan on atable with filter:
very_expensive_function(item) > 0 and cheap_function(item) > 0
The query would run much faster with the filter reordered.
Is there a way to tell the
Hello,
Given a table:
create table atable (
item integer;
);
and a view:
create view aview as select
item,
very_expensive_function(item) as exp,
cheap_function(item) as cheap
from atable;
Now the query:
select item from aview where exp > 0 and cheap > 0;
will lead to a sequential scan on