[
https://issues.apache.org/jira/browse/IMPALA-9983?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Aman Sinha resolved IMPALA-9983.
--------------------------------
Fix Version/s: Impala 4.0
Resolution: Fixed
> Push limit from a top level sort onto analytic sort when applicable
> -------------------------------------------------------------------
>
> Key: IMPALA-9983
> URL: https://issues.apache.org/jira/browse/IMPALA-9983
> Project: IMPALA
> Issue Type: Improvement
> Components: Frontend
> Affects Versions: Impala 3.4.0
> Reporter: Aman Sinha
> Assignee: Aman Sinha
> Priority: Major
> Fix For: Impala 4.0
>
>
> For queries of the following type:
> {noformat}
> select * from (select l_partkey, l_quantity,
> rank() over (partition by l_partkey order by l_quantity desc)
> rk
> from lineitem) dt
> where rk <= 100
> order by l_partkey, l_quantity, rk
> limit 100
> {noformat}
> the limit 100 from the outer order by can be pushed down to the analytic sort
> that is done below the AnalyticEval operator. The reason is there are
> effectively 2 limits:
> PARTITION BY l_partkey ORDER BY l_quantity LIMIT PER PARTITION 100
> ORDER BY l_partkey .... LIMIT 100
> and together they imply
> ORDER BY l_partkey, l_quantity LIMIT 100
> For the limit pushdown to work, the partition-by exprs must be a leading
> prefix of the order-by exprs. Also, other qualifying conditions must be met
> based on the above pattern.
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)