This is an automated email from the ASF dual-hosted git repository.
jackie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git
The following commit(s) were added to refs/heads/master by this push:
new 0d3e4a3cff Fix a typo in JsonExtractKeyTransformFunction (#9856)
0d3e4a3cff is described below
commit 0d3e4a3cff5e38c2656a5fac1ed7404e57654e9e
Author: Xiaotian (Jackie) Jiang <[email protected]>
AuthorDate: Wed Nov 23 16:07:40 2022 -0800
Fix a typo in JsonExtractKeyTransformFunction (#9856)
---
.../function/JsonExtractKeyTransformFunction.java | 2 +-
.../JsonExtractScalarTransformFunctionTest.java | 25 ++++++++++++----------
2 files changed, 15 insertions(+), 12 deletions(-)
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 55a8d21e15..eedadfc487 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
@@ -87,7 +87,7 @@ public class JsonExtractKeyTransformFunction extends
BaseTransformFunction {
public String[][] transformToStringValuesMV(ProjectionBlock projectionBlock)
{
int length = projectionBlock.getNumDocs();
- if (_stringValuesMV == null || _stringValuesSV.length < length) {
+ if (_stringValuesMV == null) {
_stringValuesMV = new String[length][];
}
diff --git
a/pinot-core/src/test/java/org/apache/pinot/core/operator/transform/function/JsonExtractScalarTransformFunctionTest.java
b/pinot-core/src/test/java/org/apache/pinot/core/operator/transform/function/JsonExtractScalarTransformFunctionTest.java
index c26238b532..12effbf8a5 100644
---
a/pinot-core/src/test/java/org/apache/pinot/core/operator/transform/function/JsonExtractScalarTransformFunctionTest.java
+++
b/pinot-core/src/test/java/org/apache/pinot/core/operator/transform/function/JsonExtractScalarTransformFunctionTest.java
@@ -365,17 +365,20 @@ public class JsonExtractScalarTransformFunctionTest
extends BaseTransformFunctio
TransformFunction transformFunction =
TransformFunctionFactory.get(expression, _dataSourceMap);
Assert.assertTrue(transformFunction instanceof
JsonExtractKeyTransformFunction);
Assert.assertEquals(transformFunction.getName(),
JsonExtractKeyTransformFunction.FUNCTION_NAME);
- String[][] keysResults =
transformFunction.transformToStringValuesMV(_projectionBlock);
- for (int i = 0; i < NUM_ROWS; i++) {
- List<String> keys = Arrays.asList(keysResults[i]);
- Assert.assertTrue(keys.contains(String.format("$['%s']",
INT_SV_COLUMN)));
- Assert.assertTrue(keys.contains(String.format("$['%s']",
LONG_SV_COLUMN)));
- Assert.assertTrue(keys.contains(String.format("$['%s']",
FLOAT_SV_COLUMN)));
- Assert.assertTrue(keys.contains(String.format("$['%s']",
DOUBLE_SV_COLUMN)));
- Assert.assertTrue(keys.contains(String.format("$['%s']",
BIG_DECIMAL_SV_COLUMN)));
- Assert.assertTrue(keys.contains(String.format("$['%s']",
STRING_SV_COLUMN)));
- Assert.assertTrue(keys.contains(String.format("$['%s']",
INT_MV_COLUMN)));
- Assert.assertTrue(keys.contains(String.format("$['%s']", TIME_COLUMN)));
+ // Transform the same block multiple times should give the same result
+ for (int i = 0; i < 10; i++) {
+ String[][] keysResults =
transformFunction.transformToStringValuesMV(_projectionBlock);
+ for (int j = 0; j < NUM_ROWS; j++) {
+ List<String> keys = Arrays.asList(keysResults[j]);
+ Assert.assertTrue(keys.contains(String.format("$['%s']",
INT_SV_COLUMN)));
+ Assert.assertTrue(keys.contains(String.format("$['%s']",
LONG_SV_COLUMN)));
+ Assert.assertTrue(keys.contains(String.format("$['%s']",
FLOAT_SV_COLUMN)));
+ Assert.assertTrue(keys.contains(String.format("$['%s']",
DOUBLE_SV_COLUMN)));
+ Assert.assertTrue(keys.contains(String.format("$['%s']",
BIG_DECIMAL_SV_COLUMN)));
+ Assert.assertTrue(keys.contains(String.format("$['%s']",
STRING_SV_COLUMN)));
+ Assert.assertTrue(keys.contains(String.format("$['%s']",
INT_MV_COLUMN)));
+ Assert.assertTrue(keys.contains(String.format("$['%s']",
TIME_COLUMN)));
+ }
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]