This is an automated email from the ASF dual-hosted git repository.

mrhhsg pushed a commit to branch spill_repartition
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/spill_repartition by this push:
     new 6a99170ad8a Clear revoked data in agg & avoid null pointer in join
6a99170ad8a is described below

commit 6a99170ad8a47a8a336a12b0cc16648967d4baac
Author: Hu Shenggang <[email protected]>
AuthorDate: Sat Feb 28 09:28:19 2026 +0800

    Clear revoked data in agg & avoid null pointer in join
---
 be/src/pipeline/exec/partitioned_aggregation_sink_operator.cpp | 4 ++++
 be/src/pipeline/exec/partitioned_hash_join_sink_operator.cpp   | 8 +++++---
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/be/src/pipeline/exec/partitioned_aggregation_sink_operator.cpp 
b/be/src/pipeline/exec/partitioned_aggregation_sink_operator.cpp
index d694b75bcc9..ef53713d7d0 100644
--- a/be/src/pipeline/exec/partitioned_aggregation_sink_operator.cpp
+++ b/be/src/pipeline/exec/partitioned_aggregation_sink_operator.cpp
@@ -366,6 +366,10 @@ Status 
PartitionedAggSinkLocalState::_spill_hash_table(RuntimeState* state,
                             state, context, 
Base::_shared_state->_spill_partitions[i],
                             spill_infos[i].keys_, spill_infos[i].values_, 
nullptr, false);
                     RETURN_IF_ERROR(status);
+                    spill_infos[i].keys_.clear();
+                    spill_infos[i].keys_.shrink_to_fit();
+                    spill_infos[i].values_.clear();
+                    spill_infos[i].values_.shrink_to_fit();
                 }
             }
         }
diff --git a/be/src/pipeline/exec/partitioned_hash_join_sink_operator.cpp 
b/be/src/pipeline/exec/partitioned_hash_join_sink_operator.cpp
index 87678027661..a0096c359f2 100644
--- a/be/src/pipeline/exec/partitioned_hash_join_sink_operator.cpp
+++ b/be/src/pipeline/exec/partitioned_hash_join_sink_operator.cpp
@@ -248,10 +248,12 @@ Status 
PartitionedHashJoinSinkLocalState::terminate(RuntimeState* state) {
     if (auto* tmp_sink_state = 
_shared_state->_inner_runtime_state->get_sink_local_state()) {
         inner_sink_state = 
assert_cast<HashJoinBuildSinkLocalState*>(tmp_sink_state);
     }
-    if 
(_parent->cast<PartitionedHashJoinSinkOperatorX>()._inner_sink_operator) {
-        
RETURN_IF_ERROR(inner_sink_state->_runtime_filter_producer_helper->skip_process(state));
+    if (inner_sink_state) {
+        if 
(_parent->cast<PartitionedHashJoinSinkOperatorX>()._inner_sink_operator) {
+            
RETURN_IF_ERROR(inner_sink_state->_runtime_filter_producer_helper->skip_process(state));
+        }
+        inner_sink_state->_terminated = true;
     }
-    inner_sink_state->_terminated = true;
     return 
PipelineXSpillSinkLocalState<PartitionedHashJoinSharedState>::terminate(state);
 }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to