diff options
author | Gautam Parai <gparai@maprtech.com> | 2018-04-03 19:18:31 -0700 |
---|---|---|
committer | Sorabh Hamirwasia <sorabh@apache.org> | 2018-06-07 08:52:40 -0700 |
commit | a27a1047b16621f6c3c6c181c97f8713231f6c6c (patch) | |
tree | 943618cbfb7525c05cf65a9641138347cd0d351a /exec/vector | |
parent | cd219ff2bcd0867c2fb4aa95d171cb3882d1245c (diff) |
DRILL-6375 : Support for ANY_VALUE aggregate function
closes #1256
Diffstat (limited to 'exec/vector')
4 files changed, 12 insertions, 5 deletions
diff --git a/exec/vector/src/main/codegen/templates/RepeatedValueVectors.java b/exec/vector/src/main/codegen/templates/RepeatedValueVectors.java index 4e6edb580..037332f07 100644 --- a/exec/vector/src/main/codegen/templates/RepeatedValueVectors.java +++ b/exec/vector/src/main/codegen/templates/RepeatedValueVectors.java @@ -307,6 +307,7 @@ public final class Repeated${minor.class}Vector extends BaseRepeatedValueVector holder.start = offsets.getAccessor().get(index); holder.end = offsets.getAccessor().get(index+1); holder.vector = values; + holder.reader = reader; } public void get(int index, int positionIndex, ${minor.class}Holder holder) { diff --git a/exec/vector/src/main/codegen/templates/ValueHolders.java b/exec/vector/src/main/codegen/templates/ValueHolders.java index 7635895be..8562d1b6b 100644 --- a/exec/vector/src/main/codegen/templates/ValueHolders.java +++ b/exec/vector/src/main/codegen/templates/ValueHolders.java @@ -49,16 +49,17 @@ public final class ${className} implements ValueHolder { /** The first index (inclusive) into the Vector. **/ public int start; - + /** The last index (exclusive) into the Vector. **/ public int end; - + /** The Vector holding the actual values. **/ public ${minor.class}Vector vector; - - <#else> + + public FieldReader reader; +<#else> public static final int WIDTH = ${type.width}; - + <#if mode.name == "Optional">public int isSet;</#if> <#assign fields = minor.fields!type.fields /> <#list fields as field> diff --git a/exec/vector/src/main/java/org/apache/drill/exec/expr/holders/RepeatedListHolder.java b/exec/vector/src/main/java/org/apache/drill/exec/expr/holders/RepeatedListHolder.java index 52f590ac2..ce7e34dfe 100644 --- a/exec/vector/src/main/java/org/apache/drill/exec/expr/holders/RepeatedListHolder.java +++ b/exec/vector/src/main/java/org/apache/drill/exec/expr/holders/RepeatedListHolder.java @@ -20,6 +20,7 @@ package org.apache.drill.exec.expr.holders; import org.apache.drill.common.types.TypeProtos; import org.apache.drill.common.types.Types; import org.apache.drill.exec.vector.complex.ListVector; +import org.apache.drill.exec.vector.complex.reader.FieldReader; public final class RepeatedListHolder implements ValueHolder{ @@ -36,4 +37,5 @@ public final class RepeatedListHolder implements ValueHolder{ /** The Vector holding the actual values. **/ public ListVector vector; + public FieldReader reader; } diff --git a/exec/vector/src/main/java/org/apache/drill/exec/expr/holders/RepeatedMapHolder.java b/exec/vector/src/main/java/org/apache/drill/exec/expr/holders/RepeatedMapHolder.java index f8acaebee..516d1358b 100644 --- a/exec/vector/src/main/java/org/apache/drill/exec/expr/holders/RepeatedMapHolder.java +++ b/exec/vector/src/main/java/org/apache/drill/exec/expr/holders/RepeatedMapHolder.java @@ -20,6 +20,7 @@ package org.apache.drill.exec.expr.holders; import org.apache.drill.common.types.TypeProtos; import org.apache.drill.common.types.Types; import org.apache.drill.exec.vector.complex.MapVector; +import org.apache.drill.exec.vector.complex.reader.FieldReader; public final class RepeatedMapHolder implements ValueHolder{ @@ -38,4 +39,6 @@ public final class RepeatedMapHolder implements ValueHolder{ /** The Vector holding the actual values. **/ public MapVector vector; + public FieldReader reader; + } |