Commit 2cfb14e8 authored by Bruce Momjian's avatar Bruce Momjian

Fix the off by one errors in ResultSet from 6.5.3, and more.

I'm including a diff of
postgresql-7.0/src/interfaces/jdbc/org/postgresql/jdbc2/ResultSet.java.
I've clearly marked all the fixes I did. Would *someone* who has access
to the cvs please put this in?

Joseph Shraibman
parent a28f1177
...@@ -797,12 +797,14 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -797,12 +797,14 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
public void afterLast() throws SQLException public void afterLast() throws SQLException
{ {
current_row = rows.size() + 1; if (rows.size() > 0)
current_row = rows.size();
} }
public void beforeFirst() throws SQLException public void beforeFirst() throws SQLException
{ {
current_row = 0; if (rows.size() > 0)
current_row = -1;
} }
public void cancelRowUpdates() throws SQLException public void cancelRowUpdates() throws SQLException
...@@ -946,7 +948,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -946,7 +948,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
public int getRow() throws SQLException public int getRow() throws SQLException
{ {
return current_row; return current_row + 1;
} }
// This one needs some thought, as not all ResultSets come from a statement // This one needs some thought, as not all ResultSets come from a statement
...@@ -967,24 +969,24 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu ...@@ -967,24 +969,24 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
public boolean isAfterLast() throws SQLException public boolean isAfterLast() throws SQLException
{ {
throw org.postgresql.Driver.notImplemented(); return (current_row >= rows.size() && rows.size() > 0);
} }
public boolean isBeforeFirst() throws SQLException public boolean isBeforeFirst() throws SQLException
{ {
throw org.postgresql.Driver.notImplemented(); return (current_row < 0 && rows.size() > 0);
} }
public boolean isFirst() throws SQLException public boolean isFirst() throws SQLException
{ {
throw org.postgresql.Driver.notImplemented(); return (current_row == 0 && rows.size() >= 0);
} }
public boolean isLast() throws SQLException public boolean isLast() throws SQLException
{ {
throw org.postgresql.Driver.notImplemented(); return (current_row == rows.size() -1 && rows.size() > 0);
} }
public boolean last() throws SQLException public boolean last() throws SQLException
{ {
if (rows.size() <= 0) if (rows.size() <= 0)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment