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

github-bot pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datafusion.git


The following commit(s) were added to refs/heads/main by this push:
     new 033116e8a2 fix: Fix a few minor issues with join metrics (#19283)
033116e8a2 is described below

commit 033116e8a2c2849a45836e6d5952c366aff24ab1
Author: Heran Lin <[email protected]>
AuthorDate: Sun Dec 14 19:16:28 2025 +0800

    fix: Fix a few minor issues with join metrics (#19283)
    
    ## Which issue does this PR close?
    
    N/A
    
    ## Rationale for this change
    
    There are a few minor issues for join metrics:
    1. The `ExecutionPlan::metrics()` method is missing for
    `PiecewiseMergeJoinExec`.
    2. The metric names for left and right inputs are the same in
    `StreamJoinMetrics`, so the user cannot distinguish the metrics in the
    metric set.
    
    ## What changes are included in this PR?
    
    This PR fixes the issues above.
    
    ## Are these changes tested?
    
    N/A
    
    ## Are there any user-facing changes?
    
    The changes to metric names in `StreamJoinMetrics` (used by
    `SymmetricHashJoinExec`) is potentially user-facing.
---
 .../physical-plan/src/joins/piecewise_merge_join/exec.rs       |  5 +++++
 datafusion/physical-plan/src/joins/stream_join_utils.rs        | 10 ++++++----
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/datafusion/physical-plan/src/joins/piecewise_merge_join/exec.rs 
b/datafusion/physical-plan/src/joins/piecewise_merge_join/exec.rs
index c821473c67..508be2e398 100644
--- a/datafusion/physical-plan/src/joins/piecewise_merge_join/exec.rs
+++ b/datafusion/physical-plan/src/joins/piecewise_merge_join/exec.rs
@@ -50,6 +50,7 @@ use crate::joins::piecewise_merge_join::utils::{
     build_visited_indices_map, is_existence_join, is_right_existence_join,
 };
 use crate::joins::utils::asymmetric_join_output_partitioning;
+use crate::metrics::MetricsSet;
 use crate::{DisplayAs, DisplayFormatType, ExecutionPlanProperties};
 use crate::{
     ExecutionPlan, PlanProperties,
@@ -572,6 +573,10 @@ impl ExecutionPlan for PiecewiseMergeJoinExec {
             )))
         }
     }
+
+    fn metrics(&self) -> Option<MetricsSet> {
+        Some(self.metrics.clone_inner())
+    }
 }
 
 impl DisplayAs for PiecewiseMergeJoinExec {
diff --git a/datafusion/physical-plan/src/joins/stream_join_utils.rs 
b/datafusion/physical-plan/src/joins/stream_join_utils.rs
index 10f212bb4a..22cc82a22d 100644
--- a/datafusion/physical-plan/src/joins/stream_join_utils.rs
+++ b/datafusion/physical-plan/src/joins/stream_join_utils.rs
@@ -695,16 +695,18 @@ pub struct StreamJoinMetrics {
 impl StreamJoinMetrics {
     pub fn new(partition: usize, metrics: &ExecutionPlanMetricsSet) -> Self {
         let input_batches =
-            MetricBuilder::new(metrics).counter("input_batches", partition);
-        let input_rows = MetricBuilder::new(metrics).counter("input_rows", 
partition);
+            MetricBuilder::new(metrics).counter("left_input_batches", 
partition);
+        let input_rows =
+            MetricBuilder::new(metrics).counter("left_input_rows", partition);
         let left = StreamJoinSideMetrics {
             input_batches,
             input_rows,
         };
 
         let input_batches =
-            MetricBuilder::new(metrics).counter("input_batches", partition);
-        let input_rows = MetricBuilder::new(metrics).counter("input_rows", 
partition);
+            MetricBuilder::new(metrics).counter("right_input_batches", 
partition);
+        let input_rows =
+            MetricBuilder::new(metrics).counter("right_input_rows", partition);
         let right = StreamJoinSideMetrics {
             input_batches,
             input_rows,


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

Reply via email to