You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Wan Kun (Jira)" <ji...@apache.org> on 2023/08/18 12:07:00 UTC
[jira] [Created] (SPARK-44870) Convert HashAggregate to SortAggregate if all grouping expressions are in child output orderings
Wan Kun created SPARK-44870:
-------------------------------
Summary: Convert HashAggregate to SortAggregate if all grouping expressions are in child output orderings
Key: SPARK-44870
URL: https://issues.apache.org/jira/browse/SPARK-44870
Project: Spark
Issue Type: Improvement
Components: SQL
Affects Versions: 3.5.0
Reporter: Wan Kun
If all the grouping expressions of Aggregate could be found in the child output orderings, it still can be convert to SortAggregate.
For example:
{code:java}
SELECT a, b, count(1)
FROM values(1, 1, 1), (2, 2, 2) t1(a, b, c)
JOIN values(1, 1, 1), (2, 2, 2) t2(d, e, f)
ON a = d
AND b = e
GROUP by b, a{code}
The grouping expressions are b, a, and the child output orderings are a.asc, b.asc, it still can be convert to SortAggregate.
If all the grouping expressions of Aggregate are semanticEquals with the child output orderings, it can be replaced to SortAggregate.
For example:
{code:java}
SELECT a, b, count(1)
FROM values(1, 1, 1), (2, 2, 2) t1(a, b, c)
JOIN values(1, 1, 1), (2, 2, 2) t2(d, e, f)
ON a = d
AND b = e
GROUP by a, b, d{code}
The grouping expressions are a, b, d, and the child output orderings are a.asc, b.asc, but we still can find d in a.asc.children, so it can be convert to SortAggregate.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org