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

Short-circuiting of the OR operator doesn't seem to be happening

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Blocker
    • Resolution: Cannot Reproduce
    • None
    • None
    • Query Processor
    • None

    Description

      An example case is

      select t.date from t where t.date = '' or month(t.date) = '12';

      This still seems to be produce errors like

      java.io.IOException: org.apache.hadoop.hive.ql.metadata.HiveException: Unable to execute method public java.lang.Boolean org.apache.hadoop.hive.ql.udf.UDFBaseCompare.evaluate(java.lang.Number,java.lang.String) on object org.apache.hadoop.hive.ql.udf.UDFOPEqual@14e0e90 of class org.apache.hadoop.hive.ql.udf.UDFOPEqual with arguments

      {null, 05:java.lang.String}

      of size 2:null
      at org.apache.hadoop.hive.ql.exec.ExecReducer.reduce(ExecReducer.java:169)
      at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:391)
      at org.apache.hadoop.mapred.TaskTracker$Child.main(TaskTracker.java:2139)
      Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Unable to execute method public java.lang.Boolean org.apache.hadoop.hive.ql.udf.UDFBaseCompare.evaluate(java.lang.Number,java.lang.String) on object org.apache.hadoop.hive.ql.udf.UDFOPEqual@14e0e90 of class org.apache.hadoop.hive.ql.udf.UDFOPEqual with arguments

      {null, 05:java.lang.String}

      of size 2:null
      at org.apache.hadoop.hive.ql.exec.FunctionRegistry.invoke(FunctionRegistry.java:394)
      at org.apache.hadoop.hive.ql.exec.ExprNodeFuncEvaluator.evaluate(ExprNodeFuncEvaluator.java:75)
      at org.apache.hadoop.hive.ql.exec.ExprNodeFuncEvaluator.evaluate(ExprNodeFuncEvaluator.java:72)
      at org.apache.hadoop.hive.ql.exec.ExprNodeFuncEvaluator.evaluate(ExprNodeFuncEvaluator.java:72)
      at org.apache.hadoop.hive.ql.exec.ExprNodeFuncEvaluator.evaluate(ExprNodeFuncEvaluator.java:72)
      at org.apache.hadoop.hive.ql.exec.FilterOperator.process(FilterOperator.java:62)
      at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:260)
      at org.apache.hadoop.hive.ql.exec.JoinOperator.createForwardJoinObject(JoinOperator.java:257)
      at org.apache.hadoop.hive.ql.exec.JoinOperator.genObject(JoinOperator.java:477)
      at org.apache.hadoop.hive.ql.exec.JoinOperator.genObject(JoinOperator.java:467)
      at org.apache.hadoop.hive.ql.exec.JoinOperator.genObject(JoinOperator.java:467)
      at org.apache.hadoop.hive.ql.exec.JoinOperator.checkAndGenObject(JoinOperator.java:507)
      at org.apache.hadoop.hive.ql.exec.JoinOperator.endGroup(JoinOperator.java:489)
      at org.apache.hadoop.hive.ql.exec.ExecReducer.reduce(ExecReducer.java:140)
      ... 2 more

      nulls are being produced in month();
      The month() function produces nulls when the string is ''; but those strings should never be touched by month().

        • note that this is a faked test case, come talk to me if you need a real example.

      Attachments

        Activity

          People

            Unassigned Unassigned
            indigoviolet Venky Iyer
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: