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

Ship it!


go for r3 with the getClass (and no instanceof) check and {} formatting.

- justin coffey


On March 8, 2014, 12:01 a.m., Szehon Ho wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/18925/
> -----------------------------------------------------------
> 
> (Updated March 8, 2014, 12:01 a.m.)
> 
> 
> 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, there is a cache keyed on an array list, of all 
> object inspectors of columns.  The second time the query is run, it attempts 
> to lookup cached struct inspector.  But when the hashmap looks up the part of 
> the key consisting of the DeepParquetHiveMapInspector, java calls .equals 
> against the existing DeepParquetHivemapInspector.  This fails, as the .equals 
> method casted the "other" to a "StandardParquetHiveInspector".
> 
> Regenerating the .equals and .hashcode from eclipse.  
> 
> Also adding one more check in .equals before casting, to handle the case if 
> another class of object inspector gets hashed to the same hashcode in the 
> cache.  Then java would call .equals against the other, which in this case is 
> not of the same class.
> 
> 
> 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