Github user paul-rogers commented on a diff in the pull request: https://github.com/apache/drill/pull/1060#discussion_r158197926 --- Diff: exec/vector/src/main/codegen/templates/NullableValueVectors.java --- @@ -296,26 +655,75 @@ public void transferTo(Nullable${minor.class}Vector target){ } public void splitAndTransferTo(int startIndex, int length, Nullable${minor.class}Vector target) { + <#if type.major == "VarLen" && minor.class == "VarChar"> + if (isDuplicateValsOnly()) { + if (!target.isDuplicateValsOnly() || startIndex > 0) { + throw new UnsupportedOperationException(); + } + target.logicalNumValues = logicalNumValues; + target.logicalValueCapacity = logicalValueCapacity; + startIndex = 0; + length = 1; + } + </#if> bits.splitAndTransferTo(startIndex, length, target.bits); values.splitAndTransferTo(startIndex, length, target.values); <#if type.major == "VarLen"> target.mutator.lastSet = length - 1; </#if> } + public ${minor.class}Vector convertToRequiredVector(){ --- End diff -- Is this semantically valid?
---