[ 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)