[ 
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)

Reply via email to