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 2013/04/15 09:09:21 UTC

svn commit: r1467874 - in /hive/trunk/hbase-handler/src: java/org/apache/hadoop/hive/hbase/LazyHBaseRow.java test/org/apache/hadoop/hive/hbase/TestLazyHBaseObject.java

Author: navis
Date: Mon Apr 15 07:09:21 2013
New Revision: 1467874

URL: http://svn.apache.org/r1467874
Log:
HIVE-3179 HBase Handler doesn't handle NULLs properly (Lars Francke via Navis)

Modified:
    hive/trunk/hbase-handler/src/java/org/apache/hadoop/hive/hbase/LazyHBaseRow.java
    hive/trunk/hbase-handler/src/test/org/apache/hadoop/hive/hbase/TestLazyHBaseObject.java

Modified: hive/trunk/hbase-handler/src/java/org/apache/hadoop/hive/hbase/LazyHBaseRow.java
URL: http://svn.apache.org/viewvc/hive/trunk/hbase-handler/src/java/org/apache/hadoop/hive/hbase/LazyHBaseRow.java?rev=1467874&r1=1467873&r2=1467874&view=diff
==============================================================================
--- hive/trunk/hbase-handler/src/java/org/apache/hadoop/hive/hbase/LazyHBaseRow.java (original)
+++ hive/trunk/hbase-handler/src/java/org/apache/hadoop/hive/hbase/LazyHBaseRow.java Mon Apr 15 07:09:21 2013
@@ -133,7 +133,6 @@ public class LazyHBaseRow extends LazySt
     boolean [] fieldsInited = getFieldInited();
 
     if (!fieldsInited[fieldID]) {
-      fieldsInited[fieldID] = true;
       ByteArrayRef ref = null;
       ColumnMapping colMap = columnsMapping.get(fieldID);
 
@@ -164,6 +163,9 @@ public class LazyHBaseRow extends LazySt
       }
     }
 
+    // Has to be set last because of HIVE-3179: NULL fields would not work otherwise
+    fieldsInited[fieldID] = true;
+
     return fields[fieldID].getObject();
   }
 

Modified: hive/trunk/hbase-handler/src/test/org/apache/hadoop/hive/hbase/TestLazyHBaseObject.java
URL: http://svn.apache.org/viewvc/hive/trunk/hbase-handler/src/test/org/apache/hadoop/hive/hbase/TestLazyHBaseObject.java?rev=1467874&r1=1467873&r2=1467874&view=diff
==============================================================================
--- hive/trunk/hbase-handler/src/test/org/apache/hadoop/hive/hbase/TestLazyHBaseObject.java (original)
+++ hive/trunk/hbase-handler/src/test/org/apache/hadoop/hive/hbase/TestLazyHBaseObject.java Mon Apr 15 07:09:21 2013
@@ -546,6 +546,12 @@ public class TestLazyHBaseObject extends
         + "'c':null,'d':'no'}").replace("'", "\""),
       SerDeUtils.getJSONString(o, oi));
 
+    // This is intentionally duplicated because of HIVE-3179
+    assertEquals(
+      ("{'key':'test-row','a':null,'b':['','a','',''],"
+       + "'c':null,'d':'no'}").replace("'", "\""),
+      SerDeUtils.getJSONString(o, oi));
+
     kvs.clear();
     kvs.add(new KeyValue(Bytes.toBytes("test-row"),
         Bytes.toBytes("cfa"), Bytes.toBytes("a"), Bytes.toBytes("123")));