[ 
https://issues.apache.org/jira/browse/PHOENIX-7397?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

chenglei reassigned PHOENIX-7397:
---------------------------------

    Assignee: chenglei

> Optimize ClientAggregatePlan/ClientScanPlan when inner query is UnionPlan
> -------------------------------------------------------------------------
>
>                 Key: PHOENIX-7397
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-7397
>             Project: Phoenix
>          Issue Type: Improvement
>          Components: core
>    Affects Versions: 5.2.0, 5.1.3
>            Reporter: chenglei
>            Assignee: chenglei
>            Priority: Major
>
> A common use case of union all is to union multiple homogeneous tables and 
> then further aggregate or sort , just as following sql statements:
> {code:java}
> select A, B,C, sum(...),sum(....)
> from (
> select a1 as A, b1 as B,c1 as C, ....
> from T1
> union all
> select a2,b2,c2,.....
> from T2
> union all
> select a3,b3,c3, ....
> )
> group by A,B,C
> having....
> {code}
> {code:java}
> select A, B,C, sum(...),sum(...)
> from (
> select a1 as A, b1 as B,c1 as C, sum(...), sum(...),....
> from T1
> group by a1,b1,c1
> union all
> select a2,b2,c2,.sum(...),sum(...)....
> from T2
> group by a2,b2,c2
> union all
> select a3,b3,c3, sum(...),sum(...)....
> group by a3,b3,c3
> )
> group by A,B,C
> having....
> {code}
> {code:java}
> select A, B,C...
> from (
> select a1 as A, b1 as B,c1 as C, ....
> from T1
> union all
> select a2,b2,c2,.....
> from T2
> union all
> select a3,b3,c3, ....
> )
> where ......
> order by A,B,C
> {code}
> For situations similar to above three SQL queries, if each subquery of union 
> all is actually ordered by A, B, and C, then {{UnionPlan}} just needs to 
> perform a simple merge on the subquery results to ensure the overall order of 
> the union all . However, for the current implementation of Phoenix, the outer 
> {{ClientAggregatePlan}} or {{ClientScanPlan}} does not know this information 
> within {{UnionPlan}} and will still perform heavyweight processing based on 
> the assumption that the overall result of union all is completely unordered.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to