[libpostgresql-jdbc-java] 05/11: CallableStatement#getUpdateCount was returning 1 when a function returned a ResultSet. Return -1 instead.
Emmanuel Bourg
ebourg-guest at moszumanska.debian.org
Mon Jan 9 10:20:33 UTC 2017
This is an automated email from the git hooks/post-receive script.
ebourg-guest pushed a commit to tag REL8_2_509
in repository libpostgresql-jdbc-java.
commit d919c4d0b011e7c7326fbd5d79d21d459be30d43
Author: Kris Jurka <books at ejurka.com>
Date: Wed Apr 2 17:06:13 2008 +0000
CallableStatement#getUpdateCount was returning 1 when a function
returned a ResultSet. Return -1 instead.
Report by Sam Lawrence.
Debugging assistance by Albe Laurenz.
---
org/postgresql/jdbc2/AbstractJdbc2Statement.java | 10 ++------
org/postgresql/test/jdbc2/CallableStmtTest.java | 32 +++++++++++++++++++++---
2 files changed, 30 insertions(+), 12 deletions(-)
diff --git a/org/postgresql/jdbc2/AbstractJdbc2Statement.java b/org/postgresql/jdbc2/AbstractJdbc2Statement.java
index c237234..91e640e 100644
--- a/org/postgresql/jdbc2/AbstractJdbc2Statement.java
+++ b/org/postgresql/jdbc2/AbstractJdbc2Statement.java
@@ -3,7 +3,7 @@
* Copyright (c) 2004-2005, PostgreSQL Global Development Group
*
* IDENTIFICATION
-* $PostgreSQL: pgjdbc/org/postgresql/jdbc2/AbstractJdbc2Statement.java,v 1.96.2.5 2007/07/27 09:01:53 jurka Exp $
+* $PostgreSQL: pgjdbc/org/postgresql/jdbc2/AbstractJdbc2Statement.java,v 1.96.2.6 2008/01/30 12:49:00 davecramer Exp $
*
*-------------------------------------------------------------------------
*/
@@ -493,13 +493,7 @@ public abstract class AbstractJdbc2Statement implements BaseStatement
public int getUpdateCount() throws SQLException
{
checkClosed();
- if (result == null)
- return -1;
-
- if (isFunction)
- return 1;
-
- if (result.getResultSet() != null)
+ if (result == null || result.getResultSet() != null)
return -1;
return result.getUpdateCount();
diff --git a/org/postgresql/test/jdbc2/CallableStmtTest.java b/org/postgresql/test/jdbc2/CallableStmtTest.java
index e9876d8..7c72944 100644
--- a/org/postgresql/test/jdbc2/CallableStmtTest.java
+++ b/org/postgresql/test/jdbc2/CallableStmtTest.java
@@ -3,7 +3,7 @@
* Copyright (c) 2004-2005, PostgreSQL Global Development Group
*
* IDENTIFICATION
-* $PostgreSQL: pgjdbc/org/postgresql/test/jdbc2/CallableStmtTest.java,v 1.19 2006/11/03 04:44:50 jurka Exp $
+* $PostgreSQL: pgjdbc/org/postgresql/test/jdbc2/CallableStmtTest.java,v 1.20 2006/11/29 04:34:29 jurka Exp $
*
*-------------------------------------------------------------------------
*/
@@ -81,10 +81,34 @@ public class CallableStmtTest extends TestCase
final String func = "{ ? = call ";
final String pkgName = "testspg__";
- // protected void runTest () throws Throwable {
- //testGetString ();
- //}
+ public void testGetUpdateCount() throws SQLException
+ {
+ CallableStatement call = con.prepareCall (func + pkgName + "getDouble (?) }");
+ call.setDouble (2, (double)3.04);
+ call.registerOutParameter (1, Types.DOUBLE);
+ call.execute ();
+ assertEquals(-1, call.getUpdateCount());
+ assertNull(call.getResultSet());
+ assertEquals(42.42, call.getDouble(1), 0.00001);
+ call.close();
+
+ // test without an out parameter
+ call = con.prepareCall( "{ call " + pkgName + "getDouble(?) }");
+ call.setDouble( 1, (double)3.04 );
+ call.execute();
+ assertEquals(-1, call.getUpdateCount());
+ ResultSet rs = call.getResultSet();
+ assertNotNull(rs);
+ assertTrue(rs.next());
+ assertEquals(42.42, rs.getDouble(1), 0.00001);
+ assertTrue(!rs.next());
+ rs.close();
+
+ assertEquals(-1, call.getUpdateCount());
+ assertTrue(!call.getMoreResults());
+ call.close();
+ }
public void testGetDouble () throws Throwable
{
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/libpostgresql-jdbc-java.git
More information about the pkg-java-commits
mailing list