You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Rick Hillegas (JIRA)" <ji...@apache.org> on 2011/04/11 21:24:05 UTC

[jira] [Resolved] (DERBY-4544) Referencing streaming CLOBs in (some) generated column clauses fails

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

Rick Hillegas resolved DERBY-4544.
----------------------------------

       Resolution: Fixed
    Fix Version/s: 10.9.0.0
                   10.8.1.1

Resolving this issue. We may want to figure out how to make the builtin operators (including length()) more efficient for this use case. However, I see that as a separate issue.

> Referencing streaming CLOBs in (some) generated column clauses fails
> --------------------------------------------------------------------
>
>                 Key: DERBY-4544
>                 URL: https://issues.apache.org/jira/browse/DERBY-4544
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.5.3.0, 10.6.1.0
>            Reporter: Kristian Waagan
>            Assignee: Kristian Waagan
>              Labels: CLOB, derby_triage10_8
>             Fix For: 10.8.1.1, 10.9.0.0
>
>         Attachments: Test_4544.java, Test_4544.java, Test_4544.java, derby-4544-01-ab-shortCircuitLengthOptimization.diff, derby-4544-01-ac-shortCircuitLengthOptimization.diff
>
>
> Referencing a CLOB represented as a stream in generated columns can lead to data corruption or that the query fails.
> For instance, with 10.5:
> create table t (id int, myclob clob, clen generated always as (length(myclob)));
> # Insert CLOB using the streaming APIs (setCharacterStream).
> The exception 'java.lang.ClassCastException: org.apache.derby.iapi.types.ReaderToUTF8Stream cannot be cast to org.apache.derby.iapi.types.Resetable'
> On trunk the same query results in data corruption, and this isn't detected before the value is read back from store.
> Workaround:
> Don't use the streaming APIs when using CLOBs in generated columns. This increases the memory footprint, and may not feasible for large CLOBs.
> FYI, BLOB deals with this by materializing the value, which effectively equals to using the workaround mentioned above.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira