Uploaded image for project: 'Apache Arrow'
  1. Apache Arrow
  2. ARROW-1463

[JAVA] Restructure ValueVector hierarchy to minimize compile-time generated code

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.9.0
    • Component/s: Java

      Description

      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.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                siddteotia Siddharth Teotia
                Reporter:
                jnadeau Jacques Nadeau
              • Votes:
                0 Vote for this issue
                Watchers:
                11 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: