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)