You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by kh...@apache.org on 2022/03/26 14:00:13 UTC
[pinot] 02/02: Reuse result arrays if input length is less than existing array length
This is an automated email from the ASF dual-hosted git repository.
kharekartik pushed a commit to branch optimise_memory
in repository https://gitbox.apache.org/repos/asf/pinot.git
commit 6a98978f85a103820c29da80da9de826eba7cbf5
Author: KKcorps <kh...@gmail.com>
AuthorDate: Sat Mar 26 19:27:44 2022 +0530
Reuse result arrays if input length is less than existing array length
---
.../function/AdditionTransformFunction.java | 2 +-
.../function/ArrayAverageTransformFunction.java | 2 +-
.../function/ArrayLengthTransformFunction.java | 2 +-
.../function/ArrayMaxTransformFunction.java | 10 +++++-----
.../function/ArrayMinTransformFunction.java | 10 +++++-----
.../function/ArraySumTransformFunction.java | 2 +-
.../transform/function/CastTransformFunction.java | 12 ++++++------
.../DateTimeConversionTransformFunction.java | 4 ++--
.../function/DivisionTransformFunction.java | 2 +-
.../transform/function/InIdSetTransformFunction.java | 2 +-
.../function/JsonExtractKeyTransformFunction.java | 2 +-
.../function/LogicalOperatorTransformFunction.java | 2 +-
.../function/MapValueTransformFunction.java | 2 +-
.../transform/function/ModuloTransformFunction.java | 2 +-
.../function/MultiplicationTransformFunction.java | 2 +-
.../function/ScalarTransformFunctionWrapper.java | 20 ++++++++++----------
.../function/SingleParamMathTransformFunction.java | 2 +-
.../function/SubtractionTransformFunction.java | 2 +-
.../function/TimeConversionTransformFunction.java | 2 +-
19 files changed, 42 insertions(+), 42 deletions(-)
diff --git a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/AdditionTransformFunction.java b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/AdditionTransformFunction.java
index 43a5da3..5ffd65a 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/AdditionTransformFunction.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/AdditionTransformFunction.java
@@ -68,7 +68,7 @@ public class AdditionTransformFunction extends BaseTransformFunction {
public double[] transformToDoubleValuesSV(ProjectionBlock projectionBlock) {
int length = projectionBlock.getNumDocs();
- if (_sums == null) {
+ if (_sums == null || _sums.length < length) {
_sums = new double[length];
}
diff --git a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/ArrayAverageTransformFunction.java b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/ArrayAverageTransformFunction.java
index e712656..8c389dc 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/ArrayAverageTransformFunction.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/ArrayAverageTransformFunction.java
@@ -73,7 +73,7 @@ public class ArrayAverageTransformFunction extends BaseTransformFunction {
public double[] transformToDoubleValuesSV(ProjectionBlock projectionBlock) {
int numDocs = projectionBlock.getNumDocs();
- if (_results == null) {
+ if (_results == null || _results.length < numDocs) {
_results = new double[numDocs];
}
diff --git a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/ArrayLengthTransformFunction.java b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/ArrayLengthTransformFunction.java
index 9285337..21fc21f 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/ArrayLengthTransformFunction.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/ArrayLengthTransformFunction.java
@@ -70,7 +70,7 @@ public class ArrayLengthTransformFunction extends BaseTransformFunction {
public int[] transformToIntValuesSV(ProjectionBlock projectionBlock) {
int numDocs = projectionBlock.getNumDocs();
- if (_results == null) {
+ if (_results == null || _results.length < numDocs) {
_results = new int[numDocs];
}
diff --git a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/ArrayMaxTransformFunction.java b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/ArrayMaxTransformFunction.java
index b93aebc..46d0fea 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/ArrayMaxTransformFunction.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/ArrayMaxTransformFunction.java
@@ -82,7 +82,7 @@ public class ArrayMaxTransformFunction extends BaseTransformFunction {
int length = projectionBlock.getNumDocs();
- if (_intValuesSV == null) {
+ if (_intValuesSV == null || _intValuesSV.length < length) {
_intValuesSV = new int[length];
}
int[][] intValuesMV = _argument.transformToIntValuesMV(projectionBlock);
@@ -104,7 +104,7 @@ public class ArrayMaxTransformFunction extends BaseTransformFunction {
int length = projectionBlock.getNumDocs();
- if (_longValuesSV == null) {
+ if (_longValuesSV == null || _longValuesSV.length < length) {
_longValuesSV = new long[length];
}
long[][] longValuesMV = _argument.transformToLongValuesMV(projectionBlock);
@@ -126,7 +126,7 @@ public class ArrayMaxTransformFunction extends BaseTransformFunction {
int length = projectionBlock.getNumDocs();
- if (_floatValuesSV == null) {
+ if (_floatValuesSV == null || _floatValuesSV.length < length) {
_floatValuesSV = new float[length];
}
float[][] floatValuesMV = _argument.transformToFloatValuesMV(projectionBlock);
@@ -148,7 +148,7 @@ public class ArrayMaxTransformFunction extends BaseTransformFunction {
int length = projectionBlock.getNumDocs();
- if (_doubleValuesSV == null) {
+ if (_doubleValuesSV == null || _doubleValuesSV.length < length) {
_doubleValuesSV = new double[length];
}
double[][] doubleValuesMV = _argument.transformToDoubleValuesMV(projectionBlock);
@@ -170,7 +170,7 @@ public class ArrayMaxTransformFunction extends BaseTransformFunction {
int length = projectionBlock.getNumDocs();
- if (_stringValuesSV == null) {
+ if (_stringValuesSV == null || _stringValuesSV.length < length) {
_stringValuesSV = new String[length];
}
String[][] stringValuesMV = _argument.transformToStringValuesMV(projectionBlock);
diff --git a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/ArrayMinTransformFunction.java b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/ArrayMinTransformFunction.java
index f2be2f9..bc3a95b 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/ArrayMinTransformFunction.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/ArrayMinTransformFunction.java
@@ -82,7 +82,7 @@ public class ArrayMinTransformFunction extends BaseTransformFunction {
int length = projectionBlock.getNumDocs();
- if (_intValuesSV == null) {
+ if (_intValuesSV == null || _intValuesSV.length < length) {
_intValuesSV = new int[length];
}
int[][] intValuesMV = _argument.transformToIntValuesMV(projectionBlock);
@@ -104,7 +104,7 @@ public class ArrayMinTransformFunction extends BaseTransformFunction {
int length = projectionBlock.getNumDocs();
- if (_longValuesSV == null) {
+ if (_longValuesSV == null || _longValuesSV.length < length) {
_longValuesSV = new long[length];
}
@@ -127,7 +127,7 @@ public class ArrayMinTransformFunction extends BaseTransformFunction {
int length = projectionBlock.getNumDocs();
- if (_floatValuesSV == null) {
+ if (_floatValuesSV == null || _floatValuesSV.length < length) {
_floatValuesSV = new float[length];
}
@@ -150,7 +150,7 @@ public class ArrayMinTransformFunction extends BaseTransformFunction {
int length = projectionBlock.getNumDocs();
- if (_doubleValuesSV == null) {
+ if (_doubleValuesSV == null || _doubleValuesSV.length < length) {
_doubleValuesSV = new double[length];
}
@@ -173,7 +173,7 @@ public class ArrayMinTransformFunction extends BaseTransformFunction {
int length = projectionBlock.getNumDocs();
- if (_stringValuesSV == null) {
+ if (_stringValuesSV == null || _stringValuesSV.length < length) {
_stringValuesSV = new String[length];
}
diff --git a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/ArraySumTransformFunction.java b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/ArraySumTransformFunction.java
index 85c86ce..92804ee 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/ArraySumTransformFunction.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/ArraySumTransformFunction.java
@@ -73,7 +73,7 @@ public class ArraySumTransformFunction extends BaseTransformFunction {
public double[] transformToDoubleValuesSV(ProjectionBlock projectionBlock) {
int length = projectionBlock.getNumDocs();
- if (_results == null) {
+ if (_results == null || _results.length < length) {
_results = new double[length];
}
diff --git a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/CastTransformFunction.java b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/CastTransformFunction.java
index eb361ca..94dfbf3 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/CastTransformFunction.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/CastTransformFunction.java
@@ -101,7 +101,7 @@ public class CastTransformFunction extends BaseTransformFunction {
} else {
int numDocs = projectionBlock.getNumDocs();
- if (_intValuesSV == null) {
+ if (_intValuesSV == null || _intValuesSV.length < numDocs) {
_intValuesSV = new int[numDocs];
}
switch (resultStoredType) {
@@ -137,7 +137,7 @@ public class CastTransformFunction extends BaseTransformFunction {
} else {
int numDocs = projectionBlock.getNumDocs();
- if (_longValuesSV == null) {
+ if (_longValuesSV == null || _longValuesSV.length < numDocs) {
_longValuesSV = new long[numDocs];
}
switch (resultStoredType) {
@@ -173,7 +173,7 @@ public class CastTransformFunction extends BaseTransformFunction {
} else {
int numDocs = projectionBlock.getNumDocs();
- if (_floatValuesSV == null) {
+ if (_floatValuesSV == null || _floatValuesSV.length < numDocs) {
_floatValuesSV = new float[numDocs];
}
switch (resultStoredType) {
@@ -209,7 +209,7 @@ public class CastTransformFunction extends BaseTransformFunction {
} else {
int numDocs = projectionBlock.getNumDocs();
- if (_doubleValuesSV == null) {
+ if (_doubleValuesSV == null || _doubleValuesSV.length < numDocs) {
_doubleValuesSV = new double[numDocs];
}
switch (resultStoredType) {
@@ -246,7 +246,7 @@ public class CastTransformFunction extends BaseTransformFunction {
// Specialize BOOlEAN and TIMESTAMP when casting to STRING
DataType inputDataType = _transformFunction.getResultMetadata().getDataType();
if (inputDataType.getStoredType() != inputDataType) {
- if (_stringValuesSV == null) {
+ if (_stringValuesSV == null || _stringValuesSV.length < numDocs) {
_stringValuesSV = new String[numDocs];
}
if (inputDataType == DataType.BOOLEAN) {
@@ -266,7 +266,7 @@ public class CastTransformFunction extends BaseTransformFunction {
return _transformFunction.transformToStringValuesSV(projectionBlock);
}
} else {
- if (_stringValuesSV == null) {
+ if (_stringValuesSV == null || _stringValuesSV.length < numDocs) {
_stringValuesSV = new String[numDocs];
}
switch (resultDataType) {
diff --git a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/DateTimeConversionTransformFunction.java b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/DateTimeConversionTransformFunction.java
index d895387..e40435a 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/DateTimeConversionTransformFunction.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/DateTimeConversionTransformFunction.java
@@ -129,7 +129,7 @@ public class DateTimeConversionTransformFunction extends BaseTransformFunction {
if (_resultMetadata == LONG_SV_NO_DICTIONARY_METADATA) {
int length = projectionBlock.getNumDocs();
- if (_longOutputTimes == null) {
+ if (_longOutputTimes == null || _longOutputTimes.length < length) {
_longOutputTimes = new long[length];
}
@@ -153,7 +153,7 @@ public class DateTimeConversionTransformFunction extends BaseTransformFunction {
if (_resultMetadata == STRING_SV_NO_DICTIONARY_METADATA) {
int length = projectionBlock.getNumDocs();
- if (_stringOutputTimes == null) {
+ if (_stringOutputTimes == null || _stringOutputTimes.length < length) {
_stringOutputTimes = new String[length];
}
diff --git a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/DivisionTransformFunction.java b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/DivisionTransformFunction.java
index c04cb5d..eb40612 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/DivisionTransformFunction.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/DivisionTransformFunction.java
@@ -79,7 +79,7 @@ public class DivisionTransformFunction extends BaseTransformFunction {
public double[] transformToDoubleValuesSV(ProjectionBlock projectionBlock) {
int length = projectionBlock.getNumDocs();
- if (_quotients == null) {
+ if (_quotients == null || _quotients.length < length) {
_quotients = new double[length];
}
diff --git a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/InIdSetTransformFunction.java b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/InIdSetTransformFunction.java
index 9938c65..cc44d9f 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/InIdSetTransformFunction.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/InIdSetTransformFunction.java
@@ -77,7 +77,7 @@ public class InIdSetTransformFunction extends BaseTransformFunction {
public int[] transformToIntValuesSV(ProjectionBlock projectionBlock) {
int length = projectionBlock.getNumDocs();
- if (_results == null) {
+ if (_results == null || _results.length < length) {
_results = new int[length];
}
diff --git a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/JsonExtractKeyTransformFunction.java b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/JsonExtractKeyTransformFunction.java
index df00077..0463788 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/JsonExtractKeyTransformFunction.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/JsonExtractKeyTransformFunction.java
@@ -88,7 +88,7 @@ public class JsonExtractKeyTransformFunction extends BaseTransformFunction {
public String[][] transformToStringValuesMV(ProjectionBlock projectionBlock) {
int numDocs = projectionBlock.getNumDocs();
- if (_stringValuesMV == null) {
+ if (_stringValuesMV == null || _stringValuesSV.length < numDocs) {
_stringValuesMV = new String[numDocs][];
}
diff --git a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/LogicalOperatorTransformFunction.java b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/LogicalOperatorTransformFunction.java
index 7818245..a6496da 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/LogicalOperatorTransformFunction.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/LogicalOperatorTransformFunction.java
@@ -62,7 +62,7 @@ public abstract class LogicalOperatorTransformFunction extends BaseTransformFunc
public int[] transformToIntValuesSV(ProjectionBlock projectionBlock) {
int numDocs = projectionBlock.getNumDocs();
- if (_results == null) {
+ if (_results == null || _results.length < numDocs) {
_results = new int[numDocs];
}
ArrayCopyUtils.copy(_arguments.get(0).transformToIntValuesSV(projectionBlock), _results, numDocs);
diff --git a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/MapValueTransformFunction.java b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/MapValueTransformFunction.java
index bdb6b39..45d14a4 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/MapValueTransformFunction.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/MapValueTransformFunction.java
@@ -99,7 +99,7 @@ public class MapValueTransformFunction extends BaseTransformFunction {
public int[] transformToDictIdsSV(ProjectionBlock projectionBlock) {
int length = projectionBlock.getNumDocs();
- if (_dictIds == null) {
+ if (_dictIds == null || _dictIds.length < length) {
_dictIds = new int[length];
}
diff --git a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/ModuloTransformFunction.java b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/ModuloTransformFunction.java
index 68cb165..ea1c3e1 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/ModuloTransformFunction.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/ModuloTransformFunction.java
@@ -79,7 +79,7 @@ public class ModuloTransformFunction extends BaseTransformFunction {
public double[] transformToDoubleValuesSV(ProjectionBlock projectionBlock) {
int length = projectionBlock.getNumDocs();
- if (_modulos == null) {
+ if (_modulos == null || _modulos.length < length) {
_modulos = new double[length];
}
diff --git a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/MultiplicationTransformFunction.java b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/MultiplicationTransformFunction.java
index df24e8c..73db62d 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/MultiplicationTransformFunction.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/MultiplicationTransformFunction.java
@@ -68,7 +68,7 @@ public class MultiplicationTransformFunction extends BaseTransformFunction {
public double[] transformToDoubleValuesSV(ProjectionBlock projectionBlock) {
int length = projectionBlock.getNumDocs();
- if (_products == null) {
+ if (_products == null || _products.length < length) {
_products = new double[length];
}
diff --git a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/ScalarTransformFunctionWrapper.java b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/ScalarTransformFunctionWrapper.java
index 518776d..74e1fa3 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/ScalarTransformFunctionWrapper.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/ScalarTransformFunctionWrapper.java
@@ -127,7 +127,7 @@ public class ScalarTransformFunctionWrapper extends BaseTransformFunction {
}
int length = projectionBlock.getNumDocs();
- if (_intResults == null) {
+ if (_intResults == null || _intResults.length < length) {
_intResults = new int[length];
}
getNonLiteralValues(projectionBlock);
@@ -147,7 +147,7 @@ public class ScalarTransformFunctionWrapper extends BaseTransformFunction {
}
int length = projectionBlock.getNumDocs();
- if (_longResults == null) {
+ if (_longResults == null || _longResults.length < length) {
_longResults = new long[length];
}
getNonLiteralValues(projectionBlock);
@@ -167,7 +167,7 @@ public class ScalarTransformFunctionWrapper extends BaseTransformFunction {
}
int length = projectionBlock.getNumDocs();
- if (_floatResults == null) {
+ if (_floatResults == null || _floatResults.length < length) {
_floatResults = new float[length];
}
getNonLiteralValues(projectionBlock);
@@ -187,7 +187,7 @@ public class ScalarTransformFunctionWrapper extends BaseTransformFunction {
}
int length = projectionBlock.getNumDocs();
- if (_doubleResults == null) {
+ if (_doubleResults == null || _doubleResults.length < length) {
_doubleResults = new double[length];
}
getNonLiteralValues(projectionBlock);
@@ -207,7 +207,7 @@ public class ScalarTransformFunctionWrapper extends BaseTransformFunction {
}
int length = projectionBlock.getNumDocs();
- if (_stringResults == null) {
+ if (_stringResults == null || _stringResults.length < length) {
_stringResults = new String[length];
}
getNonLiteralValues(projectionBlock);
@@ -229,7 +229,7 @@ public class ScalarTransformFunctionWrapper extends BaseTransformFunction {
}
int length = projectionBlock.getNumDocs();
- if (_bytesResults == null) {
+ if (_bytesResults == null || _bytesResults.length < length) {
_bytesResults = new byte[length][];
}
getNonLiteralValues(projectionBlock);
@@ -269,7 +269,7 @@ public class ScalarTransformFunctionWrapper extends BaseTransformFunction {
}
int length = projectionBlock.getNumDocs();
- if (_longMVResults == null) {
+ if (_longMVResults == null || _longMVResults.length < length) {
_longMVResults = new long[length][];
}
getNonLiteralValues(projectionBlock);
@@ -289,7 +289,7 @@ public class ScalarTransformFunctionWrapper extends BaseTransformFunction {
}
int length = projectionBlock.getNumDocs();
- if (_floatMVResults == null) {
+ if (_floatMVResults == null || _floatMVResults.length < length) {
_floatMVResults = new float[length][];
}
getNonLiteralValues(projectionBlock);
@@ -309,7 +309,7 @@ public class ScalarTransformFunctionWrapper extends BaseTransformFunction {
}
int length = projectionBlock.getNumDocs();
- if (_doubleMVResults == null) {
+ if (_doubleMVResults == null || _doubleMVResults.length < length) {
_doubleMVResults = new double[length][];
}
getNonLiteralValues(projectionBlock);
@@ -329,7 +329,7 @@ public class ScalarTransformFunctionWrapper extends BaseTransformFunction {
}
int length = projectionBlock.getNumDocs();
- if (_stringMVResults == null) {
+ if (_stringMVResults == null || _stringMVResults.length < length) {
_stringMVResults = new String[length][];
}
getNonLiteralValues(projectionBlock);
diff --git a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/SingleParamMathTransformFunction.java b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/SingleParamMathTransformFunction.java
index e667078..d4d3408 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/SingleParamMathTransformFunction.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/SingleParamMathTransformFunction.java
@@ -56,7 +56,7 @@ public abstract class SingleParamMathTransformFunction extends BaseTransformFunc
public double[] transformToDoubleValuesSV(ProjectionBlock projectionBlock) {
int length = projectionBlock.getNumDocs();
- if (_doubleValuesSV == null) {
+ if (_doubleValuesSV == null || _doubleValuesMV.length < length) {
_doubleValuesSV = new double[length];
}
diff --git a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/SubtractionTransformFunction.java b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/SubtractionTransformFunction.java
index f1a9540..383eb5d 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/SubtractionTransformFunction.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/SubtractionTransformFunction.java
@@ -79,7 +79,7 @@ public class SubtractionTransformFunction extends BaseTransformFunction {
public double[] transformToDoubleValuesSV(ProjectionBlock projectionBlock) {
int length = projectionBlock.getNumDocs();
- if (_differences == null) {
+ if (_differences == null || _differences.length < length) {
_differences = new double[length];
}
diff --git a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/TimeConversionTransformFunction.java b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/TimeConversionTransformFunction.java
index a32546d..94a2f6e 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/TimeConversionTransformFunction.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/TimeConversionTransformFunction.java
@@ -70,7 +70,7 @@ public class TimeConversionTransformFunction extends BaseTransformFunction {
public long[] transformToLongValuesSV(ProjectionBlock projectionBlock) {
int length = projectionBlock.getNumDocs();
- if (_outputTimes == null) {
+ if (_outputTimes == null || _outputTimes.length < length) {
_outputTimes = new long[length];
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org