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

                 Key: HIVE-67
                 URL: https://issues.apache.org/jira/browse/HIVE-67
             Project: Hadoop Hive
          Issue Type: Bug
            Reporter: Venky Iyer


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 [EMAIL PROTECTED] 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 [EMAIL PROTECTED] 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.
 


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

Reply via email to