Clarify nested list handling and errors
refset opened this issue · comments
Inserting complex lists (clojure code) gives an unexpected error
{:xt/id 1 :data '(())}
1. Unhandled java.lang.IllegalArgumentException
Lists have one child Field. Found: none
Preconditions.java: 205 org.apache.arrow.util.Preconditions/checkArgument
ListVector.java: 116 org.apache.arrow.vector.complex.ListVector/initializeChildrenFromFields
Field.java: 111 org.apache.arrow.vector.types.pojo.Field/createVector
not just empty lists to be clear, {:xt/id 1 :data '((1))}
gives the same error
{:xt/id 1 :data [[2] [1]]}
throws but {:xt/id 1 :data [2 [1]]}
does not
@jarohen Currently when we are promoting the vectors we are only passing FieldType
to update/promote any children. The problem is that list Field
s (and by extension sets) need a child to initialize. Should we try to use Field
instead? Just initializing with something canonical (like null list) might result in unwanted DUV's.