Re: no way in LargeObject API to detect short read?
От | aoki@acm.org (Paul M. Aoki) |
---|---|
Тема | Re: no way in LargeObject API to detect short read? |
Дата | |
Msg-id | 200101242142.f0OLgi725670@faerie.CS.Berkeley.EDU обсуждение исходный текст |
Ответ на | Re: no way in LargeObject API to detect short read? (Bruce Momjian <pgman@candle.pha.pa.us>) |
Ответы |
Re: [JDBC] Re: no way in LargeObject API to detect short read?
|
Список | pgsql-bugs |
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;
В списке pgsql-bugs по дате отправления: