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

Paul Rogers commented on DRILL-6048:
------------------------------------

Correct conversion from non-union to union type can be found in 
{{SchemaUtil.coerceVector()}}.

> ListVector is incomplete and broken, RepeatedListVector works
> -------------------------------------------------------------
>
>                 Key: DRILL-6048
>                 URL: https://issues.apache.org/jira/browse/DRILL-6048
>             Project: Apache Drill
>          Issue Type: Bug
>    Affects Versions: 1.10.0
>            Reporter: Paul Rogers
>
> Drill provides two kinds of "list vectors": {{ListVector}} and 
> {{RepeatedListVector}}. I attempted to use the {{ListVector}} to implement 
> lists in JSON. While some parts work, others are broken and JIRA tickets were 
> filed.
> Once things worked well enough to run a query, it turned out that the Project 
> operator failed. Digging into the cause, it appears that the {{ListVector}} 
> is incomplete and not used. Its implementation of {{makeTransferPair()}} was 
> clearly never tested. A list has contents, but when this method attempts to 
> create the contents of the target vector, it fails to create the list 
> contents.
> Elsewhere, we saw that the constructor did correctly create the vector, and 
> that the {{promoteToUnion()}} had holes. The sheer number of bugs leads to 
> the conclusion that this class is not, in fact, used or usable.
> Looking more carefully at the JSON and older writer code, it appears that the 
> ListVector was *not* used for JSON, and that JSON has the limitations of a 
> repeated vector (it cannot support lists with null elements.)
> This implies that the JSON reader itself is broken as it does not support 
> fully JSON semantics because it does not use the {{ListVector}} that was 
> intended for this purpose.
> So, the conclusion is that JSON uses:
> * Repeated vectors for single-dimensional arrays (without null support)
> * {{RepeatedListVector}} for two-dimensional arrays
> This triggers the question: what do we do for three-dimensional arrays?



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

Reply via email to