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]