You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Julian Hyde (Jira)" <ji...@apache.org> on 2021/12/16 16:51:00 UTC

[jira] [Commented] (CALCITE-4943) Type mismatch in Project / HepPlaner: INTEGER to JavaType(int)

    [ https://issues.apache.org/jira/browse/CALCITE-4943?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17460871#comment-17460871 ] 

Julian Hyde commented on CALCITE-4943:
--------------------------------------

What version did this occur in? There are similar issues, e.g. CALCITE-3020 but I thought they were fixed a while ago.

> Type mismatch in Project / HepPlaner: INTEGER to JavaType(int)
> --------------------------------------------------------------
>
>                 Key: CALCITE-4943
>                 URL: https://issues.apache.org/jira/browse/CALCITE-4943
>             Project: Calcite
>          Issue Type: Bug
>            Reporter: Vladimir Steshin
>            Priority: Minor
>              Labels: sub-query
>
> Found by JdbcTest.
> Test query:
> {code:sql}
> CalciteAssert.hr()
>         .query("select (select (select t.\"empid\")) from \"hr\".\"emps\" t")
>         .returnsCount(4);
> {code}
> Error:
> {code:java}
> java.lang.AssertionError: type mismatch:
> ref:
> JavaType(int) NOT NULL
> input:
> INTEGER NOT NULL
> {code}
> Stacktrace:
> {code:java}
> 	at org.apache.calcite.util.Litmus$1.fail(Litmus.java:32)
> 	at org.apache.calcite.plan.RelOptUtil.eq(RelOptUtil.java:2211)
> 	at org.apache.calcite.rex.RexChecker.visitInputRef(RexChecker.java:129)
> 	at org.apache.calcite.rex.RexChecker.visitInputRef(RexChecker.java:61)
> 	at org.apache.calcite.rex.RexInputRef.accept(RexInputRef.java:114)
> 	at org.apache.calcite.rex.RexChecker.visitCall(RexChecker.java:144)
> 	at org.apache.calcite.rex.RexChecker.visitCall(RexChecker.java:61)
> 	at org.apache.calcite.rex.RexCall.accept(RexCall.java:189)
> 	at org.apache.calcite.rel.core.Project.isValid(Project.java:219)
> 	at org.apache.calcite.rel.core.Project.<init>(Project.java:98)
> 	at org.apache.calcite.rel.logical.LogicalProject.<init>(LogicalProject.java:69)
> 	at org.apache.calcite.rel.logical.LogicalProject.create(LogicalProject.java:126)
> 	at org.apache.calcite.rel.logical.LogicalProject.create(LogicalProject.java:114)
> 	at org.apache.calcite.rel.core.RelFactories$ProjectFactoryImpl.createProject(RelFactories.java:178)
> 	at org.apache.calcite.tools.RelBuilder.project_(RelBuilder.java:2020)
> 	at org.apache.calcite.tools.RelBuilder.project(RelBuilder.java:1792)
> 	at org.apache.calcite.tools.RelBuilder.projectNamed(RelBuilder.java:2083)
> 	at org.apache.calcite.sql2rel.RelDecorrelator.projectJoinOutputWithNullability(RelDecorrelator.java:1445)
> 	at org.apache.calcite.sql2rel.RelDecorrelator.access$900(RelDecorrelator.java:147)
> 	at org.apache.calcite.sql2rel.RelDecorrelator$RemoveCorrelationForScalarProjectRule.onMatch(RelDecorrelator.java:2149)
> 	at org.apache.calcite.plan.AbstractRelOptPlanner.fireRule(AbstractRelOptPlanner.java:343)
> 	at org.apache.calcite.plan.hep.HepPlanner.applyRule(HepPlanner.java:565)
> 	at org.apache.calcite.plan.hep.HepPlanner.applyRules(HepPlanner.java:428)
> 	at org.apache.calcite.plan.hep.HepPlanner.executeInstruction(HepPlanner.java:251)
> 	at org.apache.calcite.plan.hep.HepInstruction$RuleInstance.execute(HepInstruction.java:130)
> 	at org.apache.calcite.plan.hep.HepPlanner.executeProgram(HepPlanner.java:208)
> 	at org.apache.calcite.plan.hep.HepPlanner.findBestExp(HepPlanner.java:195)
> 	at org.apache.calcite.sql2rel.RelDecorrelator.removeCorrelationViaRule(RelDecorrelator.java:378)
> 	at org.apache.calcite.sql2rel.RelDecorrelator.decorrelateQuery(RelDecorrelator.java:221)
> 	at org.apache.calcite.tools.Programs$DecorrelateProgram.run(Programs.java:361)
> 	at org.apache.calcite.tools.Programs$SequenceProgram.run(Programs.java:336)
> 	at org.apache.calcite.prepare.Prepare.optimize(Prepare.java:177)
> 	at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:312)
> 	at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:220)
> 	at org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:647)
> 	at org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:513)
> 	at org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:483)
> {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)