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 1f93870ad3 Change json_format to return java null when java null is 
received (#11673)
1f93870ad3 is described below

commit 1f93870ad3f80363a480f166393f0de2bc9af125
Author: Gonzalo Ortiz Jaureguizar <gor...@users.noreply.github.com>
AuthorDate: Wed Sep 27 19:23:09 2023 +0200

    Change json_format to return java null when java null is received (#11673)
---
 .../pinot/common/function/scalar/JsonFunctions.java       |  2 +-
 .../pinot/core/data/function/JsonFunctionsTest.java       | 15 +++++++++++++++
 .../org/apache/pinot/spi/annotations/ScalarFunction.java  | 11 ++++++++---
 3 files changed, 24 insertions(+), 4 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 fa50cc6c48..5effbe3e54 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
@@ -76,7 +76,7 @@ public class JsonFunctions {
   /**
    * Convert object to Json String
    */
-  @ScalarFunction(nullableParameters = true)
+  @ScalarFunction
   public static String jsonFormat(Object object)
       throws JsonProcessingException {
     return JsonUtils.objectToString(object);
diff --git 
a/pinot-core/src/test/java/org/apache/pinot/core/data/function/JsonFunctionsTest.java
 
b/pinot-core/src/test/java/org/apache/pinot/core/data/function/JsonFunctionsTest.java
index fa9f6dfced..6aa8bcbe3d 100644
--- 
a/pinot-core/src/test/java/org/apache/pinot/core/data/function/JsonFunctionsTest.java
+++ 
b/pinot-core/src/test/java/org/apache/pinot/core/data/function/JsonFunctionsTest.java
@@ -137,4 +137,19 @@ public class JsonFunctionsTest {
     });
     return inputs.toArray(new Object[0][]);
   }
+
+  @Test(description = "jsonFormat(Java null) should return Java null")
+  public void jsonFormatWithJavaNullReturnsJavaNull() {
+    GenericRow row = new GenericRow();
+    row.putValue("jsonMap", null);
+    testFunction("json_format(jsonMap)", Lists.newArrayList("jsonMap"), row, 
null);
+  }
+
+  @Test(description = "jsonFormat(JSON null) should return \"null\"")
+  public void jsonFormatWithJsonNullReturnsStringNull()
+      throws IOException {
+    GenericRow row = new GenericRow();
+    row.putValue("jsonMap", JsonUtils.stringToJsonNode("null"));
+    testFunction("json_format(jsonMap)", Lists.newArrayList("jsonMap"), row, 
"null");
+  }
 }
diff --git 
a/pinot-spi/src/main/java/org/apache/pinot/spi/annotations/ScalarFunction.java 
b/pinot-spi/src/main/java/org/apache/pinot/spi/annotations/ScalarFunction.java
index f0d14f7dd9..46a743d52c 100644
--- 
a/pinot-spi/src/main/java/org/apache/pinot/spi/annotations/ScalarFunction.java
+++ 
b/pinot-spi/src/main/java/org/apache/pinot/spi/annotations/ScalarFunction.java
@@ -46,11 +46,16 @@ public @interface ScalarFunction {
 
   boolean enabled() default true;
 
-  // If empty, FunctionsRegistry registers the method name as function name;
-  // If not empty, FunctionsRegistry only registers the function names 
specified here, the method name is ignored.
+  /**
+   * If empty, FunctionsRegistry registers the method name as function name;
+   * If not empty, FunctionsRegistry only registers the function names 
specified here, the method name is ignored.
+   */
   String[] names() default {};
 
-  // Whether the scalar function expects and can handle null arguments.
+  /**
+   * Whether the scalar function expects and can handle null arguments.
+   *
+   */
   boolean nullableParameters() default false;
 
   boolean isPlaceholder() default false;


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org

Reply via email to