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

ASF GitHub Bot commented on DRILL-4783:
---------------------------------------

Github user jaltekruse commented on the issue:

    https://github.com/apache/drill/pull/546
  
    The original behavior was not by design, it was a bug. I would just detect 
the case where a scalar is being flattened and throw an appropriate user facing 
message like "Flatten does not support inputs of non-list values".
    
    The tests you have included here don't check their results. I would also 
suggest adding a test for the new negative case, checking for the appropriate 
message.
    
    If you want to more precisely control the input to your test, I would 
recommend taking a look at the operator unit test system I checked in and 
demonstrated at the hangout last month. This will allow you to write more 
targeted tests for this case. Feel free to ask questions if the usage is not 
clear from the examples in this class.
    
    
https://github.com/apache/drill/blob/master/exec/java-exec/src/test/java/org/apache/drill/exec/physical/unit/BasicPhysicalOpUnitTest.java


> Flatten on CONVERT_FROM fails with ClassCastException if resultset is empty
> ---------------------------------------------------------------------------
>
>                 Key: DRILL-4783
>                 URL: https://issues.apache.org/jira/browse/DRILL-4783
>             Project: Apache Drill
>          Issue Type: Bug
>            Reporter: Chunhui Shi
>            Assignee: Chunhui Shi
>            Priority: Critical
>
> Flatten failed to work on top of convert_from when the resultset is empty. 
> For a HBase table like this:
> 0: jdbc:drill:zk=localhost:5181> select convert_from(t.address.cities,'json') 
> from hbase.`/tmp/flattentest` t;
> +----------------------------------------------------------------------------------+
> |                                      EXPR$0                                 
>      |
> +----------------------------------------------------------------------------------+
> | {"list":[{"city":"SunnyVale"},{"city":"Palo Alto"},{"city":"Mountain 
> View"}]}    |
> | {"list":[{"city":"Seattle"},{"city":"Bellevue"},{"city":"Renton"}]}         
>      |
> | {"list":[{"city":"Minneapolis"},{"city":"Falcon Heights"},{"city":"San 
> Paul"}]}  |
> +----------------------------------------------------------------------------------+
> Flatten works when row_key is in (1,2,3)
> 0: jdbc:drill:zk=localhost:5181> select flatten(t1.json.list) from (select 
> convert_from(t.address.cities,'json') json from hbase.`/tmp/flattentest` t 
> where row_key=1) t1;
> +---------------------------+
> |          EXPR$0           |
> +---------------------------+
> | {"city":"SunnyVale"}      |
> | {"city":"Palo Alto"}      |
> | {"city":"Mountain View"}  |
> +---------------------------+
> But Flatten throws exception if the resultset is empty
> 0: jdbc:drill:zk=localhost:5181> select flatten(t1.json.list) from (select 
> convert_from(t.address.cities,'json') json from hbase.`/tmp/flattentest` t 
> where row_key=4) t1;
> Error: SYSTEM ERROR: ClassCastException: Cannot cast 
> org.apache.drill.exec.vector.NullableIntVector to 
> org.apache.drill.exec.vector.complex.RepeatedValueVector
> Fragment 0:0
> [Error Id: 07fd0cab-d1e6-4259-bfec-ad80f02d93a2 on atsqa4-127.qa.lab:31010] 
> (state=,code=0)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to