Re: [JDBC] prepareThreshold=1 and statement.executeBatch() ??
От | Kris Jurka |
---|---|
Тема | Re: [JDBC] prepareThreshold=1 and statement.executeBatch() ?? |
Дата | |
Msg-id | Pine.BSO.4.61.0511130350580.6118@leary.csoft.net обсуждение исходный текст |
Ответы |
Re: [JDBC] prepareThreshold=1 and statement.executeBatch() ??
|
Список | pgsql-hackers |
On Sun, 13 Nov 2005, Joost Kraaijeveld wrote: > I have a connection that is created with "prepareThreshold=1" in the > connection string. I use a prepared statement that I fill with > addbatch() and that I execute with executeBatch() (for full source: see > "application.java" attachment). > > LOG: statement: PREPARE S_2 AS update prototype.customers set title= > $1 , defaultcurrency=$2, defaulttermsofdelivery=$3 , > defaulttermsofpayment=$4 where customernumber=$5 > LOG: statement: <BIND> > LOG: statement: EXECUTE <unnamed> [PREPARE: update > prototype.customers set title=$1 , defaultcurrency=$2, defaultter > msofdelivery=$3, defaulttermsofpayment=$4 where customernumber=$5] > LOG: duration: 773.841 ms > LOG: statement: <BIND> > LOG: statement: EXECUTE <unnamed> [PREPARE: update > prototype.customers set title=$1 , defaultcurrency=$2, defaultter > msofdelivery=$3, defaulttermsofpayment=$4 where customernumber=$5] > LOG: duration: 377.981 ms > > Does this output mean that the prepared statement with the name "S_2" is > not used in the following 2 EXECUTE statements and that therefor each > execute statement is planned again? > No, this actually looks like a bug in the server side logging. The JDBC driver issues: FE=> Parse(stmt=S_1,query="INSERT INTO tt VALUES ($1)",oids={23}) FE=> Bind(stmt=S_1,portal=null,$1=<1>) FE=> Describe(portal=null) FE=> Execute(portal=null,limit=1) FE=> Bind(stmt=S_1,portal=null,$1=<2>) FE=> Describe(portal=null) FE=> Execute(portal=null,limit=1) FE=> Sync I assume the server side logging code is getting confused because it uses a named statement, but the unnamed portal. Kris Jurka
В списке pgsql-hackers по дате отправления: