here is diff from current cvs.
>
>>
>> I will do it for all methods that is not update methods.
>> doing it in one method and then call it.
>>
>> i just attach the new AbstractJdbc2ResultSet.java in an email or ?
>>
>
> A patch would be better. If you've got cvs checkout, the "cvs diff
> -c" is what we'd like to see.
>
> Also, please keep replies on the list so other people can read/comment
> on your emails.
>
> Kris Jurka
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Have you searched our list archives?
>
> http://archives.postgresql.org
>
> __________ Information from ESET NOD32 Antivirus, version of virus
> signature database 2880 (20080215) __________
>
> The message was checked by ESET NOD32 Antivirus.
>
> http://www.eset.com
>
>
>
Index: AbstractJdbc2ResultSet.java
===================================================================
RCS file: /cvsroot/jdbc/pgjdbc/org/postgresql/jdbc2/AbstractJdbc2ResultSet.java,v
retrieving revision 1.102
diff -c -r1.102 AbstractJdbc2ResultSet.java
*** AbstractJdbc2ResultSet.java 19 Feb 2008 06:12:24 -0000 1.102
--- AbstractJdbc2ResultSet.java 20 Feb 2008 08:08:16 -0000
***************
*** 250,259 ****
}
current_row = internalIndex;
! this_row = (byte[][]) rows.elementAt(internalIndex);
!
! rowBuffer = new byte[this_row.length][];
! System.arraycopy(this_row, 0, rowBuffer, 0, this_row.length);
onInsertRow = false;
return true;
--- 250,256 ----
}
current_row = internalIndex;
! initRowBuffer();
onInsertRow = false;
return true;
***************
*** 295,304 ****
return false;
current_row = 0;
! this_row = (byte[][]) rows.elementAt(current_row);
!
! rowBuffer = new byte[this_row.length][];
! System.arraycopy(this_row, 0, rowBuffer, 0, this_row.length);
onInsertRow = false;
return true;
--- 292,298 ----
return false;
current_row = 0;
! initRowBuffer();
onInsertRow = false;
return true;
***************
*** 629,638 ****
return false;
current_row = rows_size - 1;
! this_row = (byte[][]) rows.elementAt(current_row);
!
! rowBuffer = new byte[this_row.length][];
! System.arraycopy(this_row, 0, rowBuffer, 0, this_row.length);
onInsertRow = false;
return true;
--- 623,629 ----
return false;
current_row = rows_size - 1;
! initRowBuffer();
onInsertRow = false;
return true;
***************
*** 658,666 ****
{
current_row--;
}
! this_row = (byte[][]) rows.elementAt(current_row);
! rowBuffer = new byte[this_row.length][];
! System.arraycopy(this_row, 0, rowBuffer, 0, this_row.length);
return true;
}
--- 649,655 ----
{
current_row--;
}
! initRowBuffer();
return true;
}
***************
*** 877,886 ****
}
else
{
! this_row = (byte[][]) rows.elementAt(current_row);
!
! rowBuffer = new byte[this_row.length][];
! System.arraycopy(this_row, 0, rowBuffer, 0, this_row.length);
}
onInsertRow = false;
--- 866,872 ----
}
else
{
! initRowBuffer();
}
onInsertRow = false;
***************
*** 1858,1867 ****
current_row++;
}
! this_row = (byte [][])rows.elementAt(current_row);
!
! rowBuffer = new byte[this_row.length][];
! System.arraycopy(this_row, 0, rowBuffer, 0, this_row.length);
return true;
}
--- 1844,1850 ----
current_row++;
}
! initRowBuffer();
return true;
}
***************
*** 2808,2813 ****
--- 2791,2806 ----
return 0; // SQL NULL
}
+ private void initRowBuffer(){
+ this_row = (byte[][]) rows.elementAt(current_row);
+ if (resultsetconcurrency == ResultSet.CONCUR_UPDATABLE) {
+ rowBuffer = new byte[this_row.length][];
+ System.arraycopy(this_row, 0, rowBuffer, 0, this_row.length);
+ }else{
+ rowBuffer = this_row;
+ }
+ }
+
private boolean isColumnTrimmable(int columnIndex) throws SQLException
{
switch (getSQLType(columnIndex))