You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Knut Anders Hatlen (Commented) (JIRA)" <ji...@apache.org> on 2011/12/09 09:02:40 UTC
[jira] [Commented] (DERBY-4793) Assert failure when concatenating
strings with total size greater than 32K
[ https://issues.apache.org/jira/browse/DERBY-4793?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13165920#comment-13165920 ]
Knut Anders Hatlen commented on DERBY-4793:
-------------------------------------------
Yes, it looks like an exception should be raised:
ISO/IEC 9075-2:2003 (E)
6.28 <string value expression>
General Rules
2) b) ii) 3) B) If the most specific type of either S1 or S2 is variable-length character string, then let
VL be the implementation-defined maximum length of variable-length character strings.
Case:
I) If M is less than or equal to VL, then the result of the <concatenation> is S with
length M.
II) If M is greater than VL and the right-most M–VL characters of S are all the <space>
character, then the result of the <concatenation> is the first VL characters of S
with length VL.
III) Otherwise, an exception condition is raised: data exception — string data, right
truncation.
> Assert failure when concatenating strings with total size greater than 32K
> --------------------------------------------------------------------------
>
> Key: DERBY-4793
> URL: https://issues.apache.org/jira/browse/DERBY-4793
> Project: Derby
> Issue Type: Bug
> Components: SQL
> Affects Versions: 10.6.1.0
> Reporter: Knut Anders Hatlen
> Labels: derby_triage10_8
> Attachments: concat.sql
>
>
> When concatenating two strings whose total length exceeds the maximum length for a VARCHAR, an assert is triggered in the debug jars:
> ij> values length('0123456789.....' || '0123456789.....');
> ERROR XJ001: Java exception: 'ASSERT FAILED The maximum length 35000 for the result type VARCHAR can't be greater than it's maximum width of result's typeid32672: org.apache.derby.shared.common.sanity.AssertFailure'.
> With non-debug jars, the same query completes successfully:
> ij> values length('0123456789.....' || '0123456789.....');
> 1
> -----------
> 35000
> 1 row selected
> I think this query is supposed to fail, also with non-debug jars, but in any even it shouldn't be raising assert failures.
--
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