[ https://issues.apache.org/jira/browse/ARROW-1463?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16154502#comment-16154502 ]
Jacques Nadeau commented on ARROW-1463: --------------------------------------- Some initial thoughts on requirements: - Existing consumers should have minimal changes to continue to leverage the FieldVectors. - No performance loss on hot paths. - Minimize or remove use of code templates except where very simple/easy to maintain. - Rationalize object hiearchy - Continue to make engines that use code generation on top of vectors have predictable interfaces. - Better Javadocs on interfaces/base classes. > [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 > Assignee: SIDDHARTH TEOTIA > > 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)