Skip site navigation (1) Skip section navigation (2)

Re: no way in LargeObject API to detect short read?

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: "Paul M(dot) Aoki" <aoki(at)acm(dot)org>
Cc: pgsql-bugs(at)postgresql(dot)org, PostgreSQL jdbc list <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: no way in LargeObject API to detect short read?
Date: 2001-01-25 00:04:03
Message-ID: 200101250004.TAA19490@candle.pha.pa.us (view raw or flat)
Thread:
Lists: pgsql-bugspgsql-jdbc
Paul, I need a context diff.  Thanks.

> Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> writes:
> > Anyone able to fix this?
> 
> here's a hack we've been using in-house (written by Jun Gabayan,
> <jgabayan(at)pahv(dot)xerox(dot)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(at)acm(dot)org / Computer Science Laboratory     / Palo Alto, CA 94304-1314
> 
> Index: LargeObject.java
> ===================================================================
> RCS file: /project/placeless/cvsroot/placeless2/src/org/postgresql/largeobject/LargeObject.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;
> 


-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman(at)candle(dot)pha(dot)pa(dot)us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

In response to

pgsql-bugs by date

Next:From: Alex KrohnDate: 2001-01-25 01:58:31
Subject: select fails on indexed varchars.
Previous:From: Paul M. AokiDate: 2001-01-24 21:42:43
Subject: Re: no way in LargeObject API to detect short read?

pgsql-jdbc by date

Next:From: Bruce MomjianDate: 2001-01-25 00:06:47
Subject: Re: Re: [GENERAL] Re: JDBC Performance
Previous:From: Bruce MomjianDate: 2001-01-24 23:42:08
Subject: Re: [PATCHES] Re: [INTERFACES] Patch for JDBC timestamp problems

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group