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

[jira] [Updated] (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:all-tabpanel ]

Vladimir Steshin updated CALCITE-4943:
--------------------------------------
    Description: 
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}



  was:
Found by JdbcTest.

Test query:
{code:sql}
select (select (select t."empid")) from "hr"."emps" t
{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}



        Summary: Type mismatch in Project / HepPlaner: INTEGER to JavaType(int)  (was: Type conversin in Project / HepPlaner: INTEGER to JavaType(int))

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