From: | Stephan Szabo <sszabo(at)megazone(dot)bigpanda(dot)com> |
---|---|
To: | Merlin Moncure <merlin(dot)moncure(at)rcsonline(dot)com> |
Cc: | pgsql-performance(at)postgresql(dot)org, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: spurious function execution in prepared statements. |
Date: | 2004-09-30 14:45:40 |
Message-ID: | 20040930074054.T8163@megazone.bigpanda.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers pgsql-performance |
On Thu, 30 Sep 2004, Merlin Moncure wrote:
> OK, I have a situation that might be a performance problem, a bug, or an
> unavoidable consequence of using prepared statements. The short version
> is that I am getting function executions for rows not returned in a
> result set when they are in a prepared statement.
>
> In other words, I have a query:
> select f(t.c) from t where [boolean expr on t] limit 1;
An actual boolean expr on t? Or on a column in t?
> because of the limit phrase, obviously, at most one record is returned
> and f executes at most once regardless of the plan used (in practice,
> sometimes index, sometimes seq_scan.
>
> Now, if the same query is executed as a prepared statement,
> prepare ps(...) as select f(t.c) from t where [expr] limit 1;
> execute ps;
>
> now, if ps ends up using a index scan on t, everything is ok. However,
> if ps does a seqscan, f executes for every row on t examined until the
> [expr] criteria is met. Is this a bug? If necessary I should be able
> to set up a reproducible example. The easy workaround is to not use
> prepared statements in these situations, but I need to be able to
> guarantee that f only executes once (even if that means exploring
> subqueries).
I think a reproducible example would be good. Simple attempts to duplicate
this on 8.0b2 have failed for me, unless I'm using order by.
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2004-09-30 14:54:50 | Re: [HACKERS] spurious function execution in prepared statements. |
Previous Message | Tom Lane | 2004-09-30 14:23:05 | Re: profile-guided opt. w/ GCC |
From | Date | Subject | |
---|---|---|---|
Next Message | Scott Dunn | 2004-09-30 14:46:27 | Web server to Database Taking forever |
Previous Message | Merlin Moncure | 2004-09-30 14:19:12 | Re: [HACKERS] spurious function execution in prepared statements. |