db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-3977) Clob.truncate with a value greater than the Clob length raises different exceptions in embedded and client driver
Date Tue, 09 Dec 2008 15:26:44 GMT

    [ https://issues.apache.org/jira/browse/DERBY-3977?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12654827#action_12654827

Knut Anders Hatlen commented on DERBY-3977:

PostgreSQL's JDBC driver doesn't appear to throw an exception for len>=length+1. In code
called from Clob.truncate(), I found this comment:

     * Truncates the large object to the given length in bytes.
     * If the number of bytes is larger than the current large
     * object length, the large object will be filled with zero
     * bytes.  This method does not modify the current file offset.

The comment talks about bytes, but the code is also used for character data, so I guess truncate(length+1)
appends "\u0000".

MySQL Connector/J throws an exception, if I read the code correctly.

> Clob.truncate with a value greater than the Clob length raises different exceptions in
embedded and client driver
> -----------------------------------------------------------------------------------------------------------------
>                 Key: DERBY-3977
>                 URL: https://issues.apache.org/jira/browse/DERBY-3977
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC
>    Affects Versions:,
>            Reporter: Kristian Waagan
>            Assignee: Kristian Waagan
>            Priority: Minor
> Calling Clob.truncate with a value that is greater then the Clob length raises different
SQLExceptions in the client and the embedded driver.
>  o Client: SQLState.BLOB_LENGTH_TOO_LONG - XJ079
>  o Embedded: SQLState.BLOB_POSITION_TOO_LARGE - XJ076
> I believe the fix is simple enough  - change one of the exceptions.
> Which one most closely describes the situation?
> A release note is needed for this fix.
> Also note the following from the Java API docs:
> "void truncate(long len)
>               throws SQLException
>     Truncates the CLOB value that this Clob designates to have a length of len characters.
>     Note: If the value specified for pos is greater then the length+1 of the CLOB value
then the behavior is undefined. Some JDBC drivers may throw a SQLException while other drivers
may support this operation.
> "
> This opens for a change of behavior as well.
> There seems to an inconsistency in the docs, possibly due to rephrasing - it references
both len and pos. The latter isn't used anywhere else in the JavaDoc for truncate.
> And what should the result of truncate(length+1) be?

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message