You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Paul Rogers (JIRA)" <ji...@apache.org> on 2017/12/21 20:20:00 UTC
[jira] [Commented] (DRILL-6048) ListVector is incomplete and
broken, RepeatedListVector works
[ 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)