[
https://issues.apache.org/jira/browse/CALCITE-3554?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16986676#comment-16986676
]
Wang Yanlin commented on CALCITE-3554:
--------------------------------------
The same cause of
[CALCITE-3246|https://issues.apache.org/jira/browse/CALCITE-3246], just close
this jira.
> 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
> Priority: Major
>
> 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)