db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kristian Waagan (JIRA)" <j...@apache.org>
Subject [jira] Updated: (DERBY-4515) Document and clarify the use of DataValueDescriptor.setValue(InputStream,int)
Date Fri, 15 Jan 2010 13:11:54 GMT

     [ 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

Patch 1a cleans up the usage of DataValueDescriptor.setValue(InputStream,int) with the following

* 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:
>            Reporter: Kristian Waagan
>            Assignee: Kristian Waagan
>            Priority: Minor
>             Fix For:
>         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.

View raw message