You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Wang Yanlin (Jira)" <ji...@apache.org> on 2019/12/03 07:07:00 UTC

[jira] [Created] (CALCITE-3554) NullPointerException when deserializing LogicalTableFunctionScan from json

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)