[
https://issues.apache.org/jira/browse/CALCITE-7334?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18104204#comment-18104204
]
Mihai Budiu commented on CALCITE-7334:
--------------------------------------
Seems to be a problem with the code generated for EnumerableMergeJoin
> 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)