Suresh Subbiah created TRAFODION-2159:
-----------------------------------------

             Summary: Unnest correlated subquery with explicit groupby
                 Key: TRAFODION-2159
                 URL: https://issues.apache.org/jira/browse/TRAFODION-2159
             Project: Apache Trafodion
          Issue Type: Bug
          Components: sql-cmp
    Affects Versions: 2.0-incubating
            Reporter: Suresh Subbiah
            Assignee: Suresh Subbiah
             Fix For: 2.1-incubating


Correlated subqueries with the pattern shown on the left side of the attachment 
are currently not unnested. When cqd subquery_unnesting is set to 'DEBUG' this 
warning message is seen

 *** WARNING[2997]  (Subquery was not unnested. Reason: Right grandchild of TSJ 
is a semijoin or a group by)

An example query  is

prepare XX from
select t40.a
from t40
where t40.b >= (select avg(counta) from (select count(a) as counta from t44 
where t40.c = t44.b group by t44.c)) ;
 
Here the "group by t44.c" in the subquery prevents it from being unnested, 
while "t40.c = t44.b" is the correlation predicate.

With the transformation shown in the right side of the attachment this query 
will be unnested to this equivalent form, which has no explicit correlation

select a0 from
(select a0, avg(counta4) avga4 from 
(select a0, b0, count(a4) counta4 from
(select t40.a a0, t40.b b0, t44.a a4, t44.c c4 from
t40,t44
where t40.c = t44.b )T1(a0,b0,a4,c4)
group by (a0,b0,c4)) T2(a0,b0,counta4)
group by (a0,b0) 
having b0 >= avga4) T3(a0, avga4) ;





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to