[ http://issues.apache.org/jira/browse/DERBY-721?page=all ]

Tomohito Nakayama updated DERBY-721:
------------------------------------

    Attachment: DERBY-721_4.patch

Description of patch :
 What is done:
  1: Throw newly defined exception when stream for same column in result was 
retrieved from a resultset , both in embed and network client.
  2: Add new test code for 1.

 What is *not* done:
  I think these should be considered in other patch/issue.
  1:Exception was *not* thrown when stream for same column in result was 
retrieved from Blob/Clob .
  2:Exception was *not* thrown when value , other than stream , was retrieved 
from result set ,after stream for the same column was retrieved.


Test:
 Executed derbyall and found no error except found in regression test .

> State of InputStream retrieved from resultset is not clean , if there exists 
> previous InputStream .
> ---------------------------------------------------------------------------------------------------
>
>          Key: DERBY-721
>          URL: http://issues.apache.org/jira/browse/DERBY-721
>      Project: Derby
>         Type: Bug
>   Components: Unknown
>  Environment: [EMAIL PROTECTED]:~/derby/dev/trunk$ cat /proc/version 
> Linux version 2.6.12-1-386 ([EMAIL PROTECTED]) (gcc version 4.0.2 20050917 
> (prerelease) (Debian 4.0.1-8)) #1 Tue Sep 27 12:41:08 JST 2005
> [EMAIL PROTECTED]:~/derby/dev/trunk$ java -version
> java version "1.4.2_10"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_10-b03)
> Java HotSpot(TM) Client VM (build 1.4.2_10-b03, mixed mode)
>     Reporter: Tomohito Nakayama
>     Assignee: Tomohito Nakayama
>  Attachments: DERBY-721.patch, DERBY-721_2.patch, DERBY-721_3.patch, 
> DERBY-721_4.patch, DERBY-721_rollback_1+2.patch, testLob.java, testLob2.java, 
> testResult.txt, testResult2.txt
>
> State of InputStream retrieved from ResultSet was not clean , if there exists 
> previous InputStream retrieved from ResultSet .
> Test code ...
>       PreparedStatement pst = conn.prepareStatement("insert into a(b) 
> values(?)");
>       byte[] data = new byte[1024 * 1024];
>       for(int i = 0;
>           i < 1024 * 1024;
>           i  ++){
>           data[i] = (byte)(i % 256);
>       }
>       pst.setBinaryStream(1,new ByteArrayInputStream(data),data.length);
>       pst.executeUpdate();
>       pst.close();
>       
>       
>       st = conn.createStatement();
>       ResultSet rs = st.executeQuery("select b from a");
>       rs.next();
>       
>       InputStream is = rs.getBinaryStream(1);
>       System.out.println("Here goes first stream");
>       System.out.println(is.read());
>       System.out.println(is.read());
>       System.out.println(is.read());
>       
>       is = rs.getBinaryStream(1);
>       System.out.println("Here goes 2nd stream");
>       System.out.println(is.read());
>       System.out.println(is.read());
>       System.out.println(is.read());
> Result ....
> [EMAIL PROTECTED]:~/derby/test/20051121$ java testLob
> Here goes first stream
> 0
> 1
> 2
> Here goes 2nd stream
> 7
> 8
> 9
> It is expected that result printed from first stream is as same as result 
> printed from 2nd.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to