Обсуждение: PGStatement#setUseServerPrepare breaking PreparedStatement#executeUpdate return value?
PGStatement#setUseServerPrepare breaking PreparedStatement#executeUpdate return value?
От
Guillaume Cottenceau
Дата:
Hi, I use postgres-7.4.5 with postgresql-7.4.5.jar built out of it. I have noticed that the int result from PreparedStatement#executeUpdate for a DELETE statement is always 1 for me, even if 0 rows were affected by the statement, breaking the JDBC API (or at least its documentation). I have experimented and noticed that removing my call to PGStatement#setUseServerPrepare(true) workarounds the bug. Is there any way to workaround it otherwise? Is it a known and/or normal bug? Thanks, -- Guillaume Cottenceau
On Wed, 23 Feb 2005, Guillaume Cottenceau wrote: > I use postgres-7.4.5 with postgresql-7.4.5.jar built out of it. > > I have noticed that the int result from > PreparedStatement#executeUpdate for a DELETE statement is always > 1 for me, even if 0 rows were affected by the statement, breaking > the JDBC API (or at least its documentation). > > I have experimented and noticed that removing my call to > PGStatement#setUseServerPrepare(true) workarounds the bug. > > Is there any way to workaround it otherwise? Is it a known and/or > normal bug? > This is a known bug that requires upgrading to either the 8.0 server which returns the correct command completion tag on EXECUTE, or the 8.0 driver which uses protocol level prepared statements instead of SQL PREPARE / EXECUTE. Kris Jurka