Konstantin Orlov created CALCITE-7057:
-----------------------------------------
Summary: NPE when converting query containing nested correlated
subqueries
Key: CALCITE-7057
URL: https://issues.apache.org/jira/browse/CALCITE-7057
Project: Calcite
Issue Type: Bug
Components: core
Affects Versions: 1.40.0
Reporter: Konstantin Orlov
If SELECT list contains nested correlated subqueries, then AssertionError is
thrown from {{RelDecorrelator}}:
{code:java}
// add following test case to core/src/test/resources/sql/scalar.iq
# Nested scalar sub-queries
select
(select ename || ' from dept '
|| (select dname from dept where deptno = emp.deptno and
emp.empno = empnos.empno)
from emp
) as ename_from_dept
from (values (7369), (7499)) as empnos(empno) order by 1;
+----------+
| EMP_NAME |
+----------+
| ALLEN |
| SMITH |
+----------+
(2 rows)
!ok
// Throws following error (only part of the last "Caused by" presented for
brevity)
Caused by: java.lang.NullPointerException: cm.mapCorToCorRel.get($cor0)
at java.base/java.util.Objects.requireNonNull(Objects.java:334)
at
org.apache.calcite.sql2rel.RelDecorrelator.getCorRel(RelDecorrelator.java:1152)
at
org.apache.calcite.sql2rel.RelDecorrelator.createValueGenerator(RelDecorrelator.java:1046)
at
org.apache.calcite.sql2rel.RelDecorrelator.decorrelateInputWithValueGenerator(RelDecorrelator.java:1252)
at
org.apache.calcite.sql2rel.RelDecorrelator.maybeAddValueGenerator(RelDecorrelator.java:1171)
at
org.apache.calcite.sql2rel.RelDecorrelator.decorrelateRel(RelDecorrelator.java:1377)
at
org.apache.calcite.sql2rel.RelDecorrelator.decorrelateRel(RelDecorrelator.java:1343)
at jdk.internal.reflect.GeneratedMethodAccessor16.invoke(Unknown Source)
{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)