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/11/11 02:14:37 UTC

svn commit: r1033792 - in /hive/trunk: ./ ql/src/java/org/apache/hadoop/hive/ql/udf/generic/ serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/

Author: namit
Date: Thu Nov 11 01:14:37 2010
New Revision: 1033792

URL: http://svn.apache.org/viewvc?rev=1033792&view=rev
Log:
HIVE-1743 Compare from the end for GroupBy
(Siying Dong via namit)


Modified:
    hive/trunk/CHANGES.txt
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBaseCompare.java
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPNotEqual.java
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPOr.java
    hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ListObjectsEqualComparer.java

Modified: hive/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hive/trunk/CHANGES.txt?rev=1033792&r1=1033791&r2=1033792&view=diff
==============================================================================
--- hive/trunk/CHANGES.txt (original)
+++ hive/trunk/CHANGES.txt Thu Nov 11 01:14:37 2010
@@ -232,6 +232,9 @@ Trunk -  Unreleased
     HIVE-1765 Add queryid while locking
     (namit via He Yongqiang)
 
+    HIVE-1743 Compare from the end for GroupBy
+    (Siying Dong via namit)
+
   OPTIMIZATIONS
 
   BUG FIXES

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBaseCompare.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBaseCompare.java?rev=1033792&r1=1033791&r2=1033792&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBaseCompare.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBaseCompare.java Thu Nov 11 01:14:37 2010
@@ -43,7 +43,8 @@ import org.apache.hadoop.io.BooleanWrita
 @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 boolean 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 @@ public abstract class GenericUDFBaseComp
       }
     }
 
-    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()) {

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPNotEqual.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPNotEqual.java?rev=1033792&r1=1033791&r2=1033792&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPNotEqual.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPNotEqual.java Thu Nov 11 01:14:37 2010
@@ -25,7 +25,7 @@ import org.apache.hadoop.hive.serde2.obj
 /**
  * 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";

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPOr.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPOr.java?rev=1033792&r1=1033791&r2=1033792&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPOr.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPOr.java Thu Nov 11 01:14:37 2010
@@ -40,7 +40,7 @@ public class GenericUDFOPOr extends Gene
       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];

Modified: hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ListObjectsEqualComparer.java
URL: http://svn.apache.org/viewvc/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ListObjectsEqualComparer.java?rev=1033792&r1=1033791&r2=1033792&view=diff
==============================================================================
--- hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ListObjectsEqualComparer.java (original)
+++ hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ListObjectsEqualComparer.java Thu Nov 11 01:14:37 2010
@@ -170,7 +170,7 @@ public class ListObjectsEqualComparer {
       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;
       }