parametrized statements, but always replan? - Mailing list pgsql-jdbc

From Kevin Murphy
Subject parametrized statements, but always replan?
Date
Msg-id 45899296.9040008@genome.chop.edu
Whole thread Raw
Responses Re: parametrized statements, but always replan?  (Dave Cramer <pg@fastcrypt.com>)
Re: parametrized statements, but always replan?  (Mark Lewis <mark.lewis@mir3.com>)
List pgsql-jdbc
Sorry for the newbie question here.  The documentation
(documentation/81/server-prepare.html) isn't clear about this point.
I'm using PG 8.1 with the matching jdbc driver.

Will the following code execute the query with a custom plan based on
the value of var (assuming no use of the prepare threshold)?

        prestmt = conn.prepareStatement(query);
        prestmt.setString(1, var);
        resultSet = prestmt.executeQuery();
        // ... use result set ...
        resultSet.close();
        prestmt.close();

I'd like the safety of parametrized SQL statements combined with the
greater performance (for certain queries) of having every statement
planned based on the specific parameters.  Ideally, I'd like to use
prepareStatement() and executeQuery() with out-of-band parameters, but
have the finished statement be custom-planned.  Most of my queries
wouldn't benefit from the "plan once, execute many times" model.

I've read documentation/81/server-prepare.html, but somehow it wasn't
clear.  It makes it sound as if by default, server-side prepared
statements are not really used ("There are a number of ways to enable
server side prepared statements ..."), which would be good for me.

But looking at my postgresql log, that doesn't seem to be the case; I
see PREPARE, BIND, and EXECUTE lines for each query.

Thanks,
Kevin Murphy


pgsql-jdbc by date:

Previous
From: "John LH"
Date:
Subject: Driver Bug
Next
From: Dave Cramer
Date:
Subject: Re: parametrized statements, but always replan?