Index: src/interfaces/jdbc/org/postgresql/jdbc2/ResultSet.java
===================================================================
RCS file: /home/projects/pgsql/cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/jdbc2/ResultSet.java,v
retrieving revision 1.31
diff -c -r1.31 ResultSet.java
*** src/interfaces/jdbc/org/postgresql/jdbc2/ResultSet.java	2001/08/24 16:50:18	1.31
--- src/interfaces/jdbc/org/postgresql/jdbc2/ResultSet.java	2001/09/07 22:12:18
***************
*** 134,140 ****
    {
      //release resources held (memory for tuples)
      if(rows!=null) {
-       rows.setSize(0);
        rows=null;
      }
    }
--- 134,139 ----
***************
*** 710,716 ****
    {
      int i;
  
!     for (i = 0 ; i < fields.length; ++i)
        if (fields[i].getName().equalsIgnoreCase(columnName))
  	return (i+1);
      throw new PSQLException ("postgresql.res.colname",columnName);
--- 709,716 ----
    {
      int i;
  
!     final int flen = fields.length;
!     for (i = 0 ; i < flen; ++i)
        if (fields[i].getName().equalsIgnoreCase(columnName))
  	return (i+1);
      throw new PSQLException ("postgresql.res.colname",columnName);
***************
*** 726,736 ****
  	if (index==0)
  	    throw new SQLException("Cannot move to index of 0");
  
  	//if index<0, count from the end of the result set, but check
  	//to be sure that it is not beyond the first index
  	if (index<0)
! 	    if (index>=-rows.size())
! 		internalIndex=rows.size()+index;
  	    else {
  		beforeFirst();
  		return false;
--- 726,738 ----
  	if (index==0)
  	    throw new SQLException("Cannot move to index of 0");
  
+ 	final int rows_size = rows.size();
+ 
  	//if index<0, count from the end of the result set, but check
  	//to be sure that it is not beyond the first index
  	if (index<0)
! 	    if (index > -rows_size)
! 		internalIndex = rows_size+index;
  	    else {
  		beforeFirst();
  		return false;
***************
*** 739,745 ****
  	//must be the case that index>0,
  	//find the correct place, assuming that
  	//the index is not too large
! 	if (index<=rows.size())
  	    internalIndex = index-1;
  	else {
  	    afterLast();
--- 741,747 ----
  	//must be the case that index>0,
  	//find the correct place, assuming that
  	//the index is not too large
! 	if (index <= rows_size)
  	    internalIndex = index-1;
  	else {
  	    afterLast();
***************
*** 753,760 ****
  
      public void afterLast() throws SQLException
      {
! 	if (rows.size() > 0)
! 		current_row = rows.size();
      }
  
      public void beforeFirst() throws SQLException
--- 755,763 ----
  
      public void afterLast() throws SQLException
      {
! 	final int rows_size = rows.size();
! 	if (rows_size > 0)
! 		current_row = rows_size;
      }
  
      public void beforeFirst() throws SQLException
***************
*** 967,973 ****
  
      public boolean isAfterLast() throws SQLException
      {
! 	return (current_row >= rows.size()  && rows.size() > 0);
      }
  
      public boolean isBeforeFirst() throws SQLException
--- 970,977 ----
  
      public boolean isAfterLast() throws SQLException
      {
! 	final int rows_size = rows.size();
! 	return (current_row >= rows_size && rows_size > 0);
      }
  
      public boolean isBeforeFirst() throws SQLException
***************
*** 982,997 ****
  
      public boolean isLast() throws SQLException
      {
! 	return (current_row == rows.size() -1  && rows.size() > 0);
      }
  
      public boolean last() throws SQLException
      {
! 	if (rows.size() <= 0)
! 	    return false;
! 	current_row = rows.size() - 1;
! 	this_row = (byte [][])rows.elementAt(current_row);
! 	return true;
      }
  
      public void moveToCurrentRow() throws SQLException
--- 986,1003 ----
  
      public boolean isLast() throws SQLException
      {
! 	final int rows_size = rows.size();
! 	return (current_row == rows_size -1  && rows_size > 0);
      }
  
      public boolean last() throws SQLException
      {
! 	final int rows_size = rows.size();
! 	if (rows_size <= 0)
!  	    return false;
! 	current_row = rows_size - 1;
!  	this_row = (byte [][])rows.elementAt(current_row);
!  	return true;
      }
  
      public void moveToCurrentRow() throws SQLException
***************
*** 1480,1483 ****
  		}
  	}
  }
- 
--- 1486,1488 ----
