You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by ri...@apache.org on 2022/02/03 19:20:57 UTC
[pinot] branch master updated: fix error handling and add covering tests in jsonPathArray tests (#8120)
This is an automated email from the ASF dual-hosted git repository.
richardstartin 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 4fbda59 fix error handling and add covering tests in jsonPathArray tests (#8120)
4fbda59 is described below
commit 4fbda5968fa1f51cb1a569101a9dea2b7682332e
Author: Richard Startin <ri...@startree.ai>
AuthorDate: Thu Feb 3 19:19:45 2022 +0000
fix error handling and add covering tests in jsonPathArray tests (#8120)
---
.../org/apache/pinot/common/function/scalar/JsonFunctions.java | 8 ++++++--
.../java/org/apache/pinot/common/function/JsonFunctionsTest.java | 3 +++
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/pinot-common/src/main/java/org/apache/pinot/common/function/scalar/JsonFunctions.java b/pinot-common/src/main/java/org/apache/pinot/common/function/scalar/JsonFunctions.java
index 59fcff4..c109241 100644
--- a/pinot-common/src/main/java/org/apache/pinot/common/function/scalar/JsonFunctions.java
+++ b/pinot-common/src/main/java/org/apache/pinot/common/function/scalar/JsonFunctions.java
@@ -105,8 +105,12 @@ public class JsonFunctions {
@ScalarFunction
public static Object[] jsonPathArrayDefaultEmpty(Object object, String jsonPath) {
- Object[] result = jsonPathArray(object, jsonPath);
- return result == null ? EMPTY : result;
+ try {
+ Object[] result = object == null ? null : jsonPathArray(object, jsonPath);
+ return result == null ? EMPTY : result;
+ } catch (Exception e) {
+ return EMPTY;
+ }
}
private static Object[] convertObjectToArray(Object arrayObject) {
diff --git a/pinot-common/src/test/java/org/apache/pinot/common/function/JsonFunctionsTest.java b/pinot-common/src/test/java/org/apache/pinot/common/function/JsonFunctionsTest.java
index 821364f..375e186 100644
--- a/pinot-common/src/test/java/org/apache/pinot/common/function/JsonFunctionsTest.java
+++ b/pinot-common/src/test/java/org/apache/pinot/common/function/JsonFunctionsTest.java
@@ -114,6 +114,9 @@ public class JsonFunctionsTest {
assertEquals(JsonFunctions.jsonPathArray(jsonString, "$.subjects[*].grade"), new String[]{"A", "B"});
assertEquals(JsonFunctions.jsonPathArray(jsonString, "$.subjects[*].homework_grades"),
new Object[]{Arrays.asList(80, 85, 90, 95, 100), Arrays.asList(60, 65, 70, 85, 90)});
+ assertEquals(JsonFunctions.jsonPathArrayDefaultEmpty(jsonString, null), new Object[0]);
+ assertEquals(JsonFunctions.jsonPathArrayDefaultEmpty(jsonString, "not json"), new Object[0]);
+ assertEquals(JsonFunctions.jsonPathArrayDefaultEmpty(jsonString, "$.subjects[*].missing"), new Object[0]);
}
@Test
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org