Index: serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ListObjectsEqualComparer.java =================================================================== --- serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ListObjectsEqualComparer.java (revision 10099) +++ serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ListObjectsEqualComparer.java (working copy) @@ -170,7 +170,7 @@ return true; } - for (int i = 0; i < numFields; i++) { + for (int i = numFields - 1; i >= 0; i--) { if (!fieldComparers[i].areEqual(ol0.get(i), ol1.get(i))) { return false; } Index: ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPOr.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPOr.java (revision 10099) +++ ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPOr.java (working copy) @@ -40,7 +40,7 @@ throws UDFArgumentException { if (arguments.length != 2) { throw new UDFArgumentLengthException( - "The operator 'AND' only accepts 2 argument."); + "The operator 'OR' only accepts 2 argument."); } boi0 = (BooleanObjectInspector) arguments[0]; boi1 = (BooleanObjectInspector) arguments[1]; Index: ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPNotEqual.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPNotEqual.java (revision 10099) +++ ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPNotEqual.java (working copy) @@ -25,7 +25,7 @@ /** * GenericUDF Class for operation Not EQUAL. */ -@Description(name = "=", value = "a _FUNC_ b - Returns TRUE if a is not equal to b") +@Description(name = "<>", value = "a _FUNC_ b - Returns TRUE if a is not equal to b") public class GenericUDFOPNotEqual extends GenericUDFBaseCompare { public GenericUDFOPNotEqual(){ this.opName = "NOT EQUAL"; Index: ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBaseCompare.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBaseCompare.java (revision 10099) +++ ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBaseCompare.java (working copy) @@ -43,7 +43,8 @@ @Description(name = "op", value = "a op b - Returns the result of operation") public abstract class GenericUDFBaseCompare extends GenericUDF { public enum CompareType { - // Now only string, int and bollean comparisons are treated as special cases. + // Now only string, text, int, long, byte and bollean comparisons are + // treated as special cases. // For other types, we reuse ObjectInspectorUtils.compare() COMPARE_STRING, COMPARE_TEXT, COMPARE_INT, COMPARE_LONG, COMPARE_BYTE, COMPARE_BOOL, SAME_TYPE, NEED_CONVERT @@ -86,10 +87,10 @@ } } - if (TypeInfoUtils.getTypeInfoFromObjectInspector(arguments[0]) == - TypeInfoFactory.stringTypeInfo && - TypeInfoUtils.getTypeInfoFromObjectInspector(arguments[1]) == - TypeInfoFactory.stringTypeInfo) { + if (TypeInfoUtils.getTypeInfoFromObjectInspector(arguments[0]).equals( + TypeInfoFactory.stringTypeInfo) && + TypeInfoUtils.getTypeInfoFromObjectInspector(arguments[1]).equals( + TypeInfoFactory.stringTypeInfo)) { soi0 = (StringObjectInspector) arguments[0]; soi1 = (StringObjectInspector) arguments[1]; if (soi0.preferWritable() || soi1.preferWritable()) {