aboutsummaryrefslogtreecommitdiff
path: root/exec/vector
diff options
context:
space:
mode:
authorPadma Penumarthy <ppenumar97@yahoo.com>2018-02-09 13:54:38 -0800
committerVitalii Diravka <vitalii.diravka@gmail.com>2018-02-16 20:31:15 +0000
commit20185c9bf0f4c94815fd2ab1eae1b98b3d4e4ff7 (patch)
tree632bc4a4ae47484ae68be243232e5ed6361ac600 /exec/vector
parent58e4cec9a913e381ef0e96b072c31e34085277b3 (diff)
DRILL-6123: Limit batch size for Merge Join based on memory
closes #1107
Diffstat (limited to 'exec/vector')
-rw-r--r--exec/vector/src/main/java/org/apache/drill/exec/vector/complex/AbstractMapVector.java4
-rw-r--r--exec/vector/src/main/java/org/apache/drill/exec/vector/complex/BaseRepeatedValueVector.java3
-rw-r--r--exec/vector/src/main/java/org/apache/drill/exec/vector/complex/ListVector.java4
-rw-r--r--exec/vector/src/main/java/org/apache/drill/exec/vector/complex/RepeatedListVector.java3
4 files changed, 14 insertions, 0 deletions
diff --git a/exec/vector/src/main/java/org/apache/drill/exec/vector/complex/AbstractMapVector.java b/exec/vector/src/main/java/org/apache/drill/exec/vector/complex/AbstractMapVector.java
index 5515b7ad2..36823970d 100644
--- a/exec/vector/src/main/java/org/apache/drill/exec/vector/complex/AbstractMapVector.java
+++ b/exec/vector/src/main/java/org/apache/drill/exec/vector/complex/AbstractMapVector.java
@@ -297,6 +297,10 @@ public abstract class AbstractMapVector extends AbstractContainerVector {
@Override
public int getPayloadByteCount(int valueCount) {
+ if (valueCount == 0) {
+ return 0;
+ }
+
int count = 0;
for (final ValueVector v : vectors.values()) {
diff --git a/exec/vector/src/main/java/org/apache/drill/exec/vector/complex/BaseRepeatedValueVector.java b/exec/vector/src/main/java/org/apache/drill/exec/vector/complex/BaseRepeatedValueVector.java
index 4b0c1b57c..02243c8ee 100644
--- a/exec/vector/src/main/java/org/apache/drill/exec/vector/complex/BaseRepeatedValueVector.java
+++ b/exec/vector/src/main/java/org/apache/drill/exec/vector/complex/BaseRepeatedValueVector.java
@@ -220,6 +220,9 @@ public abstract class BaseRepeatedValueVector extends BaseValueVector implements
@Override
public int getPayloadByteCount(int valueCount) {
+ if (valueCount == 0) {
+ return 0;
+ }
int entryCount = offsets.getAccessor().get(valueCount);
return offsets.getPayloadByteCount(valueCount) + vector.getPayloadByteCount(entryCount);
}
diff --git a/exec/vector/src/main/java/org/apache/drill/exec/vector/complex/ListVector.java b/exec/vector/src/main/java/org/apache/drill/exec/vector/complex/ListVector.java
index 7de5ce66c..45d91606a 100644
--- a/exec/vector/src/main/java/org/apache/drill/exec/vector/complex/ListVector.java
+++ b/exec/vector/src/main/java/org/apache/drill/exec/vector/complex/ListVector.java
@@ -333,6 +333,10 @@ public class ListVector extends BaseRepeatedValueVector {
@Override
public int getPayloadByteCount(int valueCount) {
+ if (valueCount == 0) {
+ return 0;
+ }
+
return offsets.getPayloadByteCount(valueCount) + bits.getPayloadByteCount(valueCount) +
super.getPayloadByteCount(valueCount);
}
diff --git a/exec/vector/src/main/java/org/apache/drill/exec/vector/complex/RepeatedListVector.java b/exec/vector/src/main/java/org/apache/drill/exec/vector/complex/RepeatedListVector.java
index 644241758..4a7eda1d1 100644
--- a/exec/vector/src/main/java/org/apache/drill/exec/vector/complex/RepeatedListVector.java
+++ b/exec/vector/src/main/java/org/apache/drill/exec/vector/complex/RepeatedListVector.java
@@ -442,6 +442,9 @@ public class RepeatedListVector extends AbstractContainerVector
@Override
public int getPayloadByteCount(int valueCount) {
+ if (valueCount == 0) {
+ return 0;
+ }
return delegate.getPayloadByteCount(valueCount);
}