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 <jul...@dremio.com> 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
>

Reply via email to