This is an automated email from the ASF dual-hosted git repository.
kxiao pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.0 by this push:
new 4cc7857516c [fix](planner)sort node should materialized required slots
for itself #27605 (#27620)
4cc7857516c is described below
commit 4cc7857516c134fbe2269c5d9aa22a0b22292d76
Author: starocean999 <[email protected]>
AuthorDate: Mon Nov 27 20:44:03 2023 +0800
[fix](planner)sort node should materialized required slots for itself
#27605 (#27620)
---
.../src/main/java/org/apache/doris/planner/JoinNodeBase.java | 3 ---
fe/fe-core/src/main/java/org/apache/doris/planner/SortNode.java | 7 +++++++
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/planner/JoinNodeBase.java
b/fe/fe-core/src/main/java/org/apache/doris/planner/JoinNodeBase.java
index 2a0a272e488..b635cfda59d 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/planner/JoinNodeBase.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/planner/JoinNodeBase.java
@@ -275,9 +275,6 @@ public abstract class JoinNodeBase extends PlanNode {
SlotId firstMaterializedSlotId = null;
for (TupleDescriptor tupleDescriptor : outputTupleDescList) {
for (SlotDescriptor slotDescriptor : tupleDescriptor.getSlots()) {
- if ((requiredSlotIdSet != null &&
requiredSlotIdSet.contains(slotDescriptor.getId()))) {
- slotDescriptor.setIsMaterialized(true);
- }
if (slotDescriptor.isMaterialized()) {
if ((requiredSlotIdSet == null ||
requiredSlotIdSet.contains(slotDescriptor.getId()))) {
outputSlotIds.add(slotDescriptor.getId());
diff --git a/fe/fe-core/src/main/java/org/apache/doris/planner/SortNode.java
b/fe/fe-core/src/main/java/org/apache/doris/planner/SortNode.java
index 70b76fa07b7..375e37edd8f 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/planner/SortNode.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/planner/SortNode.java
@@ -269,6 +269,13 @@ public class SortNode extends PlanNode {
Expr.getIds(info.getOrderingExprs(), null, ids);
}
+ @Override
+ public void initOutputSlotIds(Set<SlotId> requiredSlotIdSet, Analyzer
analyzer) {
+ // need call materializeRequiredSlots again to make sure required
slots is materialized by children
+ // requiredSlotIdSet parameter means nothing for sort node, just call
materializeRequiredSlots is enough
+ info.materializeRequiredSlots(analyzer, outputSmap);
+ }
+
private void removeUnusedExprs() {
if (!isUnusedExprRemoved) {
if (resolvedTupleExprs != null) {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]