drill-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jacques Nadeau (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (DRILL-2147) ValueVector design refactoring umbrella
Date Mon, 23 Feb 2015 01:13:22 GMT

     [ https://issues.apache.org/jira/browse/DRILL-2147?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Jacques Nadeau updated DRILL-2147:
    Component/s: Execution - Data Types

> ValueVector design refactoring umbrella
> ---------------------------------------
>                 Key: DRILL-2147
>                 URL: https://issues.apache.org/jira/browse/DRILL-2147
>             Project: Apache Drill
>          Issue Type: Improvement
>          Components: Execution - Data Types
>            Reporter: Hanifi Gunes
>            Assignee: Hanifi Gunes
>             Fix For: 1.0.0
> The overall design of value vectors has become unclear and inconsistent with additions
from multiple contributors over the time. Also we need proper documentation for the abstractions
made for consistently communicating with developers. 
> There are many instances that indicate possible design issues.
> For instance, ValueVector implements Iterator<ValueVector>. This seems to assume
all vectors are somewhat hierarchical. This does not truly capture scalar vectors as they
have no child.
> Similarly, RepeatedVector has the following interface definition:
> {code:title=RepeatedVector}
> interface RepeatedVector {
>   RepeatedFixedWidthVector.RepeatedAccessor getAccessor()
> }
> {code}
> Yet, RepeatedFixedWidthVector implements RepeatedVector as follows
> {code:title=RepeatedFixedWidthVector}
> interface RepeatedFixedWidthVector extends ValueVector, RepeatedVector {
>   interface RepeatedAccessor extends Accessor {...}
>   interface RepeatedMutator extends Mutator {...}
> }
> {code}
> A super-type that is aware of its sub-type hints a need for re-design.
> Examples could be multiplied here: some method names are not self-explaining or wrongly
named or seems to be misplaced. There are couple of more places where design is not capturing
the nature of vectors such like missing abstractions for Repeated vs Composite vectors. We
should consider a design refactoring.
> This is an umbrella issue for tracking ValueVector design refactoring.

This message was sent by Atlassian JIRA

View raw message