From 6096a72a54fbddef94236e586f1810a099bf39f5 Mon Sep 17 00:00:00 2001 From: Dave Cramer Date: Thu, 18 Dec 2003 03:35:55 +0000 Subject: [PATCH] backpatch for rs.previous from Kris Jurka, reported by Andrew Fyfe --- .../org/postgresql/jdbc2/AbstractJdbc2ResultSet.java | 3 ++- .../jdbc/org/postgresql/test/jdbc2/ResultSetTest.java | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/interfaces/jdbc/org/postgresql/jdbc2/AbstractJdbc2ResultSet.java b/src/interfaces/jdbc/org/postgresql/jdbc2/AbstractJdbc2ResultSet.java index 8cd30f50f1f..10c6ad136ab 100644 --- a/src/interfaces/jdbc/org/postgresql/jdbc2/AbstractJdbc2ResultSet.java +++ b/src/interfaces/jdbc/org/postgresql/jdbc2/AbstractJdbc2ResultSet.java @@ -9,7 +9,7 @@ * Copyright (c) 2003, PostgreSQL Global Development Group * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc2/Attic/AbstractJdbc2ResultSet.java,v 1.25.2.1 2003/12/12 18:38:19 davec Exp $ + * $Header: /cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc2/Attic/AbstractJdbc2ResultSet.java,v 1.25.2.2 2003/12/18 03:35:55 davec Exp $ * *------------------------------------------------------------------------- */ @@ -493,6 +493,7 @@ public abstract class AbstractJdbc2ResultSet extends org.postgresql.jdbc1.Abstra if (--current_row < 0) return false; this_row = (byte[][]) rows.elementAt(current_row); + rowBuffer = new byte[this_row.length][]; System.arraycopy(this_row, 0, rowBuffer, 0, this_row.length); return true; } diff --git a/src/interfaces/jdbc/org/postgresql/test/jdbc2/ResultSetTest.java b/src/interfaces/jdbc/org/postgresql/test/jdbc2/ResultSetTest.java index d7e621e20c6..c09ac49a982 100644 --- a/src/interfaces/jdbc/org/postgresql/test/jdbc2/ResultSetTest.java +++ b/src/interfaces/jdbc/org/postgresql/test/jdbc2/ResultSetTest.java @@ -83,6 +83,16 @@ public class ResultSetTest extends TestCase TestUtil.closeDB(con); } + public void testBackward() throws Exception + { + Statement stmt = con.createStatement(); + ResultSet rs = stmt.executeQuery("SELECT * FROM testrs"); + rs.afterLast(); + assertTrue(rs.previous()); + rs.close(); + stmt.close(); + } + public void testAbsolute() throws Exception { Statement stmt = con.createStatement();