You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by cw...@apache.org on 2012/03/07 11:11:04 UTC

svn commit: r1297919 [2/2] - in /hive/trunk: data/files/ ql/src/java/org/apache/hadoop/hive/ql/exec/ ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/ ql/src/java/org/apache/hadoop/hive/ql/optimizer/ ql/src/java/org/apache/hadoop/hive/ql/optimize...

Modified: hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/SerDeUtils.java
URL: http://svn.apache.org/viewvc/hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/SerDeUtils.java?rev=1297919&r1=1297918&r2=1297919&view=diff
==============================================================================
--- hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/SerDeUtils.java (original)
+++ hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/SerDeUtils.java Wed Mar  7 10:11:03 2012
@@ -30,6 +30,7 @@ import org.apache.hadoop.hive.serde2.obj
 import org.apache.hadoop.hive.serde2.objectinspector.MapObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector;
+import org.apache.hadoop.hive.serde2.objectinspector.StandardStructObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.StructField;
 import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector;
 import org.apache.hadoop.hive.serde2.objectinspector.UnionObjectInspector;
@@ -372,6 +373,20 @@ public final class SerDeUtils {
   }
 
   /**
+   * return false though element is null if nullsafe flag is true for that
+   */
+  public static boolean hasAnyNullObject(List o, StandardStructObjectInspector loi,
+      boolean[] nullSafes) {
+    List<? extends StructField> fields = loi.getAllStructFieldRefs();
+    for (int i = 0; i < o.size();i++) {
+      if ((nullSafes == null || !nullSafes[i])
+          && hasAnyNullObject(o.get(i), fields.get(i).getFieldObjectInspector())) {
+        return true;
+      }
+    }
+    return false;
+  }
+  /**
    * True if Object passed is representing null object.
    *
    * @param o The object