This is an automated email from the ASF dual-hosted git repository.

jhyde pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/calcite.git

commit a9587afd194ddbce2a9855ef054406e35f599518
Author: TJ Banghart <[email protected]>
AuthorDate: Fri Feb 3 12:28:53 2023 -0800

    [CALCITE-5514] In RelJson, add a public toRex() instance method
    
    Builds on [CALCITE-5349], which made it easier to customize
    a RelJson instance but left out the toRex method, which was
    static.
    
    Close apache/calcite#3059
---
 .../java/org/apache/calcite/rel/externalize/RelJson.java  | 15 +++++++++++++++
 .../test/java/org/apache/calcite/plan/RelWriterTest.java  |  7 ++++---
 2 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/core/src/main/java/org/apache/calcite/rel/externalize/RelJson.java 
b/core/src/main/java/org/apache/calcite/rel/externalize/RelJson.java
index 3fd1aa32b6..defff01f0c 100644
--- a/core/src/main/java/org/apache/calcite/rel/externalize/RelJson.java
+++ b/core/src/main/java/org/apache/calcite/rel/externalize/RelJson.java
@@ -637,6 +637,18 @@ public class RelJson {
     return map;
   }
 
+  /**
+   * Translates a JSON expression into a RexNode.
+   *
+   * @param cluster The optimization environment
+   * @param o JSON object
+   * @return the transformed RexNode
+   */
+  public RexNode toRex(RelOptCluster cluster, Object o) {
+    RelInput input = new RelInputForCluster(cluster);
+    return toRex(input, o);
+  }
+
   @SuppressWarnings({"rawtypes", "unchecked"})
   @PolyNull RexNode toRex(RelInput relInput, @PolyNull Object o) {
     final RelOptCluster cluster = relInput.getCluster();
@@ -857,7 +869,10 @@ public class RelJson {
    * @param translator Input translator
    * @param o JSON object
    * @return the transformed RexNode
+   *
+   * @deprecated Use {@link #toRex(RelOptCluster, Object)}
    */
+  @Deprecated // to be removed before 2.0
   public static RexNode readExpression(RelOptCluster cluster,
       InputTranslator translator, Map<String, Object> o) {
     RelInput relInput = new RelInputForCluster(cluster);
diff --git a/core/src/test/java/org/apache/calcite/plan/RelWriterTest.java 
b/core/src/test/java/org/apache/calcite/plan/RelWriterTest.java
index c8aeaea431..18b04c35dc 100644
--- a/core/src/test/java/org/apache/calcite/plan/RelWriterTest.java
+++ b/core/src/test/java/org/apache/calcite/plan/RelWriterTest.java
@@ -769,7 +769,7 @@ class RelWriterTest {
     final ObjectMapper mapper = new ObjectMapper();
     final TypeReference<LinkedHashMap<String, Object>> typeRef =
         new TypeReference<LinkedHashMap<String, Object>>() {
-    };
+        };
     final Map<String, Object> o;
     try {
       o = mapper
@@ -778,8 +778,9 @@ class RelWriterTest {
     } catch (JsonProcessingException e) {
       throw TestUtil.rethrow(e);
     }
-    RexNode e =
-        RelJson.readExpression(cluster, RelWriterTest::translateInput, o);
+    final RelJson relJson = RelJson.create()
+        .withInputTranslator(RelWriterTest::translateInput);
+    final RexNode e = relJson.toRex(cluster, o);
     assertThat(e.toString(), is(matcher));
   }
 

Reply via email to