[
https://issues.apache.org/jira/browse/DERBY-4515?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kristian Waagan updated DERBY-4515:
-----------------------------------
Attachment: derby-4515-1a-setValue_stream_clarification.stat
derby-4515-1a-setValue_stream_clarification.diff
Patch 1a cleans up the usage of DataValueDescriptor.setValue(InputStream,int)
with the following changes:
* DataValueDescriptor
Added constant UNKNOWN_LOGICAL_LENGTH (has value -1).
Improved JavaDoc for the method setValue(InputStream,int).
* EmbedResultSet
Used new constant to indicate unknown length.
Removed inaccurate comment stating the length variable isn't used.
* EmbedPreparedStatement
Used new constant to indicate unknown length.
Removed false comment (already wrong, but got even worse after the fix below).
Removed unneeded variable 'intLength'.
* SQLChar & SQLBinary
Added mention of the new constant in the JavaDoc for the setValue method.
Regression tests passed.
Patch ready for review.
An alternative to the patch, or maybe even follow-up work, is to investigate if
the length argument is really needed. Most of the usage seem to be related to
getting data into Derby, but there are *indications* that in some cases it is
used when dealing with streams coming from the store as well (or maybe when
passing between different parts of the system).
Given that most of the patch is documentation and trivial changes, I think it
is incremental improvement in any case.
> Document and clarify the use of DataValueDescriptor.setValue(InputStream,int)
> -----------------------------------------------------------------------------
>
> Key: DERBY-4515
> URL: https://issues.apache.org/jira/browse/DERBY-4515
> Project: Derby
> Issue Type: Improvement
> Components: JDBC
> Affects Versions: 10.6.0.0
> Reporter: Kristian Waagan
> Assignee: Kristian Waagan
> Priority: Minor
> Fix For: 10.6.0.0
>
> Attachments: derby-4515-1a-setValue_stream_clarification.diff,
> derby-4515-1a-setValue_stream_clarification.stat
>
>
> The usage of the method DataValueDescriptor.setValue(InputStream stream, int
> length) is unclear. The intended use seems to be to pass on the known length
> of an input stream set from the JDBC-layer (i.e. setBinaryStream).
> There seems to be two distinct cases:
> - the logical length of the stream is known
> - the logical length of the stream is not known
> Using -1 when the length is not known seems to be an established pattern.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.