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

Mihai Budiu reassigned CALCITE-7334:
------------------------------------

    Assignee: Mihai Budiu

> Compiling the generated Java code throws an exception when a scalar subquery 
> is used in the SELECT list
> -------------------------------------------------------------------------------------------------------
>
>                 Key: CALCITE-7334
>                 URL: https://issues.apache.org/jira/browse/CALCITE-7334
>             Project: Calcite
>          Issue Type: Bug
>            Reporter: xiong duan
>            Assignee: Mihai Budiu
>            Priority: Major
>
> The test SQL in  dummy.iq:
>  
> {code:java}
> !use scott
> !set outputformat mysql
> select
>       (
>         SELECT
>           COUNT(*)
>         FROM
>            "scott".emp
>       )
> from "scott".emp as v limit 1;
> +--------+
> | EXPR$0 |
> +--------+
> |     14 |
> +--------+
> (1 row)
> !ok
> select
>       (
>         SELECT
>           COUNT(*)
>         FROM
>            "scott".emp
>       )
> from "scott".emp as v where v.empno >= 2  limit 1;
> +--------+
> | EXPR$0 |
> +--------+
> |     14 |
> +--------+
> (1 row)
> !ok
> select
>         (SELECT
>           COUNT(*)
>         FROM
>            "scott".emp
>         WHERE
>            v.empno >= 2), 3
> from "scott".emp as v;
> EnumerableCalc(expr#0..3=[{inputs}], expr#4=[IS NULL($t3)], 
> expr#5=[0:BIGINT], expr#6=[CASE($t4, $t5, $t3)], expr#7=[3], EXPR$0=[$t6], 
> EXPR$1=[$t7])
>   EnumerableMergeJoin(condition=[=($1, $2)], joinType=[left])
>     EnumerableSort(sort0=[$1], dir0=[ASC])
>       EnumerableCalc(expr#0..7=[{inputs}], expr#8=[CAST($t0):INTEGER NOT 
> NULL], expr#9=[2], expr#10=[>=($t8, $t9)], EMPNO=[$t0], $f1=[$t10])
>         EnumerableTableScan(table=[[scott, EMP]])
>     EnumerableSort(sort0=[$0], dir0=[ASC])
>       EnumerableCalc(expr#0..2=[{inputs}], expr#3=[IS NOT NULL($t2)], 
> expr#4=[0], expr#5=[CASE($t3, $t2, $t4)], $f1=[$t0], EXPR$0=[$t5])
>         EnumerableNestedLoopJoin(condition=[IS NOT DISTINCT FROM($0, $1)], 
> joinType=[left])
>           EnumerableAggregate(group=[{0}])
>             EnumerableCalc(expr#0..7=[{inputs}], expr#8=[CAST($t0):INTEGER 
> NOT NULL], expr#9=[2], expr#10=[>=($t8, $t9)], $f1=[$t10])
>               EnumerableTableScan(table=[[scott, EMP]])
>           EnumerableAggregate(group=[{1}], EXPR$0=[COUNT()])
>             EnumerableNestedLoopJoin(condition=[true], joinType=[inner])
>               EnumerableCalc(expr#0..7=[{inputs}], EMPNO=[$t0])
>                 EnumerableTableScan(table=[[scott, EMP]])
>               EnumerableAggregate(group=[{0}])
>                 EnumerableCalc(expr#0..7=[{inputs}], 
> expr#8=[CAST($t0):INTEGER NOT NULL], expr#9=[2], expr#10=[>=($t8, $t9)], 
> $f1=[$t10], $condition=[$t10])
>                   EnumerableTableScan(table=[[scott, EMP]])
> !plan
> java.sql.SQLException: Error while executing SQL "select
>         (SELECT
>           COUNT(*)
>         FROM
>            "scott".emp
>         WHERE
>            v.empno >= 2), 3
> from "scott".emp as v": Error while compiling generated Java code:
> public static class Record1_0 implements java.io.Serializable {
>   public long f0;
>   public Record1_0() {}
>   public boolean equals(Object o) {
>     if (this == o) {
>       return true;
>     }
>     if ((!(o instanceof Record1_0))) {
>       return false;
>     }
>     return this.f0 == ((Record1_0) o).f0;
>   }
>   public int hashCode() {
>     int h = 0;
>     h = org.apache.calcite.runtime.Utilities.hash(h, this.f0);
>     return h;
>   }{code}
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to