Aman Sinha created IMPALA-9983:
----------------------------------

             Summary: 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


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
   group by l_partkey, l_quantity
   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)

Reply via email to