This is an automated email from the ASF dual-hosted git repository.
rongr pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git
The following commit(s) were added to refs/heads/master by this push:
new 41b3c70906 [multistage][hotfix] should never pull project up below
sort (#11161)
41b3c70906 is described below
commit 41b3c70906b9d1f4550c3d3dcf9c3a8d99c65cc4
Author: Rong Rong <[email protected]>
AuthorDate: Mon Jul 24 12:01:12 2023 -0700
[multistage][hotfix] should never pull project up below sort (#11161)
* [multistage][hotfix] should never pull project up below sort
---------
Co-authored-by: Rong Rong <[email protected]>
---
.../org/apache/calcite/rel/rules/PinotQueryRuleSets.java | 2 --
.../src/test/resources/queries/BasicQueryPlans.json | 16 ++++++++--------
.../src/test/resources/queries/JoinPlans.json | 16 ++++++++--------
.../src/test/resources/queries/OrderByPlans.json | 16 ++++++++--------
4 files changed, 24 insertions(+), 26 deletions(-)
diff --git
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotQueryRuleSets.java
b/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotQueryRuleSets.java
index 9b379a6890..34fe035212 100644
---
a/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotQueryRuleSets.java
+++
b/pinot-query-planner/src/main/java/org/apache/calcite/rel/rules/PinotQueryRuleSets.java
@@ -60,8 +60,6 @@ public class PinotQueryRuleSets {
CoreRules.PROJECT_MERGE,
// remove identity project
CoreRules.PROJECT_REMOVE,
- // reorder sort and projection
- CoreRules.SORT_PROJECT_TRANSPOSE,
// convert OVER aggregate to logical WINDOW
CoreRules.PROJECT_TO_LOGICAL_PROJECT_AND_WINDOW,
diff --git
a/pinot-query-planner/src/test/resources/queries/BasicQueryPlans.json
b/pinot-query-planner/src/test/resources/queries/BasicQueryPlans.json
index 370684a586..ec7b105cb9 100644
--- a/pinot-query-planner/src/test/resources/queries/BasicQueryPlans.json
+++ b/pinot-query-planner/src/test/resources/queries/BasicQueryPlans.json
@@ -37,10 +37,10 @@
"sql": "EXPLAIN PLAN FOR SELECT dateTrunc('DAY', ts) FROM a LIMIT 10",
"output": [
"Execution Plan",
- "\nLogicalProject(EXPR$0=[DATETRUNC('DAY', $6)])",
- "\n LogicalSort(offset=[0], fetch=[10])",
- "\n PinotLogicalSortExchange(distribution=[hash], collation=[[]],
isSortOnSender=[false], isSortOnReceiver=[false])",
- "\n LogicalSort(fetch=[10])",
+ "\nLogicalSort(offset=[0], fetch=[10])",
+ "\n PinotLogicalSortExchange(distribution=[hash], collation=[[]],
isSortOnSender=[false], isSortOnReceiver=[false])",
+ "\n LogicalSort(fetch=[10])",
+ "\n LogicalProject(EXPR$0=[DATETRUNC('DAY', $6)])",
"\n LogicalTableScan(table=[[a]])",
"\n"
]
@@ -50,10 +50,10 @@
"sql": "EXPLAIN PLAN FOR SELECT dateTrunc('DAY', ts) AS day FROM a
LIMIT 10",
"output": [
"Execution Plan",
- "\nLogicalProject(day=[DATETRUNC('DAY', $6)])",
- "\n LogicalSort(offset=[0], fetch=[10])",
- "\n PinotLogicalSortExchange(distribution=[hash], collation=[[]],
isSortOnSender=[false], isSortOnReceiver=[false])",
- "\n LogicalSort(fetch=[10])",
+ "\nLogicalSort(offset=[0], fetch=[10])",
+ "\n PinotLogicalSortExchange(distribution=[hash], collation=[[]],
isSortOnSender=[false], isSortOnReceiver=[false])",
+ "\n LogicalSort(fetch=[10])",
+ "\n LogicalProject(day=[DATETRUNC('DAY', $6)])",
"\n LogicalTableScan(table=[[a]])",
"\n"
]
diff --git a/pinot-query-planner/src/test/resources/queries/JoinPlans.json
b/pinot-query-planner/src/test/resources/queries/JoinPlans.json
index 141e2a2602..37e141d58e 100644
--- a/pinot-query-planner/src/test/resources/queries/JoinPlans.json
+++ b/pinot-query-planner/src/test/resources/queries/JoinPlans.json
@@ -6,10 +6,10 @@
"sql": "EXPLAIN PLAN FOR SELECT a.col1, a.ts, b.col3 FROM a JOIN b ON
a.col1 = b.col2 ORDER BY a.col1",
"output": [
"Execution Plan",
- "\nLogicalProject(col1=[$0], ts=[$1], col3=[$3])",
- "\n LogicalSort(sort0=[$0], dir0=[ASC], offset=[0])",
- "\n PinotLogicalSortExchange(distribution=[hash],
collation=[[0]], isSortOnSender=[false], isSortOnReceiver=[true])",
- "\n LogicalSort(sort0=[$0], dir0=[ASC])",
+ "\nLogicalSort(sort0=[$0], dir0=[ASC], offset=[0])",
+ "\n PinotLogicalSortExchange(distribution=[hash], collation=[[0]],
isSortOnSender=[false], isSortOnReceiver=[true])",
+ "\n LogicalSort(sort0=[$0], dir0=[ASC])",
+ "\n LogicalProject(col1=[$0], ts=[$1], col3=[$3])",
"\n LogicalJoin(condition=[=($0, $2)], joinType=[inner])",
"\n PinotLogicalExchange(distribution=[hash[0]])",
"\n LogicalProject(col1=[$0], ts=[$6])",
@@ -25,10 +25,10 @@
"sql": "EXPLAIN PLAN FOR SELECT a.col1 AS value1, a.ts AS ts1, b.col3
FROM a JOIN b ON a.col1 = b.col2 ORDER BY a.col1",
"output": [
"Execution Plan",
- "\nLogicalProject(value1=[$0], ts1=[$1], col3=[$3])",
- "\n LogicalSort(sort0=[$0], dir0=[ASC], offset=[0])",
- "\n PinotLogicalSortExchange(distribution=[hash],
collation=[[0]], isSortOnSender=[false], isSortOnReceiver=[true])",
- "\n LogicalSort(sort0=[$0], dir0=[ASC])",
+ "\nLogicalSort(sort0=[$0], dir0=[ASC], offset=[0])",
+ "\n PinotLogicalSortExchange(distribution=[hash], collation=[[0]],
isSortOnSender=[false], isSortOnReceiver=[true])",
+ "\n LogicalSort(sort0=[$0], dir0=[ASC])",
+ "\n LogicalProject(value1=[$0], ts1=[$1], col3=[$3])",
"\n LogicalJoin(condition=[=($0, $2)], joinType=[inner])",
"\n PinotLogicalExchange(distribution=[hash[0]])",
"\n LogicalProject(col1=[$0], ts=[$6])",
diff --git a/pinot-query-planner/src/test/resources/queries/OrderByPlans.json
b/pinot-query-planner/src/test/resources/queries/OrderByPlans.json
index a6b391ca1c..6c53556c6e 100644
--- a/pinot-query-planner/src/test/resources/queries/OrderByPlans.json
+++ b/pinot-query-planner/src/test/resources/queries/OrderByPlans.json
@@ -6,10 +6,10 @@
"sql": "EXPLAIN PLAN FOR SELECT a.col1 FROM a ORDER BY a.col1",
"output": [
"Execution Plan",
- "\nLogicalProject(col1=[$0])",
- "\n LogicalSort(sort0=[$0], dir0=[ASC], offset=[0])",
- "\n PinotLogicalSortExchange(distribution=[hash],
collation=[[0]], isSortOnSender=[false], isSortOnReceiver=[true])",
- "\n LogicalSort(sort0=[$0], dir0=[ASC])",
+ "\nLogicalSort(sort0=[$0], dir0=[ASC], offset=[0])",
+ "\n PinotLogicalSortExchange(distribution=[hash], collation=[[0]],
isSortOnSender=[false], isSortOnReceiver=[true])",
+ "\n LogicalSort(sort0=[$0], dir0=[ASC])",
+ "\n LogicalProject(col1=[$0])",
"\n LogicalTableScan(table=[[a]])",
"\n"
]
@@ -19,10 +19,10 @@
"sql": "EXPLAIN PLAN FOR SELECT a.col1 AS value1 FROM a ORDER BY
a.col1",
"output": [
"Execution Plan",
- "\nLogicalProject(value1=[$0])",
- "\n LogicalSort(sort0=[$0], dir0=[ASC], offset=[0])",
- "\n PinotLogicalSortExchange(distribution=[hash],
collation=[[0]], isSortOnSender=[false], isSortOnReceiver=[true])",
- "\n LogicalSort(sort0=[$0], dir0=[ASC])",
+ "\nLogicalSort(sort0=[$0], dir0=[ASC], offset=[0])",
+ "\n PinotLogicalSortExchange(distribution=[hash], collation=[[0]],
isSortOnSender=[false], isSortOnReceiver=[true])",
+ "\n LogicalSort(sort0=[$0], dir0=[ASC])",
+ "\n LogicalProject(value1=[$0])",
"\n LogicalTableScan(table=[[a]])",
"\n"
]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]