You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by vi...@apache.org on 2014/03/24 01:23:01 UTC

svn commit: r1580672 - /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/orc/WriterImpl.java

Author: vikram
Date: Mon Mar 24 00:23:01 2014
New Revision: 1580672

URL: http://svn.apache.org/r1580672
Log:
HIVE-6711 : ORC maps uses getMapSize() from MapOI which is unreliable (Prasanth J via Vikram Dixit, reviewed by Gunther)

Modified:
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/orc/WriterImpl.java

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/orc/WriterImpl.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/orc/WriterImpl.java?rev=1580672&r1=1580671&r2=1580672&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/orc/WriterImpl.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/orc/WriterImpl.java Mon Mar 24 00:23:01 2014
@@ -1483,11 +1483,10 @@ class WriterImpl implements Writer, Memo
       super.write(obj);
       if (obj != null) {
         MapObjectInspector insp = (MapObjectInspector) inspector;
-        int len = insp.getMapSize(obj);
-        lengths.write(len);
         // this sucks, but it will have to do until we can get a better
         // accessor in the MapObjectInspector.
         Map<?, ?> valueMap = insp.getMap(obj);
+        lengths.write(valueMap.size());
         for(Map.Entry<?, ?> entry: valueMap.entrySet()) {
           childrenWriters[0].write(entry.getKey());
           childrenWriters[1].write(entry.getValue());