aboutsummaryrefslogtreecommitdiff
path: root/exec/vector
diff options
context:
space:
mode:
authorGautam Parai <gparai@maprtech.com>2018-04-03 19:18:31 -0700
committerSorabh Hamirwasia <sorabh@apache.org>2018-06-07 08:52:40 -0700
commita27a1047b16621f6c3c6c181c97f8713231f6c6c (patch)
tree943618cbfb7525c05cf65a9641138347cd0d351a /exec/vector
parentcd219ff2bcd0867c2fb4aa95d171cb3882d1245c (diff)
DRILL-6375 : Support for ANY_VALUE aggregate function
closes #1256
Diffstat (limited to 'exec/vector')
-rw-r--r--exec/vector/src/main/codegen/templates/RepeatedValueVectors.java1
-rw-r--r--exec/vector/src/main/codegen/templates/ValueHolders.java11
-rw-r--r--exec/vector/src/main/java/org/apache/drill/exec/expr/holders/RepeatedListHolder.java2
-rw-r--r--exec/vector/src/main/java/org/apache/drill/exec/expr/holders/RepeatedMapHolder.java3
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;
+
}