[
https://issues.apache.org/jira/browse/DERBY-6681?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14081967#comment-14081967
]
Holger Rehn edited comment on DERBY-6681 at 8/1/14 6:21 AM:
------------------------------------------------------------
{quote} You have labelled this issue with "Deviation from standard". Does the
JDBC and/or SQL standard mandate that this should work? {quote}
I'm not absolutely sure about that. But I cannot find anything indicating the
opposite and it seems very logical because this problem simply makes multi-row
updates completely impossible and that just because on uses streamed data for a
BLOB/CLOB column. Any other combination, such as using setString() for a CLOB
column or using setCharacterStream() for a VARCHAR column just works fine. This
is simply inconsistent. And it shouldn't really be a problem to support that
because Derby buffers the data stream anyway so why not re-use it.
The JDBC API doc of the setXXXStream kind of methods reads:
{quote} ... The data will be read from the stream as needed until end-of-file
is reached. ... {quote}
I'd consider this a clear statement that at least the JDBC driver will never
attempt to read the stream more than once.
Cheers,
Holger
p.s. Rick Hillegas, you have lowered urgency to "normal". Sorry for setting it
to "blocker" but I thought this is a field intended to give a reporter the
chance to express urgency from his/her point of view. And for me this is a
showstopper that has caused a complete and still lasting production breakdown
yesterday.
was (Author: ickzon):
{quote} You have labelled this issue with "Deviation from standard". Does the
JDBC and/or SQL standard mandate that this should work? {quote}
I'm not absolutely sure about that. But I cannot find anything indicating the
opposite and it seems very logical because this problem simply makes multi-row
updates completely impossible and that just because on uses streamed data for a
BLOB/CLOB column. Any other combination, such as using setString() for a CLOB
column or using setCharacterStream() for a VARCHAR column just works fine. This
is simply inconsistent.
The JDBC API doc of the setXXXStream kind of methods reads:
{quote} ... The data will be read from the stream as needed until end-of-file
is reached. ... {quote}
I'd consider this a clear statement that at least the JDBC driver will never
attempt to read the stream more than once.
Cheers,
Holger
p.s. Rick Hillegas, you have lowered urgency to "normal". Sorry for setting it
to "blocker" but I thought this is a field intended to give a reporter the
chance to express urgency from his/her point of view. And for me this is a
showstopper that has caused a complete and still lasting production breakdown
yesterday.
> Cannot update BLOB/CLOB values in multiple rows simultaneously
> --------------------------------------------------------------
>
> Key: DERBY-6681
> URL: https://issues.apache.org/jira/browse/DERBY-6681
> Project: Derby
> Issue Type: Bug
> Components: Store
> Affects Versions: 10.9.1.0, 10.10.2.0
> Reporter: Holger Rehn
> Priority: Blocker
> Attachments: MultiLOB.java
>
>
> When trying to execute a single command to update multiple rows with a new
> BLOB/CLOB value, an exception is thrown because Derby tries to read the data
> stream once for every value/row to update.
--
This message was sent by Atlassian JIRA
(v6.2#6252)