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.