Wang Yanlin created CALCITE-3554: ------------------------------------ Summary: NullPointerException when deserializing LogicalTableFunctionScan from json Key: CALCITE-3554 URL: https://issues.apache.org/jira/browse/CALCITE-3554 Project: Calcite Issue Type: Bug Reporter: Wang Yanlin
Run this test case in *RelWriterTest* {code:java} @Test public void testTableFunctionScan() { final RelBuilder builder = RelBuilder.create(RelBuilderTest.config().build()); final SqlOperator dedupFunction = new MockSqlOperatorTable.DedupFunction(); RelNode rel = builder.scan("EMP") .scan("DEPT") .functionScan(dedupFunction, 2, builder.cursor(2, 0), builder.cursor(2, 1)) .build(); RelJsonWriter jsonWriter = new RelJsonWriter(); rel.explain(jsonWriter); String relJson = jsonWriter.asString(); System.out.println(RelOptUtil.toString(rel)); System.out.println(relJson); String s = deserializeAndDumpToTextFormat(getSchema(rel), relJson); final String expected = "xxx"; assertThat(s, isLinux(expected)); } {code} Got {code:java} Caused by: java.lang.NullPointerException: operator at java.util.Objects.requireNonNull(Objects.java:228) at org.apache.calcite.rex.RexCall.<init>(RexCall.java:83) at org.apache.calcite.rex.RexBuilder.makeCall(RexBuilder.java:237) at org.apache.calcite.rel.externalize.RelJson.toRex(RelJson.java:502) at org.apache.calcite.rel.externalize.RelJsonReader$2.getExpression(RelJsonReader.java:132) at org.apache.calcite.rel.core.TableFunctionScan.<init>(TableFunctionScan.java:97) at org.apache.calcite.rel.logical.LogicalTableFunctionScan.<init>(LogicalTableFunctionScan.java:81) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.apache.calcite.rel.externalize.RelJsonReader.readRel(RelJsonReader.java:261) at org.apache.calcite.rel.externalize.RelJsonReader.readRels(RelJsonReader.java:91) at org.apache.calcite.rel.externalize.RelJsonReader.read(RelJsonReader.java:85) at org.apache.calcite.plan.RelWriterTest.lambda$deserializeAndDumpToTextFormat$6(RelWriterTest.java:793) at org.apache.calcite.tools.Frameworks.lambda$withPlanner$0(Frameworks.java:130) at org.apache.calcite.prepare.CalcitePrepareImpl.perform(CalcitePrepareImpl.java:915) at org.apache.calcite.tools.Frameworks.withPrepare(Frameworks.java:179) ... 26 more {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)