Re: [BUGS] no way in LargeObject API to detect short read?
От | Bruce Momjian |
---|---|
Тема | Re: [BUGS] no way in LargeObject API to detect short read? |
Дата | |
Msg-id | 200101250004.TAA19490@candle.pha.pa.us обсуждение исходный текст |
Ответ на | [BUGS] no way in LargeObject API to detect short read? (pgsql-bugs@postgresql.org) |
Список | pgsql-jdbc |
Paul, I need a context diff. Thanks. > 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/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@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026
В списке pgsql-jdbc по дате отправления: