On Mon, Feb 13, 2012 at 9:52 PM, Greg Sabino Mullane

> When you do that prepare and execute, DBD::Pg is asking Postgres to
> create a prepared statement, such that it can send just the arguments,
> and not the full statement, each time execute() is called. You can
> force it to *not* do so by issuing:
>
> $dbh->{pg_server_prepare} = 0;
>
> You can also do this at the statement handle generation time: see the
> DBD::Pg docs for more information.
>

That's awesome. Here's the answer to the PK's other question:

The proposed patch to Postgres would cause plan selection to be deferred,
in case of LIKE <placeholder>, until after pg can look at the
placeholder(s), to see if it's anchored at the front. The resulting trick
pg would generate 2**n plans at prepare time, where n is the number of
placeholders that may or may not be anchored at the front. Extra extra
points for figuring out that '^'||<placeholder> will always be so anchored,
so it can use a sorted index, even though it might have to filter the
results from that. With such a hack in place, and turned on by default,
there would be one fewer situation where the pg_server_prepare attribute
could be left on.

-- 
on the outside of the bottom of the barrel, that's how much of an outlier
it is.

Reply via email to