-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/18925/
-----------------------------------------------------------

Review request for hive, Brock Noland, justin coffey, and Xuefu Zhang.


Repository: hive-git


Description
-------

The issue is, as part of select * query, a DeepParquetHiveMapInspector is used 
for one column of an overall parquet-table struct object inspector.  

The problem lies in the ObjectInspectorFactory's cache for struct object 
inspector.  For performance it caches based on an array list, of all object 
inspectors of columns.  The second time the query is run, it is attempted to 
lookup cached value.  When the DeepParquetHiveMapInspector is gotten to, java 
calls .equals but it fails as the .equals method casted it to a 
"StandardParquetHiveInspector".

Regenerating the .equals and .hashcode from eclipse.  

Also adding one more check in .equals before casting, as if by luck another 
type of object inspector gets hashed to the same hashcode in the cache, java 
would call .equals against it to find it if it is the key.


Diffs
-----

  
ql/src/java/org/apache/hadoop/hive/ql/io/parquet/serde/AbstractParquetMapInspector.java
 1d72747 

Diff: https://reviews.apache.org/r/18925/diff/


Testing
-------

Manual testing.


Thanks,

Szehon Ho

Reply via email to