Re: Avoiding bad prepared-statement plans.

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Mark Mielke <mark@mark.mielke.cc>
Cc: Jeroen Vermeulen <jtv@xs4all.nl>, Alex Hunsaker <badalex@gmail.com>, Robert Haas <robertmhaas@gmail.com>, Greg Stark <gsstark@mit.edu>, Bart Samwel <bart@samwel.tk>, Pavel Stehule <pavel.stehule@gmail.com>, pgsql-hackers@postgresql.org
Date: 2010-02-26T18:59:22Z
Lists: pgsql-hackers
Mark Mielke <mark@mark.mielke.cc> writes:
> Just to point out that I agree, and as per my original post, I think the 
> only time prepared statements should be re-planned for the statistics 
> case, is after 'analyze' has run. That sounds like a quicker solution, 
> and a much smaller gain. After 'analyze' of an object, invalidate all 
> cached plans for prepared statements that rely on that object and 
> require a re-plan.

Please note that that has been happening since 8.3, which is probably
why you haven't detected a problem.

> ... It's walking around the problem 
> that the idea of a generic plan is just wrong. The only time a generic 
> plan is right, is when the specific plan would result in the same.

I think that's a significant overstatement.  There are a large number
of cases where a custom plan isn't worth it, even if it doesn't generate
exactly the same plan.

			regards, tom lane