[ https://issues.apache.org/jira/browse/FLINK-21592?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kurt Young updated FLINK-21592: ------------------------------- Affects Version/s: 1.12.2 > RemoveSingleAggregateRule fails due to nullability mismatch > ----------------------------------------------------------- > > Key: FLINK-21592 > URL: https://issues.apache.org/jira/browse/FLINK-21592 > Project: Flink > Issue Type: Bug > Components: Table SQL / Planner > Affects Versions: 1.12.2 > Reporter: Rui Li > Assignee: Rui Li > Priority: Major > Labels: pull-request-available > Fix For: 1.13.0 > > > The test case to reproduce the issue: > {code} > @Test > public void test() throws Exception { > tableEnv.executeSql("create table foo(x int,y int)"); > tableEnv.executeSql("create table bar(i int,s string)"); > System.out.println(tableEnv.explainSql("select (select count(x)-1 > from foo where foo.y=bar.i) from bar")); > } > {code} > Error stack trace is: > {noformat} > java.lang.AssertionError: Cannot add expression of different type to set: > set type is RecordType(BIGINT NOT NULL $f0) NOT NULL > expression type is RecordType(BIGINT $f0) NOT NULL > set is > rel#94:LogicalAggregate.NONE.any.[](input=HepRelVertex#93,group={},agg#0=SINGLE_VALUE($0)) > expression is LogicalProject($f0=[CAST(-($0, 1)):BIGINT]) > LogicalAggregate(group=[{}], agg#0=[COUNT($0)]) > LogicalProject(x=[$0]) > LogicalFilter(condition=[=($1, $cor0.i)]) > LogicalTableScan(table=[[test-catalog, default, foo]]) > at > org.apache.calcite.plan.RelOptUtil.verifyTypeEquivalence(RelOptUtil.java:381) > at > org.apache.calcite.plan.hep.HepRuleCall.transformTo(HepRuleCall.java:58) > at > org.apache.calcite.plan.RelOptRuleCall.transformTo(RelOptRuleCall.java:268) > at > org.apache.calcite.plan.RelOptRuleCall.transformTo(RelOptRuleCall.java:283) > at > org.apache.calcite.sql2rel.RelDecorrelator$RemoveSingleAggregateRule.onMatch(RelDecorrelator.java:1881) > at > org.apache.calcite.plan.AbstractRelOptPlanner.fireRule(AbstractRelOptPlanner.java:333) > at org.apache.calcite.plan.hep.HepPlanner.applyRule(HepPlanner.java:542) > at > org.apache.calcite.plan.hep.HepPlanner.applyRules(HepPlanner.java:407) > at > org.apache.calcite.plan.hep.HepPlanner.executeInstruction(HepPlanner.java:243) > at > org.apache.calcite.plan.hep.HepInstruction$RuleInstance.execute(HepInstruction.java:127) > at > org.apache.calcite.plan.hep.HepPlanner.executeProgram(HepPlanner.java:202) > at > org.apache.calcite.plan.hep.HepPlanner.findBestExp(HepPlanner.java:189) > at > org.apache.calcite.sql2rel.RelDecorrelator.removeCorrelationViaRule(RelDecorrelator.java:346) > at > org.apache.calcite.sql2rel.RelDecorrelator.decorrelateQuery(RelDecorrelator.java:192) > at > org.apache.calcite.sql2rel.RelDecorrelator.decorrelateQuery(RelDecorrelator.java:169) > at > org.apache.flink.table.planner.plan.optimize.program.FlinkDecorrelateProgram.optimize(FlinkDecorrelateProgram.scala:41) > {noformat} -- This message was sent by Atlassian Jira (v8.3.4#803005)