You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Vineet Garg (JIRA)" <ji...@apache.org> on 2019/03/26 18:24:00 UTC

[jira] [Updated] (CALCITE-2947) Type mismatch assertion error when converting NOT IN subquery

     [ https://issues.apache.org/jira/browse/CALCITE-2947?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Vineet Garg updated CALCITE-2947:
---------------------------------
    Labels: sub-query  (was: )

> Type mismatch assertion error when converting NOT IN subquery
> -------------------------------------------------------------
>
>                 Key: CALCITE-2947
>                 URL: https://issues.apache.org/jira/browse/CALCITE-2947
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>            Reporter: Haisheng Yuan
>            Priority: Major
>              Labels: sub-query
>
> Repro:
> Add the following test to SqlToRelConverterTest.java.
> {code:java}
> @Test public void testSubQueryNotIN() {
>     final String sql = "select deptno\n"
>         + "from EMP e\n"
>         + "where deptno not in (select deptno\n"
>         + "from EMP where empno=e.empno)";
>     sql(sql).ok();
>   }
> {code}
> Error:
> {code:java}
> java.lang.AssertionError: type mismatch:
> ref:
> INTEGER NOT NULL
> input:
> INTEGER
> 	at org.apache.calcite.util.Litmus$1.fail(Litmus.java:31)
> 	at org.apache.calcite.plan.RelOptUtil.eq(RelOptUtil.java:1832)
> 	at org.apache.calcite.rex.RexChecker.visitInputRef(RexChecker.java:125)
> 	at org.apache.calcite.rex.RexChecker.visitInputRef(RexChecker.java:57)
> 	at org.apache.calcite.rex.RexInputRef.accept(RexInputRef.java:112)
> 	at org.apache.calcite.rex.RexChecker.visitCall(RexChecker.java:140)
> 	at org.apache.calcite.rex.RexChecker.visitCall(RexChecker.java:57)
> 	at org.apache.calcite.rex.RexCall.accept(RexCall.java:191)
> 	at org.apache.calcite.rel.core.Filter.isValid(Filter.java:120)
> 	at org.apache.calcite.rel.logical.LogicalFilter.<init>(LogicalFilter.java:70)
> 	at org.apache.calcite.rel.logical.LogicalFilter.create(LogicalFilter.java:114)
> 	at org.apache.calcite.rel.logical.LogicalFilter.create(LogicalFilter.java:101)
> 	at org.apache.calcite.rel.core.RelFactories$FilterFactoryImpl.createFilter(RelFactories.java:300)
> 	at org.apache.calcite.sql2rel.SqlToRelConverter.createJoin(SqlToRelConverter.java:2433)
> {code}
> If we change not in subquery to in subquery, it can run without error.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)