BUG #2514: (jdbc driver) Multiple inlined statements with mixed updates and queries return wrong results

From: "Gilles" <gilles(dot)rayrat(at)continuent(dot)com>
To: pgsql-bugs(at)postgresql(dot)org
Subject: BUG #2514: (jdbc driver) Multiple inlined statements with mixed updates and queries return wrong results
Date: 2006-07-05 14:46:16
Message-ID: 200607051446.k65EkGSE022524@wwwmaster.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs


The following bug has been logged online:

Bug reference: 2514
Logged by: Gilles
Email address: gilles(dot)rayrat(at)continuent(dot)com
PostgreSQL version: 8.0.7
Operating system: linux
Description: (jdbc driver) Multiple inlined statements with mixed
updates and queries return wrong results
Details:

jdbc driver: 8.1.405

When issuing this:
statement.execute("SELECT 2;UPDATE foo SET d='babar' where i=1; SELECT 3");
The 2 result returned is wrong. This seems to be a ResultSet containing the
same values as the first RS (it should be an update count)

Here is code to reproduce:

stmt.executeUpdate("CREATE TABLE foo(i integer, d varchar(5))");
stmt.executeUpdate("INSERT INTO foo values(1,'bar')");
boolean isRS = stmt.execute("SELECT 2;UPDATE foo SET d='babar' where
i=1; SELECT 3");
assertTrue(isRS);
ResultSet rs = stmt.getResultSet();
assertTrue(rs.next());
assertEquals(rs.getInt(1), 2);
rs.close();
assertFalse(stmt.getMoreResults()); // <= This fails !
assertEquals(stmt.getUpdateCount(), 1);
assertTrue(stmt.getMoreResults());
rs = stmt.getResultSet();
assertTrue(rs.next());
assertEquals(rs.getInt(1), 3);
rs.close();
stmt.close();

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Kris Jurka 2006-07-05 19:31:48 Re: Fwd: [JDBC] Diffrence between 8.0.3 and 8.1.3
Previous Message Tomasz Ostrowski 2006-07-05 08:33:59 Re: query very slow when enable_seqscan=on