Skip to content
Snippets Groups Projects
Commit 2cfb14e8 authored by Bruce Momjian's avatar Bruce Momjian
Browse files

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
No related branches found
No related tags found
No related merge requests found
...@@ -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)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment