[
https://issues.apache.org/jira/browse/CALCITE-5127?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17601073#comment-17601073
]
Benchao Li commented on CALCITE-5127:
-------------------------------------
[~zabetak] I agree that it would be simpler if we do not add {{variablesSet}}
to {{Project}}.
However, {{RexUtil.containsCorrelation}} could not fit this case for now
because it only locate {{RexCorrelVariable}} in current {{RexNode}} tree.
For example,
{noformat}
LogicalProject(EXPR$0=[ARRAY({
LogicalProject(COL1=[$cor0.COL1])
LogicalValues(tuples=[[{ 0 }]])
})])
LogicalTableScan(table=[[CATALOG, SALES, EMP]])
{noformat}
{{RexUtil.containsCorrelation}} would return false for the outer {{Project}}
because we'll not go deep into {{RexSubquery}} referenced {{RelNode}} now.
Maybe another more coarse-grained way is to identify {{RexSubQuery}} without
distinguishing the correlated subquery and non-correlated subquery? Or we can
add another version of {{RexUtil.containsCorrelation}} which will go deeply
into the {{RexSubQuery}} referenced {{RelNode}}?
> Error when executing query with subquery in select list that uses outer
> column of array type
> --------------------------------------------------------------------------------------------
>
> Key: CALCITE-5127
> URL: https://issues.apache.org/jira/browse/CALCITE-5127
> Project: Calcite
> Issue Type: Bug
> Components: core
> Reporter: Dmitry Sysolyatin
> Assignee: Benchao Li
> Priority: Major
> Labels: pull-request-available
> Fix For: 1.32.0
>
> Time Spent: 1h 20m
> Remaining Estimate: 0h
>
> The following queries fail:
> {code}
> SELECT ARRAY(SELECT s.x) FROM (SELECT ARRAY[1,2,3] as x) s;
> SELECT ARRAY(SELECT * FROM UNNEST(s.x) y) FROM (SELECT ARRAY[1,2,3] as x) s;
> SELECT (SELECT CARDINALITY(s.x) LIMIT 1) FROM (SELECT ARRAY[1,2,3] as x) s;
>
> {code}
> With exception:
> {code}
> Caused by: java.lang.ClassCastException: java.lang.Integer cannot be cast to
> java.util.List
> {code}
> You can find test cases for this task in
> https://github.com/apache/calcite/commit/27e68ded2c3bea7d7af73dd1dc156e46fb3591a8
--
This message was sent by Atlassian Jira
(v8.20.10#820010)