[
https://issues.apache.org/jira/browse/DERBY-5236?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13061242#comment-13061242
]
Knut Anders Hatlen commented on DERBY-5236:
-------------------------------------------
An alternative to failing when the column is too long, is to add a
data truncation warning to the result set. The javadoc for
java.sql.DataTruncation says:
http://download.oracle.com/javase/6/docs/api/java/sql/DataTruncation.html
> An exception thrown as a DataTruncation exception (on writes) or
> reported as a DataTruncation warning (on reads) when a data values is
> unexpectedly truncated for reasons other than its having execeeded
> MaxFieldSize.
That description seems to match the scenario in this bug report. And
it also looks like that was what the code intended to do (it had
comments about adding a warning, just not the code to do it).
> Client driver silently truncates strings that exceed 32KB
> ---------------------------------------------------------
>
> Key: DERBY-5236
> URL: https://issues.apache.org/jira/browse/DERBY-5236
> Project: Derby
> Issue Type: Bug
> Components: Network Client
> Affects Versions: 10.8.1.2
> Reporter: Knut Anders Hatlen
> Assignee: Knut Anders Hatlen
> Attachments: repro.diff, write-full-string.diff
>
>
> Can be seen with this JUnit test case that retrieves a VARCHAR value with
> 20000 characters. With the client driver, the string is truncated to 10900
> characters (32700 bytes when encoded in UTF-8).
> public void testLongColumn() throws SQLException {
> PreparedStatement ps = prepareStatement(
> "values cast(? as varchar(20000))");
> char[] chars = new char[20000];
> Arrays.fill(chars, '\u4e10');
> String str = new String(chars);
> ps.setString(1, str);
> JDBC.assertSingleValueResultSet(ps.executeQuery(), str);
> }
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira