This is an automated email from the git hooks/post-receive script. ebourg-guest pushed a commit to tag REL8_1_408 in repository libpostgresql-jdbc-java.
commit fdf4f16e32a2d5ae45fa7fd7815f5f95e30be079 Author: Kris Jurka <[email protected]> Date: Fri Jul 7 01:12:35 2006 +0000 When issuing multiple queries on one statement the driver was not clearing some intermediate state between executions. When an update, insert, or delete followed a select, the select's results were still available and would be returned instead of the non-query's affected row count. Example from Gilles Rayrat. --- org/postgresql/core/v3/QueryExecutorImpl.java | 8 +++++++- org/postgresql/test/jdbc2/StatementTest.java | 10 ++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/org/postgresql/core/v3/QueryExecutorImpl.java b/org/postgresql/core/v3/QueryExecutorImpl.java index 13d699b..80440cc 100644 --- a/org/postgresql/core/v3/QueryExecutorImpl.java +++ b/org/postgresql/core/v3/QueryExecutorImpl.java @@ -4,7 +4,7 @@ * Copyright (c) 2004, Open Cloud Limited. * * IDENTIFICATION -* $PostgreSQL: pgjdbc/org/postgresql/core/v3/QueryExecutorImpl.java,v 1.25.2.2 2006/04/29 00:07:02 jurka Exp $ +* $PostgreSQL: pgjdbc/org/postgresql/core/v3/QueryExecutorImpl.java,v 1.25.2.3 2006/04/29 13:31:19 jurka Exp $ * *------------------------------------------------------------------------- */ @@ -1234,6 +1234,8 @@ public class QueryExecutorImpl implements QueryExecutor { if (fields != null || tuples != null) { // There was a resultset. handler.handleResultRows(currentQuery, fields, tuples, null); + fields = null; + tuples = null; } } break; @@ -1271,6 +1273,8 @@ public class QueryExecutorImpl implements QueryExecutor { if (fields != null || tuples != null) { // There was a resultset. handler.handleResultRows(currentQuery, fields, tuples, null); + fields = null; + tuples = null; } else { @@ -1368,6 +1372,8 @@ public class QueryExecutorImpl implements QueryExecutor { if (fields != null || tuples != null) { // There was a resultset. handler.handleResultRows(currentQuery, fields, tuples, null); + fields = null; + tuples = null; } } break; diff --git a/org/postgresql/test/jdbc2/StatementTest.java b/org/postgresql/test/jdbc2/StatementTest.java index 7684e07..431f58c 100644 --- a/org/postgresql/test/jdbc2/StatementTest.java +++ b/org/postgresql/test/jdbc2/StatementTest.java @@ -3,7 +3,7 @@ * Copyright (c) 2004-2005, PostgreSQL Global Development Group * * IDENTIFICATION -* $PostgreSQL: pgjdbc/org/postgresql/test/jdbc2/StatementTest.java,v 1.17.2.1 2005/12/15 23:28:56 jurka Exp $ +* $PostgreSQL: pgjdbc/org/postgresql/test/jdbc2/StatementTest.java,v 1.17.2.2 2006/02/01 18:52:30 jurka Exp $ * *------------------------------------------------------------------------- */ @@ -79,18 +79,24 @@ public class StatementTest extends TestCase public void testMultiExecute() throws SQLException { Statement stmt = con.createStatement(); - stmt.execute("SELECT 1; SELECT 2"); + assertTrue(stmt.execute("SELECT 1; UPDATE test_statement SET i=1; SELECT 2")); ResultSet rs = stmt.getResultSet(); assertTrue(rs.next()); assertEquals(1, rs.getInt(1)); rs.close(); + assertTrue(!stmt.getMoreResults()); + assertEquals(0, stmt.getUpdateCount()); + assertTrue(stmt.getMoreResults()); rs = stmt.getResultSet(); assertTrue(rs.next()); assertEquals(2, rs.getInt(1)); rs.close(); + + assertTrue(!stmt.getMoreResults()); + assertEquals(-1, stmt.getUpdateCount()); stmt.close(); } -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/libpostgresql-jdbc-java.git _______________________________________________ pkg-java-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits

