db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mayuresh Nirhali (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-2230) AssertFailure: ByteCode Conditional then/else stack mismatch
Date Thu, 12 Apr 2007 15:07:32 GMT

    [ https://issues.apache.org/jira/browse/DERBY-2230?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12488395
] 

Mayuresh Nirhali commented on DERBY-2230:
-----------------------------------------

The assert is reproducible on trunk as well. When I tried the last time, I think I ran on
non-debug version of trunk.

The return types of 'else' and 'then' clauses in the conditional query must be matched. If
they are not matched or if one of the types are not assignable to the other, 42X89 is thrown.

In this particular example, when debug flag is set, type.vmName for return type of both 'else'
and 'then' clause are checked and found to be not equal. This check does not validate if one
of them is assignable to the other, hence the assert.

> AssertFailure: ByteCode Conditional then/else stack mismatch
> ------------------------------------------------------------
>
>                 Key: DERBY-2230
>                 URL: https://issues.apache.org/jira/browse/DERBY-2230
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.2.2.0
>         Environment: The AssertFailure error occurs only with the debug version of derby.jar.
> Java 1.5
>            Reporter: Christian d'Heureuse
>         Assigned To: Mayuresh Nirhali
>             Fix For: 10.2.2.1
>
>
> The following statements produce an AssertFailure exception:
> CREATE TABLE table1 (
>    s VARCHAR(10));
> SELECT 1
>    FROM table1 a
>       INNER JOIN table1 b ON
>          a.s =
>             CASE
>                WHEN 1=1 THEN '0'
>                ELSE SUBSTR(b.s,1,1) END;
> Stack trace:
> org.apache.derby.shared.common.sanity.AssertFailure: ASSERT FAILED ByteCode Conditional
then/else stack mismatch: then: Lorg/apache/derby/iapi/types/StringDataValue; else: Lorg/apache/derby/iapi/types/ConcatableDataValue;
>         at org.apache.derby.shared.common.sanity.SanityManager.THROWASSERT(SanityManager.java:149)
>         at org.apache.derby.impl.services.bytecode.Conditional.end(Conditional.java:216)
>         at org.apache.derby.impl.services.bytecode.BCMethod.completeConditional(BCMethod.java:1063)
>         at org.apache.derby.impl.sql.compile.ConditionalNode.generateExpression(ConditionalNode.java:468)
>         at org.apache.derby.impl.sql.compile.BinaryRelationalOperatorNode.generateQualMethod(BinaryRelationalOperatorNode.java:708)
>         at org.apache.derby.impl.sql.compile.PredicateList.generateSingleQualifierCode(PredicateList.java:2723)
>         at org.apache.derby.impl.sql.compile.PredicateList.generateQualifiers(PredicateList.java:2905)
>         at org.apache.derby.impl.sql.compile.HashJoinStrategy.getScanArgs(HashJoinStrategy.java:348)
>         at org.apache.derby.impl.sql.compile.FromBaseTable.getScanArguments(FromBaseTable.java:3368)
>         at org.apache.derby.impl.sql.compile.FromBaseTable.generateResultSet(FromBaseTable.java:3059)
>         at org.apache.derby.impl.sql.compile.FromBaseTable.generate(FromBaseTable.java:2986)
>         at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generateMinion(ProjectRestrictNode.java:1352)
>         at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generate(ProjectRestrictNode.java:1303)
>         at org.apache.derby.impl.sql.compile.JoinNode.getJoinArguments(JoinNode.java:1580)
>         at org.apache.derby.impl.sql.compile.JoinNode.generateCore(JoinNode.java:1556)
>         at org.apache.derby.impl.sql.compile.JoinNode.generate(JoinNode.java:1480)
>         at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generateMinion(ProjectRestrictNode.java:1441)
>         at org.apache.derby.impl.sql.compile.ProjectRestrictNode.generate(ProjectRestrictNode.java:1303)
>         at org.apache.derby.impl.sql.compile.ScrollInsensitiveResultSetNode.generate(ScrollInsensitiveResultSetNode.java:110)
>         at org.apache.derby.impl.sql.compile.CursorNode.generate(CursorNode.java:583)
>         at org.apache.derby.impl.sql.compile.StatementNode.generate(StatementNode.java:233)
>         at org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatement.java:478)
>         at org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement.java:119)
>         at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(GenericLanguageConnectionContext.java:745)
>         at org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:568)
>         at org.apache.derby.impl.jdbc.EmbedStatement.execute(EmbedStatement.java:517)
>         at org.apache.derby.impl.tools.ij.ij.executeImmediate(Unknown Source)
>         at org.apache.derby.impl.tools.ij.utilMain.doCatch(Unknown Source)
>         at org.apache.derby.impl.tools.ij.utilMain.go(Unknown Source)
>         at org.apache.derby.impl.tools.ij.Main.go(Unknown Source)
>         at org.apache.derby.impl.tools.ij.Main.mainCore(Unknown Source)
>         at org.apache.derby.impl.tools.ij.Main14.main(Unknown Source)
>         at org.apache.derby.tools.ij.main(Unknown Source)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message