Re: Re: [BUGS] no way in LargeObject API to detect short read? - Mailing list pgsql-jdbc

From Peter T Mount
Subject Re: Re: [BUGS] no way in LargeObject API to detect short read?
Date
Msg-id 980501473.3a7143e156efd@webmail.retep.org.uk
Whole thread Raw
In response to Re: [BUGS] no way in LargeObject API to detect short read?  (aoki@acm.org (Paul M. Aoki))
Responses Re: Re: [BUGS] no way in LargeObject API to detect short read?
List pgsql-jdbc
Hmmm, what's the performance issues with this? Is there going to be a problem
with very large LargeObject's?

Quoting "Paul M. Aoki" <aoki@acm.org>:

> Bruce Momjian <pgman@candle.pha.pa.us> writes:
> > Anyone able to fix this?
>
> here's a hack we've been using in-house (written by Jun Gabayan,
> <jgabayan@pahv.xerox.com>).
>
> you may not like the style but it's a stab at a solution.
> --
>  Paul M. Aoki / Xerox Palo Alto Research Center / 3333 Coyote Hill Road
>  aoki@acm.org / Computer Science Laboratory     / Palo Alto, CA
> 94304-1314
>
> Index: LargeObject.java
> ===================================================================
> RCS file:
> /project/placeless/cvsroot/placeless2/src/org/postgresql/largeobject/LargeObje
ct.java,v
> retrieving revision 1.1
> retrieving revision 1.3
> diff -r1.1 -r1.3
> 64c64,67
> <
> ---
> >
> >   private int pos = 0; //current position
> >   private int size = 0;
> >
> 85a89,90
> >     pos = tell();
> >     size = size();
> 102a108
> >     if(fd == 0) return;
> 105a112
> >     fd = 0;
> 118a126,132
> >         // calculate available data to read to avoid reading pass the
> end
> >         // to avoid an exception
> >         pos = tell();
> >         int avail = size - pos;
> >         if(avail == 0) return null;
> >         if(avail < len) len = avail;
> >         try {
> 123c137,141
> <
> ---
> >         }catch(SQLException se) {
> >           System.out.println("***LargeObject.read: Caught
> SQLException: " + se.getMessage());
> >           return null;
> >         }
> >
> 157c175
> <   public void read(byte buf[],int off,int len) throws SQLException
> ---
> >   public int read(byte buf[],int off,int len) throws SQLException
> 159c177,180
> <     System.arraycopy(read(len),0,buf,off,len);
> ---
> >     byte mybuf[] = read(len);
> >     int sz = (mybuf != null) ? mybuf.length : -1; //must return -1 for
> end of data
> >     if(sz > 0) System.arraycopy(mybuf,0,buf,off,sz);
> >     return sz;
>



--
Peter Mount peter@retep.org.uk
PostgreSQL JDBC Driver: http://www.retep.org.uk/postgres/
RetepPDF PDF library for Java: http://www.retep.org.uk/pdf/

pgsql-jdbc by date:

Previous
From: Peter T Mount
Date:
Subject: Re: Open 7.1 items
Next
From: Peter T Mount
Date:
Subject: Re: Re: [BUGS] JDBC buggy in 7.1beta3