[
https://issues.apache.org/jira/browse/CALCITE-6038?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Julian Hyde resolved CALCITE-6038.
----------------------------------
Resolution: Fixed
Fixed in
[79f2f61d|https://github.com/apache/calcite/commit/79f2f61dcca9ab57600d3723b147b3e05d25ecb2];
thanks for the PR, [~shenlang]!
> Remove 'ORDER BY ... LIMIT n' when input has at most one row, n >= 1, and
> there is no 'OFFSET' clause
> -----------------------------------------------------------------------------------------------------
>
> Key: CALCITE-6038
> URL: https://issues.apache.org/jira/browse/CALCITE-6038
> Project: Calcite
> Issue Type: Improvement
> Components: core
> Reporter: LakeShen
> Assignee: LakeShen
> Priority: Major
> Labels: pull-request-available
> Fix For: 1.36.0
>
>
> When a Sort represents 'Order By x Limit n',and its input is guaranteed that
> is at most one row,we could remove this Sort.
> For example, the sql:
> {code:java}
> SELECT count(*) FROM orders ORDER BY 1 LIMIT 10 {code}
> because the {{SELECT count\(*) FROM orders}} row count is 1, it is at most
> one row, then we could remove {{ORDER BY 1 LIMIT 10}}; after the
> optimization, the sql is:
> {code:java}
> SELECT count(*) FROM orders {code}
> Above logic are same as Presto/Trino's
> [RemoveRedundantTopN|https://github.com/prestodb/presto/blob/21ab1ea2425e4bc65532ab156c60333e5a72dd09/presto-main/src/main/java/com/facebook/presto/sql/planner/iterative/rule/RemoveRedundantTopN.java#L27C1-L28C34]
> rule:
> This JIRA is enhancement for CALCITE-5994; in 5994, we restrict Sort must be
> pure Order(Offset and Limit is null), but after this jira, this optimization
> could be applied to 'Order By x' Or 'Order By x Limit n'.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)