From the Javadoc of java.sql.Blob byte[] getBytes(long pos, int length) throws SQLException;

  * @param pos the ordinal position of the first byte in the
  *        <code>BLOB</code> value to be extracted; the first byte is at
  *        position 1

pqsql driver assumes the position starts from 0

Patch attached

--
Emmanuel Bernard
http://www.hibernate.org
callto://emmanuelbernard
Index: org/postgresql/jdbc2/AbstractJdbc2BlobClob.java
===================================================================
RCS file: 
/usr/local/cvsroot/pgjdbc/pgjdbc/org/postgresql/jdbc2/AbstractJdbc2BlobClob.java,v
retrieving revision 1.1
diff -u -r1.1 AbstractJdbc2BlobClob.java
--- org/postgresql/jdbc2/AbstractJdbc2BlobClob.java     28 Mar 2005 08:52:35 
-0000      1.1
+++ org/postgresql/jdbc2/AbstractJdbc2BlobClob.java     6 May 2005 09:59:42 
-0000
@@ -46,7 +46,8 @@
 
     public byte[] getBytes(long pos, int length) throws SQLException
     {
-        lo.seek((int)pos, LargeObject.SEEK_SET);
+        //throw an appropriate exception if pos < 1
+        lo.seek((int)pos-1, LargeObject.SEEK_SET);
         return lo.read(length);
     }
 
---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

Reply via email to