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

Review request for drill, Jason Altekruse and Steven Phillips.


Repository: drill-git


Description
-------

The complex parquet reader looks up the type of a field by querying the parquet 
library which does a case sensitive match on names. If a field is spelled using 
diffent case, the field is not found and the parquet reader handles it as a 
missing field. If it was the only field, the reader returns all the fields. 
The fix is to do a case insensitive name match. The fix also requires retaining 
both the type name in the parquet file and the field name used by the user and 
propagating them down to the creation of value vectors.


Diffs
-----

  
exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet2/DrillParquetGroupConverter.java
 c6310b1 
  
exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet2/DrillParquetReader.java
 c3e8330 
  
exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet2/DrillParquetRecordMaterializer.java
 f9c3480 

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


Testing
-------

Tested the following queries on a complex file

select * from dfs.`complex.parquet` d;
select d.ingredients from dfs.`complex.parquet` d;
select d.ingredients.bag from dfs.`complex.parquet` d;
select d.ingredients.bag[0].name from dfs.`complex.parquet` d;

select d.ingredienTs from dfs.`complex.parquet` d;

select d.ingredients.Bag from dfs.`complex.parquet` d;
select d.Ingredients.bag from dfs.`complex.parquet` d;
select d.Ingredients.Bag from dfs.`complex.parquet` d;

select d.recipe, d.ingredients.bag from dfs.`complex.parquet` d;
select d.Recipe, d.ingredients.baG from dfs.`complex.parquet` d;

select d.ingredients.bag[0].name from dfs.`complex.parquet` d;
select d.ingredients.baG[0].name from dfs.`complex.parquet` d;
select d.ingredients.bag[0].naMe from dfs.`complex.parquet` d;
select d.ingredients.baG[0].naMe from dfs.`complex.parquet` d;


Thanks,

Parth Chandra

Reply via email to