db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (Updated) (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (DERBY-5537) Casting to a shorter string type does not warn about truncation
Date Wed, 14 Dec 2011 12:39:30 GMT

     [ https://issues.apache.org/jira/browse/DERBY-5537?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Knut Anders Hatlen updated DERBY-5537:
--------------------------------------

    Attachment: warn.diff

For the binary string data types, there are similar comments about the need to generate warnings
in SQLVarbit.java and SQLBlob.java, in addition to SQLBit.java. (For the character string
data types, SQLVarchar and SQLClob inherit the affected code from SQLChar.)

I've experimented with the attached warn.diff patch (not ready for commit), which adds a java.sql.DataTruncation
warning to the ResultSet (or Statement if the query doesn't return a ResultSet) when a value
has been truncated. The warnings seem to appear at the right place:

ij> create table t(x varchar(10));
0 rows inserted/updated/deleted
ij> insert into t values 'abcde', 'fghi  j', 'klmn   ', 'opqr';
4 rows inserted/updated/deleted
ij> select x, cast(x as char(4)) from t;
X         |2   
---------------
abcde     |abcd
WARNING 01004: Data truncation
fghi  j   |fghi
WARNING 01004: Data truncation
klmn      |klmn
opqr      |opqr

4 rows selected
                
> Casting to a shorter string type does not warn about truncation
> ---------------------------------------------------------------
>
>                 Key: DERBY-5537
>                 URL: https://issues.apache.org/jira/browse/DERBY-5537
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.8.2.2
>            Reporter: Knut Anders Hatlen
>         Attachments: warn.diff
>
>
> SQL:2003, part 2, 6.12 <cast specification> specifies that a truncation warning
should be raised when casting from one (character or binary) string data type to another.
Derby does truncate, but it doesn't raise a warning:
> ij> values cast('abc' as char(2));
> 1 
> --
> ab
> 1 row selected
> ij> values cast(x'cafebabe' as char(2) for bit data);
> 1   
> ----
> cafe
> 1 row selected
> We should generate a warning in order to be compliant.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message