Uploaded image for project: 'Hive'
  1. Hive
  2. HIVE-13094

CBO: Assertion error in Case expression

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.0.0, 2.1.0
    • Fix Version/s: 2.1.0
    • Component/s: CBO
    • Labels:
      None

      Description

      Triggered by a trap case in the case evaluation

      CASE WHEN (-2) >= 0  THEN SUBSTRING(str0, 1,CAST((-2) AS INT)) ELSE NULL
      
      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)
      

        Attachments

        1. HIVE-13094.01.patch
          12 kB
          Jesus Camacho Rodriguez
        2. HIVE-13094.patch
          3 kB
          Jesus Camacho Rodriguez

          Issue Links

            Activity

              People

              • Assignee:
                jcamachorodriguez Jesus Camacho Rodriguez
                Reporter:
                gopalv Gopal Vijayaraghavan
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: