[ 
https://issues.apache.org/jira/browse/DERBY-4023?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kristian Waagan updated DERBY-4023:
-----------------------------------

    Attachment: derby-4023-1a-cache_length_simple.diff

Patch 1a caches the length for cases a) and b).
Patch ready for review.

Unfortunately, case c) is the most common one but it is not as easy to fix.
I think there are two main solutions:
 1) Add method InternalClob.getLengthIfKnow.
 2) Make LOBInputStream.copyBytes UTF-8 aware and count the characters (or add 
second copy method).

I think the two solutions can be combined as well, doing 2 only when the length 
is unknown.

> Improve length caching in TemporaryClob
> ---------------------------------------
>
>                 Key: DERBY-4023
>                 URL: https://issues.apache.org/jira/browse/DERBY-4023
>             Project: Derby
>          Issue Type: Improvement
>          Components: JDBC
>    Affects Versions: 10.4.2.0, 10.5.0.0
>            Reporter: Kristian Waagan
>            Assignee: Kristian Waagan
>            Priority: Minor
>         Attachments: derby-4023-1a-cache_length_simple.diff
>
>
> TemporaryClob doesn't save the known length of the Clob in all situations.
> The following places in the code should be improved (some easier than others):
>  a) TemporaryClob(String,ConChild)
>  b) copyClobContent(InternalClob,long) (non-static)
>  c) copyClobContent(InternalClob) (non-static)
> There might be additional places to fix too.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to