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)); }
