You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by na...@apache.org on 2010/04/16 03:41:49 UTC
svn commit: r934662 - in /hadoop/hive/trunk: ./
ql/src/java/org/apache/hadoop/hive/ql/exec/
ql/src/test/queries/clientpositive/ ql/src/test/results/clientpositive/
Author: namit
Date: Fri Apr 16 01:41:49 2010
New Revision: 934662
URL: http://svn.apache.org/viewvc?rev=934662&view=rev
Log:
HIVE-1308. Bug in boolean datatypes comparison
(Paul Yang via namit)
Modified:
hadoop/hive/trunk/CHANGES.txt
hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/ComparisonOpMethodResolver.java
hadoop/hive/trunk/ql/src/test/queries/clientpositive/udf_equal.q
hadoop/hive/trunk/ql/src/test/queries/clientpositive/udf_greaterthan.q
hadoop/hive/trunk/ql/src/test/queries/clientpositive/udf_greaterthanorequal.q
hadoop/hive/trunk/ql/src/test/queries/clientpositive/udf_lessthan.q
hadoop/hive/trunk/ql/src/test/queries/clientpositive/udf_lessthanorequal.q
hadoop/hive/trunk/ql/src/test/results/clientpositive/udf_equal.q.out
hadoop/hive/trunk/ql/src/test/results/clientpositive/udf_greaterthan.q.out
hadoop/hive/trunk/ql/src/test/results/clientpositive/udf_greaterthanorequal.q.out
hadoop/hive/trunk/ql/src/test/results/clientpositive/udf_lessthan.q.out
hadoop/hive/trunk/ql/src/test/results/clientpositive/udf_lessthanorequal.q.out
Modified: hadoop/hive/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/CHANGES.txt?rev=934662&r1=934661&r2=934662&view=diff
==============================================================================
--- hadoop/hive/trunk/CHANGES.txt (original)
+++ hadoop/hive/trunk/CHANGES.txt Fri Apr 16 01:41:49 2010
@@ -369,6 +369,9 @@ Trunk - Unreleased
HIVE-1311. Bug in use of parameter hadoop supports splittable.
(Namit Jain via zshao)
+ HIVE-1308. Bug in boolean datatypes comparison
+ (Paul Yang via namit)
+
Release 0.5.0 - Unreleased
INCOMPATIBLE CHANGES
Modified: hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/ComparisonOpMethodResolver.java
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/ComparisonOpMethodResolver.java?rev=934662&r1=934661&r2=934662&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/ComparisonOpMethodResolver.java (original)
+++ hadoop/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/ComparisonOpMethodResolver.java Fri Apr 16 01:41:49 2010
@@ -50,13 +50,13 @@ public class ComparisonOpMethodResolver
/*
* (non-Javadoc)
- *
+ *
* @see
* org.apache.hadoop.hive.ql.exec.UDFMethodResolver#getEvalMethod(java.util
* .List)
*/
@Override
- public Method getEvalMethod(List<TypeInfo> argTypeInfos) throws AmbiguousMethodException {
+ public Method getEvalMethod(List<TypeInfo> argTypeInfos) throws UDFArgumentException {
assert (argTypeInfos.size() == 2);
List<TypeInfo> pTypeInfos = null;
@@ -65,6 +65,11 @@ public class ComparisonOpMethodResolver
pTypeInfos = new ArrayList<TypeInfo>();
pTypeInfos.add(TypeInfoFactory.doubleTypeInfo);
pTypeInfos.add(TypeInfoFactory.doubleTypeInfo);
+ } else if (argTypeInfos.get(0).equals(TypeInfoFactory.booleanTypeInfo) &&
+ argTypeInfos.get(1).equals(TypeInfoFactory.booleanTypeInfo)) {
+ pTypeInfos = new ArrayList<TypeInfo>();
+ pTypeInfos.add(TypeInfoFactory.intTypeInfo);
+ pTypeInfos.add(TypeInfoFactory.intTypeInfo);
} else if (argTypeInfos.get(0) == argTypeInfos.get(1)) {
pTypeInfos = argTypeInfos;
} else {
@@ -75,9 +80,12 @@ public class ComparisonOpMethodResolver
Method udfMethod = null;
+ List<Method> evaluateMethods = new ArrayList<Method>();
+
for (Method m : Arrays.asList(udfClass.getMethods())) {
if (m.getName().equals("evaluate")) {
+ evaluateMethods.add(m);
List<TypeInfo> acceptedTypeInfos = TypeInfoUtils.getParameterTypeInfos(
m, pTypeInfos.size());
if (acceptedTypeInfos == null) {
@@ -104,6 +112,11 @@ public class ComparisonOpMethodResolver
}
}
}
+
+ if (udfMethod == null) {
+ throw new NoMatchingMethodException(udfClass, argTypeInfos, evaluateMethods);
+ }
+
return udfMethod;
}
Modified: hadoop/hive/trunk/ql/src/test/queries/clientpositive/udf_equal.q
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/test/queries/clientpositive/udf_equal.q?rev=934662&r1=934661&r2=934662&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/test/queries/clientpositive/udf_equal.q (original)
+++ hadoop/hive/trunk/ql/src/test/queries/clientpositive/udf_equal.q Fri Apr 16 01:41:49 2010
@@ -4,3 +4,4 @@ DESCRIBE FUNCTION EXTENDED =;
DESCRIBE FUNCTION ==;
DESCRIBE FUNCTION EXTENDED ==;
+SELECT true=false, false=true, false=false, true=true FROM src LIMIT 1;
Modified: hadoop/hive/trunk/ql/src/test/queries/clientpositive/udf_greaterthan.q
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/test/queries/clientpositive/udf_greaterthan.q?rev=934662&r1=934661&r2=934662&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/test/queries/clientpositive/udf_greaterthan.q (original)
+++ hadoop/hive/trunk/ql/src/test/queries/clientpositive/udf_greaterthan.q Fri Apr 16 01:41:49 2010
@@ -1,2 +1,4 @@
DESCRIBE FUNCTION >;
DESCRIBE FUNCTION EXTENDED >;
+
+SELECT true>false, false>true, false>false, true>true FROM src LIMIT 1;
\ No newline at end of file
Modified: hadoop/hive/trunk/ql/src/test/queries/clientpositive/udf_greaterthanorequal.q
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/test/queries/clientpositive/udf_greaterthanorequal.q?rev=934662&r1=934661&r2=934662&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/test/queries/clientpositive/udf_greaterthanorequal.q (original)
+++ hadoop/hive/trunk/ql/src/test/queries/clientpositive/udf_greaterthanorequal.q Fri Apr 16 01:41:49 2010
@@ -1,2 +1,4 @@
DESCRIBE FUNCTION >=;
DESCRIBE FUNCTION EXTENDED >=;
+
+SELECT true>=false, false>=true, false>=false, true>=true FROM src LIMIT 1;
\ No newline at end of file
Modified: hadoop/hive/trunk/ql/src/test/queries/clientpositive/udf_lessthan.q
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/test/queries/clientpositive/udf_lessthan.q?rev=934662&r1=934661&r2=934662&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/test/queries/clientpositive/udf_lessthan.q (original)
+++ hadoop/hive/trunk/ql/src/test/queries/clientpositive/udf_lessthan.q Fri Apr 16 01:41:49 2010
@@ -1,2 +1,4 @@
DESCRIBE FUNCTION <;
DESCRIBE FUNCTION EXTENDED <;
+
+SELECT true<false, false<true, false<false, true<true FROM src LIMIT 1;
Modified: hadoop/hive/trunk/ql/src/test/queries/clientpositive/udf_lessthanorequal.q
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/test/queries/clientpositive/udf_lessthanorequal.q?rev=934662&r1=934661&r2=934662&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/test/queries/clientpositive/udf_lessthanorequal.q (original)
+++ hadoop/hive/trunk/ql/src/test/queries/clientpositive/udf_lessthanorequal.q Fri Apr 16 01:41:49 2010
@@ -1,2 +1,4 @@
DESCRIBE FUNCTION <=;
DESCRIBE FUNCTION EXTENDED <=;
+
+SELECT true<=false, false<=true, false<=false, true<=true FROM src LIMIT 1;
Modified: hadoop/hive/trunk/ql/src/test/results/clientpositive/udf_equal.q.out
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/test/results/clientpositive/udf_equal.q.out?rev=934662&r1=934661&r2=934662&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/test/results/clientpositive/udf_equal.q.out (original)
+++ hadoop/hive/trunk/ql/src/test/results/clientpositive/udf_equal.q.out Fri Apr 16 01:41:49 2010
@@ -20,3 +20,12 @@ POSTHOOK: query: DESCRIBE FUNCTION EXTEN
POSTHOOK: type: DESCFUNCTION
a == b - Returns TRUE if a equals b and false otherwise
Synonyms: =
+PREHOOK: query: SELECT true=false, false=true, false=false, true=true FROM src LIMIT 1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: file:/data/users/pyang/mstore/trunk/VENDOR.hive/trunk/build/ql/scratchdir/hive_2010-04-14_14-02-03_248_2636646596000796300/10000
+POSTHOOK: query: SELECT true=false, false=true, false=false, true=true FROM src LIMIT 1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Output: file:/data/users/pyang/mstore/trunk/VENDOR.hive/trunk/build/ql/scratchdir/hive_2010-04-14_14-02-03_248_2636646596000796300/10000
+false false true true
Modified: hadoop/hive/trunk/ql/src/test/results/clientpositive/udf_greaterthan.q.out
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/test/results/clientpositive/udf_greaterthan.q.out?rev=934662&r1=934661&r2=934662&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/test/results/clientpositive/udf_greaterthan.q.out (original)
+++ hadoop/hive/trunk/ql/src/test/results/clientpositive/udf_greaterthan.q.out Fri Apr 16 01:41:49 2010
@@ -8,3 +8,12 @@ PREHOOK: type: DESCFUNCTION
POSTHOOK: query: DESCRIBE FUNCTION EXTENDED >
POSTHOOK: type: DESCFUNCTION
a > b - Returns TRUE if a is greater than b
+PREHOOK: query: SELECT true>false, false>true, false>false, true>true FROM src LIMIT 1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: file:/data/users/pyang/mstore/trunk/VENDOR.hive/trunk/build/ql/scratchdir/hive_2010-04-14_15-39-21_311_8364092782764061396/10000
+POSTHOOK: query: SELECT true>false, false>true, false>false, true>true FROM src LIMIT 1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Output: file:/data/users/pyang/mstore/trunk/VENDOR.hive/trunk/build/ql/scratchdir/hive_2010-04-14_15-39-21_311_8364092782764061396/10000
+true false false false
Modified: hadoop/hive/trunk/ql/src/test/results/clientpositive/udf_greaterthanorequal.q.out
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/test/results/clientpositive/udf_greaterthanorequal.q.out?rev=934662&r1=934661&r2=934662&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/test/results/clientpositive/udf_greaterthanorequal.q.out (original)
+++ hadoop/hive/trunk/ql/src/test/results/clientpositive/udf_greaterthanorequal.q.out Fri Apr 16 01:41:49 2010
@@ -8,3 +8,12 @@ PREHOOK: type: DESCFUNCTION
POSTHOOK: query: DESCRIBE FUNCTION EXTENDED >=
POSTHOOK: type: DESCFUNCTION
a >= b - Returns TRUE if b is not smaller than a
+PREHOOK: query: SELECT true>=false, false>=true, false>=false, true>=true FROM src LIMIT 1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: file:/data/users/pyang/mstore/trunk/VENDOR.hive/trunk/build/ql/scratchdir/hive_2010-04-14_15-38-26_830_745034439856049454/10000
+POSTHOOK: query: SELECT true>=false, false>=true, false>=false, true>=true FROM src LIMIT 1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Output: file:/data/users/pyang/mstore/trunk/VENDOR.hive/trunk/build/ql/scratchdir/hive_2010-04-14_15-38-26_830_745034439856049454/10000
+true false true true
Modified: hadoop/hive/trunk/ql/src/test/results/clientpositive/udf_lessthan.q.out
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/test/results/clientpositive/udf_lessthan.q.out?rev=934662&r1=934661&r2=934662&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/test/results/clientpositive/udf_lessthan.q.out (original)
+++ hadoop/hive/trunk/ql/src/test/results/clientpositive/udf_lessthan.q.out Fri Apr 16 01:41:49 2010
@@ -8,3 +8,12 @@ PREHOOK: type: DESCFUNCTION
POSTHOOK: query: DESCRIBE FUNCTION EXTENDED <
POSTHOOK: type: DESCFUNCTION
a < b - Returns TRUE if a is less than b
+PREHOOK: query: SELECT true<false, false<true, false<false, true<true FROM src LIMIT 1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: file:/data/users/pyang/mstore/trunk/VENDOR.hive/trunk/build/ql/scratchdir/hive_2010-04-14_15-35-43_830_5934618930589343927/10000
+POSTHOOK: query: SELECT true<false, false<true, false<false, true<true FROM src LIMIT 1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Output: file:/data/users/pyang/mstore/trunk/VENDOR.hive/trunk/build/ql/scratchdir/hive_2010-04-14_15-35-43_830_5934618930589343927/10000
+false true false false
Modified: hadoop/hive/trunk/ql/src/test/results/clientpositive/udf_lessthanorequal.q.out
URL: http://svn.apache.org/viewvc/hadoop/hive/trunk/ql/src/test/results/clientpositive/udf_lessthanorequal.q.out?rev=934662&r1=934661&r2=934662&view=diff
==============================================================================
--- hadoop/hive/trunk/ql/src/test/results/clientpositive/udf_lessthanorequal.q.out (original)
+++ hadoop/hive/trunk/ql/src/test/results/clientpositive/udf_lessthanorequal.q.out Fri Apr 16 01:41:49 2010
@@ -8,3 +8,12 @@ PREHOOK: type: DESCFUNCTION
POSTHOOK: query: DESCRIBE FUNCTION EXTENDED <=
POSTHOOK: type: DESCFUNCTION
a <= b - Returns TRUE if b is not greater than a
+PREHOOK: query: SELECT true<=false, false<=true, false<=false, true<=true FROM src LIMIT 1
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: file:/data/users/pyang/mstore/trunk/VENDOR.hive/trunk/build/ql/scratchdir/hive_2010-04-14_15-36-38_643_4822148186689079902/10000
+POSTHOOK: query: SELECT true<=false, false<=true, false<=false, true<=true FROM src LIMIT 1
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Output: file:/data/users/pyang/mstore/trunk/VENDOR.hive/trunk/build/ql/scratchdir/hive_2010-04-14_15-36-38_643_4822148186689079902/10000
+false true true true