Jacques Nadeau created ARROW-1463:
-------------------------------------

             Summary: [JAVA] Restructure ValueVector hierarchy to minimize 
compile-time generated code
                 Key: ARROW-1463
                 URL: https://issues.apache.org/jira/browse/ARROW-1463
             Project: Apache Arrow
          Issue Type: Improvement
            Reporter: Jacques Nadeau


The templates used in the java package are very high mainteance and the if 
conditions are hard to track. As started in the discussion here: 
https://github.com/apache/arrow/pull/1012, I'd like to propose that we modify 
the structure of the internal value vectors and code generation dynamics.

Create new abstract base vectors:

BaseFixedVector
BaseVariableVector
BaseNullableVector

For each of these, implement all the basic functionality of a vector without 
using templating.

Evaluate whether to use code generation to generate specific specializations of 
this functionality for each type where needed for performance purposes 
(probably constrained to mutator and accessor set/get methods). Giant and 
complex if conditions in the templates are actually worse from my perspective 
than a small amount of hand written duplicated code since templates are much 
harder to work with. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to