Re: How embarrassing: optimization of a one-shot query doesn't work - Mailing list pgsql-hackers

From Michael Paesold
Subject Re: How embarrassing: optimization of a one-shot query doesn't work
Date
Msg-id B3023355-2601-46B6-9248-A0DD6C26BD62@gmx.at
Whole thread Raw
In response to How embarrassing: optimization of a one-shot query doesn't work  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: [JDBC] How embarrassing: optimization of a one-shot query doesn't work  (Dave Cramer <pg@fastcrypt.com>)
List pgsql-hackers
Am 01.04.2008 um 01:26 schrieb Tom Lane:
> While testing the changes I was making to Pavel's EXECUTE USING patch
> to ensure that parameter values were being provided to the planner,
> it became painfully obvious that the planner wasn't actually *doing*
> anything with them.  For example
>
>     execute 'select count(*) from foo where x like $1' into c using $1;
>
> wouldn't generate an indexscan when $1 was of the form 'prefix%'.
...
> The implication of this is that 8.3 is significantly worse than 8.2
> in optimizing unnamed statements in the extended-Query protocol;
> a feature that JDBC, at least, relies on.
>
> The fix is simple: add PlannerInfo to eval_const_expressions's
> parameter list, as was done for estimate_expression_value.  I am
> slightly hesitant to do this in a stable branch, since it would break
> any third-party code that might be calling that function.  I doubt
> there
> is currently any production-grade code doing so, but if anyone out
> there
> is actively using those planner hooks we put into 8.3, it's
> conceivable
> this would affect them.
>
> Still, the performance regression here is bad enough that I think
> there
> is little choice.  Comments/objections?

Yeah, please fix this performance regression in the 8.3 branch. This
would affect most of the JDBC applications out there, I think.

Best Regards
Michael Paesold

pgsql-hackers by date:

Previous
From: "Pavel Stehule"
Date:
Subject: Re: actualized SQL/PSM patch
Next
From: Dave Cramer
Date:
Subject: Re: [JDBC] How embarrassing: optimization of a one-shot query doesn't work