[
https://issues.apache.org/jira/browse/DERBY-129?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Knut Anders Hatlen updated DERBY-129:
-------------------------------------
Attachment: delta-1a-1b.diff
d129-1b.diff
Attaching a new patch, d129-1b.diff, that addresses Dag's review comments. I've
also updloaded a patch delta-1a-1b.diff, which only shows the changes between
1a and 1b.
The regression tests passed, except two failures in UpdateStatisticsTest, which
I think are unrelated to the changes in the patch. Will log a separate bug for
those failures.
> Derby should throw a truncation error or warning when CASTing a
> parameter/constant to char or char for bit datatypes and the data is too
> large for the datatype.
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: DERBY-129
> URL: https://issues.apache.org/jira/browse/DERBY-129
> Project: Derby
> Issue Type: Bug
> Components: JDBC
> Affects Versions: 10.0.2.1
> Reporter: Mamta A. Satoor
> Assignee: Knut Anders Hatlen
> Labels: derby_triage10_8
> Attachments: d129-1a.diff, d129-1b.diff, delta-1a-1b.diff
>
>
> Derby doesn't throw a truncation exception/warning when data is too large
> during casting of constants or parameters to character string or bit string
> data types.
> Following is ij example for constants which is too big for the datatype it is
> getting cast to
> ij> values (cast ('hello' as char(3)));
> 1
> ----
> hel
> 1 row selected
> ij> values (cast (X'0102' as char(1) for bit data));
> 1
> ----
> 01
> 1 row selected
> Following code snippet is when using parameters through a JDBC program
> s.executeUpdate("create table ct (c CLOB(100K))");
> //the following Formatters just loads cData with 32700 'c' characters
> String cData =
> org.apache.derbyTesting.functionTests.util.Formatters.repeatChar("c",32700);
> //notice that ? in the preared statement below is bound to length 32672
> pSt = con.prepareStatement("insert into ct values (cast (? as
> varchar(32672)))");
> pSt.setString(1, cData);
> //Derby doesn't throw an exception at ps.execute time for 32700 characters
> into 32672 parameter. It silently
> truncates it to 32672
> pSt.execute();
--
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