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

Kristian Waagan updated DERBY-1473:
-----------------------------------

    Attachment: derby-1473-1a-streaming.diff
                derby-1473-1a-streaming.stat

'derby-1473-1a-streaming.diff' adds the capability to handle length less 
streams properly. Such streams are now capped at the maximum length of the 
column it is inserted into. If the stream is longer than the limit, a 
DerbyIOException (subclass of IOException) is thrown, causing a statement 
severity StandardException to be thrown. The exception handling system takes 
care of cleaning up.

If a stream is shorter or longer than the specified length, an exception is 
thrown as required by JDBC 3.0.
How the exceptions thrown by the streaming classes are reported, differ between 
embedded and client. DERBY-1657 tracks this (see also DERBY-1658).

I decided to split the changes to the engine and the testing into different 
patches. A testing patch will be submitted shortly. Note that both patches must 
be commited before derbyall is run, or else some tests will fail 
(characterStreams, resultSetStream and streamingColumn). derbyall passed, but 
due to a last minute change I am doing another run (will post result tomorrow).

Patch ready for review/commit. The committer needs to add a new file (see stat 
file).

> Add cut-off and truncation logic to streaming classes in the embedded driver
> ----------------------------------------------------------------------------
>
>                 Key: DERBY-1473
>                 URL: http://issues.apache.org/jira/browse/DERBY-1473
>             Project: Derby
>          Issue Type: Improvement
>          Components: JDBC
>    Affects Versions: 10.2.0.0
>            Reporter: Kristian Waagan
>         Assigned To: Kristian Waagan
>             Fix For: 10.2.0.0
>
>         Attachments: derby-1473-1a-streaming.diff, 
> derby-1473-1a-streaming.stat
>
>
> When streaming data to Derby, the application stream will be wrapped in a 
> Derby-specific stream to convert the data to the correct representation. At a 
> minimum, this consists of getting the data to the on-disk format used by 
> Derby.
> The wrapping stream can be extended to provide the following features at an 
> earlier stage:
>  a) Data cut-off when the maximum allowed size is exceeded
>  b) Truncation of trailing blanks where allowed
> Both features can reduce the amount of data needed to be kept in memory on 
> insertion.
> Implementing this will require additional column/data type information in the 
> streaming class(es). The implementation must be able to handle streams for 
> which the length is specified and also streams with unknown/unspecified 
> length.

-- 
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