OSDN Git Service

Fix the off by one errors in ResultSet from 6.5.3, and more.
authorBruce Momjian <bruce@momjian.us>
Fri, 12 May 2000 20:54:22 +0000 (20:54 +0000)
committerBruce Momjian <bruce@momjian.us>
Fri, 12 May 2000 20:54:22 +0000 (20:54 +0000)
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

src/interfaces/jdbc/org/postgresql/jdbc2/ResultSet.java

index 76119b7..e3d1693 100644 (file)
@@ -797,12 +797,14 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
     
     public void afterLast() throws SQLException
     {
-       current_row = rows.size() + 1;
+       if (rows.size() > 0)
+               current_row = rows.size();
     }
     
     public void beforeFirst() throws SQLException
     {
-       current_row = 0;
+       if (rows.size() > 0)
+               current_row = -1;
     }
     
     public void cancelRowUpdates() throws SQLException
@@ -946,7 +948,7 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
     
     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
@@ -967,24 +969,24 @@ public class ResultSet extends org.postgresql.ResultSet implements java.sql.Resu
     
     public boolean isAfterLast() throws SQLException
     {
-       throw org.postgresql.Driver.notImplemented();
+       return (current_row >= rows.size()  && rows.size() > 0);
     }
-    
+
     public boolean isBeforeFirst() throws SQLException
     {
-       throw org.postgresql.Driver.notImplemented();
+       return (current_row < 0 && rows.size() > 0);
     }
-    
+
     public boolean isFirst() throws SQLException
     {
-       throw org.postgresql.Driver.notImplemented();
+       return (current_row == 0 && rows.size() >= 0);
     }
-    
+
     public boolean isLast() throws SQLException
     {
-       throw org.postgresql.Driver.notImplemented();
+       return (current_row == rows.size() -1  && rows.size() > 0);
     }
-    
+
     public boolean last() throws SQLException
     {
        if (rows.size() <= 0)