[ 
https://issues.apache.org/jira/browse/DRILL-5769?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16157872#comment-16157872
 ] 

Jinfeng Ni commented on DRILL-5769:
-----------------------------------

In JSON dataset, `assetData.debt.couponPaymentFeature` is an array of map.  
Therefore, the filter expression 
t.assetData.debt.couponPaymentFeature.interestBasis = '5' should throw error, 
since LHS of the comparison is an array, and Drill does not support a 
comparison between array vs a single value, even if the array just contains one 
single value.  The reason that you hit IOBE probably be related to the fact 
that some couponPaymentFeature is an empty list. 

Adding [0] for the array is the right expression to go with. The reason it 
works is Drill will return null if an array is empty for [0]. 

Therefore, it seems to me that we probably need block the expression of 
`arrayOfMap.mapField`. 


> IndexOutOfBoundsException when querying JSON files
> --------------------------------------------------
>
>                 Key: DRILL-5769
>                 URL: https://issues.apache.org/jira/browse/DRILL-5769
>             Project: Apache Drill
>          Issue Type: Bug
>          Components:  Server, Storage - JSON
>    Affects Versions: 1.10.0
>         Environment: *jdk_8u45_x64*
> *single drillbit running on zookeeper*
> *Following options set to TRUE:*
> drill.exec.functions.cast_empty_string_to_null
> store.json.all_text_mode
> store.parquet.enable_dictionary_encoding
> store.parquet.use_new_reader
>            Reporter: David Lee
>            Assignee: Jinfeng Ni
>             Fix For: 1.10.0, 1.11.0, 1.12.0
>
>         Attachments: 001.json, 100.json, 111.json
>
>
> *Running the following SQL on these three JSON files fail: *
> 001.json 100.json 111.json
> select t.id
> from dfs.`/tmp/???.json` t
> where t.assetData.debt.couponPaymentFeature.interestBasis = '5'
> *Error:*
> org.apache.drill.common.exceptions.UserRemoteException: SYSTEM ERROR: 
> IndexOutOfBoundsException: index: 1024, length: 1 (expected: range(0, 1024)) 
> Fragment 0:0 [Error Id: xxxx.xxxx...
> *However running the same SQL on two out of three files works:*
> select t.id
> from dfs.`/tmp/1??.json` t
> where t.assetData.debt.couponPaymentFeature.interestBasis = '5'
> select t.id
> from dfs.`/tmp/?1?.json` t
> where t.assetData.debt.couponPaymentFeature.interestBasis = '5'
> select t.id
> from dfs.`/tmp/??1.json` t
> where t.assetData.debt.couponPaymentFeature.interestBasis = '5'
> *Changing the selected column from t.id to t.* also works: *
> select *
> from dfs.`/tmp/???.json` t
> where t.assetData.debt.couponPaymentFeature.interestBasis = '5'



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to