Github user paul-rogers commented on a diff in the pull request: https://github.com/apache/drill/pull/1060#discussion_r158196570 --- Diff: exec/vector/src/main/codegen/templates/NullableValueVectors.java --- @@ -68,96 +85,441 @@ private final UInt1Vector bits = new UInt1Vector(bitsField, allocator); private final ${valuesName} values = new ${minor.class}Vector(field, allocator); + private final Mutator mutator = new MutatorImpl(); + private final Accessor accessor = new AccessorImpl(); + + <#if type.major == "VarLen" && minor.class == "VarChar"> + private final Mutator dupMutator = new DupValsOnlyMutator(); + /** Accessor instance for duplicate values vector */ + private final Accessor dupAccessor = new DupValsOnlyAccessor(); + /** Optimization for cases where all values are identical */ + private boolean duplicateValuesOnly; + /** logical number of values */ + private int logicalNumValues; + /** logical value capacity */ + private int logicalValueCapacity; --- End diff -- Explain this? If I have `"foo.csv"` as my value (for `filename`, say) what does it mean to have a "capacity"? Can't I have 64K "copies" of my one value?
---