[
https://issues.apache.org/jira/browse/DERBY-5236?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13068988#comment-13068988
]
Knut Anders Hatlen commented on DERBY-5236:
-------------------------------------------
I previously mentioned that strings are still truncated when they are longer
than 64 KB (because of overflow in the length field). But it also turns out
that strings that are just below 64 KB cause a StringIndexOutOfBoundsException
on the client. So the current state is:
0-65514 bytes: OK
65515 - 65535 bytes: StringIndexOutOfBoundsException
>=65536: Truncated result
I'm looking into why the client has a limit at 65514 bytes.
> 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