In the work I did for the Union types, (see PR https://github.com/apache/drill/pull/207), I actually went down that exact path. In that branch, if Union type is enable, any vectors created through the ComplexWriter interface will not create any Repeated type vectors.
On Mon, Oct 19, 2015 at 2:29 PM, Hanifi Gunes <[email protected]> wrote: > If I am not wrong currently we use > i) RepeatedInt for single > ii) RepeatedList of RepeatedInt for double > iii) RepeatedList of RepeatedList of RepeatedInt for triple arrays. > > I think we should refactor vector design in such way that we will only have > a ListVector eliminating the need for all Repeated* vectors as well as code > generation for those so that we would represent all these above types via > i) ListVector of IntVector > ii) ListVector of ListVector of IntVector > iii) ListVector of ListVector of ListVector of IntVector > > The idea here is to favor aggregation over inheritance, which is less > redundant and more powerful. Thinking about it, we do not even need to > maintain RepeatedMapVector as it will simply be ListVector of MapVector in > the new dialect. > > -Hanifi > > ps: As an fyi, even though it does not include a JIRA for abstracting out a > ListVector which I discussed over the past months with many devs, [1] has a > list of items in place for refactoring vectors (and possibly the type > system). > > 1: https://issues.apache.org/jira/browse/DRILL-2147 > > > On Mon, Oct 19, 2015 at 1:28 PM, Julien Le Dem <[email protected]> wrote: > > > I'm looking at the type system in Drill and I have the following > question: > > Why is there a LIST type and a REPEATED field? > > It sounds like there should only one of those 2 concepts. > > Could someone describe how the following are represented? > > - one dimensional list of int > > - 2 dimensional list of ints > > - 3 dimensional list of ints > > Thank you > > > > -- > > Julien > > >
