Joseph,

In looking at this patch it looks OK, except for the following change:

 > !         if (index>=-rows.size())
 > --- 725,737 ----
 > !         if (index > rows_size)

I haven't looked at the entire method, but the change you made seems 
incorrect.

If you want this patch to be applied it should be sent to the 
pgsql-patches mail list.

thanks,
--Barry



Joseph Shraibman wrote:
> Just some minor fixes to avoid duplicate function calls that were 
> bugging me.
> 
> If rows is garunteed not to change then we can store the size in a final 
> class variable, but I wasn't sure I could assume that.
> 
> *** ResultSet.java.orig    Tue Sep  4 16:34:14 2001
> --- ResultSet.java    Tue Sep  4 16:45:20 2001
> ***************
> *** 134,140 ****
>     {
>       //release resources held (memory for tuples)
>       if(rows!=null) {
> -       rows.setSize(0);
>         rows=null;
>       }
>     }
> --- 134,139 ----
> ***************
> *** 709,716 ****
>     public int findColumn(String columnName) throws SQLException
>     {
>       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);
> --- 708,715 ----
>     public int findColumn(String columnName) throws SQLException
>     {
>       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;
> --- 725,737 ----
>       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();
> --- 740,746 ----
>       //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
> --- 754,762 ----
> 
>       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
> --- 969,976 ----
> 
>       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,995 ****
> 
>       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;
>       }
> --- 985,1000 ----
> 
>       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;
>       }
> ***************
> *** 1480,1483 ****
>           }
>       }
>   }
> -
> --- 1485,1487 ----
> 
> 



---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

Reply via email to