Re: PGStatement#setPrepareThreshold

From: Oliver Jowett <oliver(at)opencloud(dot)com>
To: Csaba Nagy <nagy(at)ecircle-ag(dot)com>
Cc: Postgres JDBC <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: PGStatement#setPrepareThreshold
Date: 2006-08-03 06:05:09
Message-ID: 44D19215.1070002@opencloud.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Csaba Nagy wrote:
> Hi all,
>
> Question: will PGStatement.setPrepareThreshold(1) cause server side
> prepare to be used already on the first execution, or only after the
> second one ?

It should cause it to be used on the first execution (at least that was
the intent)

The logic looks like:
- On statement creation set count=0
- On each execution:
- If this statement is a PreparedStatement, increment count
- If threshold == 0 or count < threshold, make this execution "oneshot"
- Execute query

"oneshot" queries use the unnamed statement (with one exception: queries
that will be backed by a portal use a named statement)

> I couldn't figure out this from the log files... postgres logs the
> queries as <unnamed>, but that doesn't tell me too much.

If you're seeing <unnamed> then those queries aren't using server-side
prepare (the unnamed statement is also special as it's the trigger for
the planner behaviour that you are trying to avoid..) .. so it seems
that you are not managing to trigger server-side prepare for some
reason. Maybe you are using a plain Statement?

-O

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Csaba Nagy 2006-08-03 09:17:50 Re: PGStatement#setPrepareThreshold
Previous Message Csaba Nagy 2006-08-02 14:32:54 PGStatement#setPrepareThreshold