You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Gopal V (JIRA)" <ji...@apache.org> on 2016/02/19 09:36:18 UTC

[jira] [Updated] (HIVE-13094) CBO: Assertion error in Case expression

     [ https://issues.apache.org/jira/browse/HIVE-13094?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gopal V updated HIVE-13094:
---------------------------
    Description: 

{code}
CASE WHEN (-2) >= 0  THEN SUBSTRING(...) ELSE NULL
{code}

{code}
Exception in thread "b367ad08-d900-4672-8e75-a4e90a52141b b367ad08-d900-4672-8e75-a4e90a52141b main" java.lang.AssertionError: Internal error: Cannot add expression of different type to set:
set type is RecordType(VARCHAR(2147483647) CHARACTER SET "ISO-8859-1" COLLATE "ISO-8859-1$en_US$primary" $f0, VARCHAR(2147483647) CHARACTER SET "ISO-8859-1" COLLATE "ISO-8859-1$en_US$primary" $f1, VARCL
expression type is RecordType(VARCHAR(2147483647) CHARACTER SET "ISO-8859-1" COLLATE "ISO-8859-1$en_US$primary" $f0, VARCHAR(2147483647) CHARACTER SET "ISO-8859-1" COLLATE "ISO-8859-1$en_US$primary" $fL
set is rel#12408:HiveProject.HIVE.[](input=HepRelVertex#12407,$f0=$0,$f1=$6,$f2=CASE(>=(-(2), 0), substring($6, 1, -(2)), null))
expression is HiveProject#12414
        at org.apache.calcite.util.Util.newInternal(Util.java:774)
        at org.apache.calcite.plan.RelOptUtil.verifyTypeEquivalence(RelOptUtil.java:317)
        at org.apache.calcite.plan.hep.HepRuleCall.transformTo(HepRuleCall.java:57)
        at org.apache.calcite.plan.RelOptRuleCall.transformTo(RelOptRuleCall.java:224)
        at org.apache.hadoop.hive.ql.optimizer.calcite.rules.HiveReduceExpressionsRule$ProjectReduceExpressionsRule.onMatch(HiveReduceExpressionsRule.java:208)
        at org.apache.calcite.plan.AbstractRelOptPlanner.fireRule(AbstractRelOptPlanner.java:318)
        at org.apache.calcite.plan.hep.HepPlanner.applyRule(HepPlanner.java:514)
        at org.apache.calcite.plan.hep.HepPlanner.applyRules(HepPlanner.java:392)
        at org.apache.calcite.plan.hep.HepPlanner.executeInstruction(HepPlanner.java:285)
        at org.apache.calcite.plan.hep.HepInstruction$RuleCollection.execute(HepInstruction.java:72)
        at org.apache.calcite.plan.hep.HepPlanner.executeProgram(HepPlanner.java:207)
        at org.apache.calcite.plan.hep.HepPlanner.findBestExp(HepPlanner.java:194)
        at org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.hepPlan(CalcitePlanner.java:1265)
        at org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.applyPreJoinOrderingTransforms(CalcitePlanner.java:1125)
        at org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.apply(CalcitePlanner.java:938)
        at org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.apply(CalcitePlanner.java:878)
        at org.apache.calcite.tools.Frameworks$1.apply(Frameworks.java:113)
        at org.apache.calcite.prepare.CalcitePrepareImpl.perform(CalcitePrepareImpl.java:969)
{code}

  was:
{code}
Exception in thread "b367ad08-d900-4672-8e75-a4e90a52141b b367ad08-d900-4672-8e75-a4e90a52141b main" java.lang.AssertionError: Internal error: Cannot add expression of different type to set:
set type is RecordType(VARCHAR(2147483647) CHARACTER SET "ISO-8859-1" COLLATE "ISO-8859-1$en_US$primary" $f0, VARCHAR(2147483647) CHARACTER SET "ISO-8859-1" COLLATE "ISO-8859-1$en_US$primary" $f1, VARCL
expression type is RecordType(VARCHAR(2147483647) CHARACTER SET "ISO-8859-1" COLLATE "ISO-8859-1$en_US$primary" $f0, VARCHAR(2147483647) CHARACTER SET "ISO-8859-1" COLLATE "ISO-8859-1$en_US$primary" $fL
set is rel#12408:HiveProject.HIVE.[](input=HepRelVertex#12407,$f0=$0,$f1=$6,$f2=CASE(>=(-(2), 0), substring($6, 1, -(2)), null))
expression is HiveProject#12414
        at org.apache.calcite.util.Util.newInternal(Util.java:774)
        at org.apache.calcite.plan.RelOptUtil.verifyTypeEquivalence(RelOptUtil.java:317)
        at org.apache.calcite.plan.hep.HepRuleCall.transformTo(HepRuleCall.java:57)
        at org.apache.calcite.plan.RelOptRuleCall.transformTo(RelOptRuleCall.java:224)
        at org.apache.hadoop.hive.ql.optimizer.calcite.rules.HiveReduceExpressionsRule$ProjectReduceExpressionsRule.onMatch(HiveReduceExpressionsRule.java:208)
        at org.apache.calcite.plan.AbstractRelOptPlanner.fireRule(AbstractRelOptPlanner.java:318)
        at org.apache.calcite.plan.hep.HepPlanner.applyRule(HepPlanner.java:514)
        at org.apache.calcite.plan.hep.HepPlanner.applyRules(HepPlanner.java:392)
        at org.apache.calcite.plan.hep.HepPlanner.executeInstruction(HepPlanner.java:285)
        at org.apache.calcite.plan.hep.HepInstruction$RuleCollection.execute(HepInstruction.java:72)
        at org.apache.calcite.plan.hep.HepPlanner.executeProgram(HepPlanner.java:207)
        at org.apache.calcite.plan.hep.HepPlanner.findBestExp(HepPlanner.java:194)
        at org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.hepPlan(CalcitePlanner.java:1265)
        at org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.applyPreJoinOrderingTransforms(CalcitePlanner.java:1125)
        at org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.apply(CalcitePlanner.java:938)
        at org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.apply(CalcitePlanner.java:878)
        at org.apache.calcite.tools.Frameworks$1.apply(Frameworks.java:113)
        at org.apache.calcite.prepare.CalcitePrepareImpl.perform(CalcitePrepareImpl.java:969)
{code}


> CBO: Assertion error  in Case expression
> ----------------------------------------
>
>                 Key: HIVE-13094
>                 URL: https://issues.apache.org/jira/browse/HIVE-13094
>             Project: Hive
>          Issue Type: Bug
>            Reporter: Gopal V
>
> {code}
> CASE WHEN (-2) >= 0  THEN SUBSTRING(...) ELSE NULL
> {code}
> {code}
> Exception in thread "b367ad08-d900-4672-8e75-a4e90a52141b b367ad08-d900-4672-8e75-a4e90a52141b main" java.lang.AssertionError: Internal error: Cannot add expression of different type to set:
> set type is RecordType(VARCHAR(2147483647) CHARACTER SET "ISO-8859-1" COLLATE "ISO-8859-1$en_US$primary" $f0, VARCHAR(2147483647) CHARACTER SET "ISO-8859-1" COLLATE "ISO-8859-1$en_US$primary" $f1, VARCL
> expression type is RecordType(VARCHAR(2147483647) CHARACTER SET "ISO-8859-1" COLLATE "ISO-8859-1$en_US$primary" $f0, VARCHAR(2147483647) CHARACTER SET "ISO-8859-1" COLLATE "ISO-8859-1$en_US$primary" $fL
> set is rel#12408:HiveProject.HIVE.[](input=HepRelVertex#12407,$f0=$0,$f1=$6,$f2=CASE(>=(-(2), 0), substring($6, 1, -(2)), null))
> expression is HiveProject#12414
>         at org.apache.calcite.util.Util.newInternal(Util.java:774)
>         at org.apache.calcite.plan.RelOptUtil.verifyTypeEquivalence(RelOptUtil.java:317)
>         at org.apache.calcite.plan.hep.HepRuleCall.transformTo(HepRuleCall.java:57)
>         at org.apache.calcite.plan.RelOptRuleCall.transformTo(RelOptRuleCall.java:224)
>         at org.apache.hadoop.hive.ql.optimizer.calcite.rules.HiveReduceExpressionsRule$ProjectReduceExpressionsRule.onMatch(HiveReduceExpressionsRule.java:208)
>         at org.apache.calcite.plan.AbstractRelOptPlanner.fireRule(AbstractRelOptPlanner.java:318)
>         at org.apache.calcite.plan.hep.HepPlanner.applyRule(HepPlanner.java:514)
>         at org.apache.calcite.plan.hep.HepPlanner.applyRules(HepPlanner.java:392)
>         at org.apache.calcite.plan.hep.HepPlanner.executeInstruction(HepPlanner.java:285)
>         at org.apache.calcite.plan.hep.HepInstruction$RuleCollection.execute(HepInstruction.java:72)
>         at org.apache.calcite.plan.hep.HepPlanner.executeProgram(HepPlanner.java:207)
>         at org.apache.calcite.plan.hep.HepPlanner.findBestExp(HepPlanner.java:194)
>         at org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.hepPlan(CalcitePlanner.java:1265)
>         at org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.applyPreJoinOrderingTransforms(CalcitePlanner.java:1125)
>         at org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.apply(CalcitePlanner.java:938)
>         at org.apache.hadoop.hive.ql.parse.CalcitePlanner$CalcitePlannerAction.apply(CalcitePlanner.java:878)
>         at org.apache.calcite.tools.Frameworks$1.apply(Frameworks.java:113)
>         at org.apache.calcite.prepare.CalcitePrepareImpl.perform(CalcitePrepareImpl.java:969)
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)