[
https://issues.apache.org/jira/browse/DERBY-4544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13018426#comment-13018426
]
Rick Hillegas commented on DERBY-4544:
--------------------------------------
Tests passed cleanly for me on
derby-4544-01-ab-shortCircuitLengthOptimization.diff.
> 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
> Attachments: Test_4544.java, Test_4544.java, Test_4544.java,
> derby-4544-01-ab-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