Re: Avoiding bad prepared-statement plans.

David Christensen <david@endpoint.com>

From: David Christensen <david@endpoint.com>
To: Pierre C <lists@peufeu.com>
Cc: "Dimitri Fontaine" <dfontaine@hi-media.com>, pgsql-hackers@postgresql.org
Date: 2010-02-19T02:31:05Z
Lists: pgsql-hackers
On Feb 18, 2010, at 2:19 PM, Pierre C wrote:

>
>> What about catching the error in the application and INSERT'ing  
>> into the
>> current preprepare.relation table? The aim would be to do that in  
>> dev or
>> in pre-prod environments, then copy the table content in production.
>
> Yep, but it's a bit awkward and time-consuming, and not quite suited  
> to ORM-generated requests since you got to generate all the plan  
> names, when the SQL query itself would be the most convenient  
> "unique identifier"...
>
> A cool hack would be something like that :
>
> pg_execute( "SELECT ...", arguments... )
>
> By inserting a hook which calls a user-specified function on non- 
> existing plan instead of raising an error, this could work.
> However, this wouldn't work as-is since the plan name must be <=  
> NAMEDATALEN, but you get the idea ;)

How about the SHA1 hash of the query?  Hey, it works for git... :-)

Regards,

David
--
David Christensen
End Point Corporation
david@endpoint.com