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());