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)

Reply via email to