This is an automated email from the ASF dual-hosted git repository.
alamb 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 d23c52f6e4 Simplify the printing of all plans containing `expr` in
`tree` mode (#15249)
d23c52f6e4 is described below
commit d23c52f6e4e86c08ba41d4516733d92b62f39ecf
Author: irenjj <[email protected]>
AuthorDate: Sun Mar 16 19:25:42 2025 +0800
Simplify the printing of all plans containing `expr` in `tree` mode (#15249)
* Simplify the printing of all plans containing `expr` in `tree` mode
* Update datafusion/physical-expr-common/src/sort_expr.rs
Co-authored-by: Andrew Lamb <[email protected]>
* fix
---------
Co-authored-by: Andrew Lamb <[email protected]>
---
datafusion/datasource-parquet/src/source.rs | 3 +-
datafusion/physical-expr-common/src/sort_expr.rs | 12 +-
datafusion/physical-plan/src/aggregates/mod.rs | 1 +
datafusion/physical-plan/src/filter.rs | 3 +-
datafusion/physical-plan/src/joins/hash_join.rs | 5 +-
.../physical-plan/src/joins/sort_merge_join.rs | 5 +-
.../physical-plan/src/joins/symmetric_hash_join.rs | 5 +-
.../src/sorts/sort_preserving_merge.rs | 8 +-
.../sqllogictest/test_files/explain_tree.slt | 164 ++++++++++-----------
9 files changed, 113 insertions(+), 93 deletions(-)
diff --git a/datafusion/datasource-parquet/src/source.rs
b/datafusion/datasource-parquet/src/source.rs
index 683d62a1df..47e692cb96 100644
--- a/datafusion/datasource-parquet/src/source.rs
+++ b/datafusion/datasource-parquet/src/source.rs
@@ -34,6 +34,7 @@ use datafusion_common::config::TableParquetOptions;
use datafusion_common::Statistics;
use datafusion_datasource::file::FileSource;
use datafusion_datasource::file_scan_config::FileScanConfig;
+use datafusion_physical_expr_common::physical_expr::fmt_sql;
use datafusion_physical_expr_common::physical_expr::PhysicalExpr;
use datafusion_physical_optimizer::pruning::PruningPredicate;
use datafusion_physical_plan::metrics::{ExecutionPlanMetricsSet,
MetricBuilder};
@@ -580,7 +581,7 @@ impl FileSource for ParquetSource {
}
DisplayFormatType::TreeRender => {
if let Some(predicate) = self.predicate() {
- writeln!(f, "predicate={predicate}")?;
+ writeln!(f, "predicate={}", fmt_sql(predicate.as_ref()))?;
}
Ok(())
}
diff --git a/datafusion/physical-expr-common/src/sort_expr.rs
b/datafusion/physical-expr-common/src/sort_expr.rs
index fe5c2ecfdf..3a54b5b403 100644
--- a/datafusion/physical-expr-common/src/sort_expr.rs
+++ b/datafusion/physical-expr-common/src/sort_expr.rs
@@ -17,7 +17,7 @@
//! Sort expressions
-use crate::physical_expr::PhysicalExpr;
+use crate::physical_expr::{fmt_sql, PhysicalExpr};
use std::fmt;
use std::fmt::{Display, Formatter};
use std::hash::{Hash, Hasher};
@@ -117,6 +117,16 @@ impl PhysicalSortExpr {
self.options.nulls_first = false;
self
}
+
+ /// Like [`PhysicalExpr::fmt_sql`] prints a [`PhysicalSortExpr`] in a
SQL-like format.
+ pub fn fmt_sql(&self, f: &mut Formatter) -> fmt::Result {
+ write!(
+ f,
+ "{} {}",
+ fmt_sql(self.expr.as_ref()),
+ to_str(&self.options)
+ )
+ }
}
/// Access the PhysicalSortExpr as a PhysicalExpr
diff --git a/datafusion/physical-plan/src/aggregates/mod.rs
b/datafusion/physical-plan/src/aggregates/mod.rs
index 5dccc09fc7..4230eeeed0 100644
--- a/datafusion/physical-plan/src/aggregates/mod.rs
+++ b/datafusion/physical-plan/src/aggregates/mod.rs
@@ -830,6 +830,7 @@ impl DisplayAs for AggregateExec {
})
.collect()
};
+ // TODO: Implement `fmt_sql` for `AggregateFunctionExpr`.
let a: Vec<String> = self
.aggr_expr
.iter()
diff --git a/datafusion/physical-plan/src/filter.rs
b/datafusion/physical-plan/src/filter.rs
index ffcda1d888..a8a9973ea0 100644
--- a/datafusion/physical-plan/src/filter.rs
+++ b/datafusion/physical-plan/src/filter.rs
@@ -54,6 +54,7 @@ use datafusion_physical_expr::{
ExprBoundaries, PhysicalExpr,
};
+use datafusion_physical_expr_common::physical_expr::fmt_sql;
use futures::stream::{Stream, StreamExt};
use log::trace;
@@ -330,7 +331,7 @@ impl DisplayAs for FilterExec {
write!(f, "FilterExec: {}{}", self.predicate,
display_projections)
}
DisplayFormatType::TreeRender => {
- write!(f, "predicate={}", self.predicate)
+ write!(f, "predicate={}", fmt_sql(self.predicate.as_ref()))
}
}
}
diff --git a/datafusion/physical-plan/src/joins/hash_join.rs
b/datafusion/physical-plan/src/joins/hash_join.rs
index 39a1503726..e9d6354e21 100644
--- a/datafusion/physical-plan/src/joins/hash_join.rs
+++ b/datafusion/physical-plan/src/joins/hash_join.rs
@@ -82,6 +82,7 @@ use datafusion_physical_expr::PhysicalExprRef;
use datafusion_physical_expr_common::datum::compare_op_for_nested;
use ahash::RandomState;
+use datafusion_physical_expr_common::physical_expr::fmt_sql;
use futures::{ready, Stream, StreamExt, TryStreamExt};
use parking_lot::Mutex;
@@ -672,7 +673,9 @@ impl DisplayAs for HashJoinExec {
let on = self
.on
.iter()
- .map(|(c1, c2)| format!("({} = {})", c1, c2))
+ .map(|(c1, c2)| {
+ format!("({} = {})", fmt_sql(c1.as_ref()),
fmt_sql(c2.as_ref()))
+ })
.collect::<Vec<String>>()
.join(", ");
diff --git a/datafusion/physical-plan/src/joins/sort_merge_join.rs
b/datafusion/physical-plan/src/joins/sort_merge_join.rs
index d8446fb332..7fb8a2d736 100644
--- a/datafusion/physical-plan/src/joins/sort_merge_join.rs
+++ b/datafusion/physical-plan/src/joins/sort_merge_join.rs
@@ -70,6 +70,7 @@ use datafusion_execution::runtime_env::RuntimeEnv;
use datafusion_execution::TaskContext;
use datafusion_physical_expr::equivalence::join_equivalence_properties;
use datafusion_physical_expr::PhysicalExprRef;
+use datafusion_physical_expr_common::physical_expr::fmt_sql;
use datafusion_physical_expr_common::sort_expr::{LexOrdering, LexRequirement};
use futures::{Stream, StreamExt};
@@ -373,7 +374,9 @@ impl DisplayAs for SortMergeJoinExec {
let on = self
.on
.iter()
- .map(|(c1, c2)| format!("({} = {})", c1, c2))
+ .map(|(c1, c2)| {
+ format!("({} = {})", fmt_sql(c1.as_ref()),
fmt_sql(c2.as_ref()))
+ })
.collect::<Vec<String>>()
.join(", ");
diff --git a/datafusion/physical-plan/src/joins/symmetric_hash_join.rs
b/datafusion/physical-plan/src/joins/symmetric_hash_join.rs
index 63e95c7a30..0dcb42169e 100644
--- a/datafusion/physical-plan/src/joins/symmetric_hash_join.rs
+++ b/datafusion/physical-plan/src/joins/symmetric_hash_join.rs
@@ -74,6 +74,7 @@ use datafusion_expr::interval_arithmetic::Interval;
use datafusion_physical_expr::equivalence::join_equivalence_properties;
use datafusion_physical_expr::intervals::cp_solver::ExprIntervalGraph;
use datafusion_physical_expr::PhysicalExprRef;
+use datafusion_physical_expr_common::physical_expr::fmt_sql;
use datafusion_physical_expr_common::sort_expr::{LexOrdering, LexRequirement};
use ahash::RandomState;
@@ -384,7 +385,9 @@ impl DisplayAs for SymmetricHashJoinExec {
let on = self
.on
.iter()
- .map(|(c1, c2)| format!("({} = {})", c1, c2))
+ .map(|(c1, c2)| {
+ format!("({} = {})", fmt_sql(c1.as_ref()),
fmt_sql(c2.as_ref()))
+ })
.collect::<Vec<String>>()
.join(", ");
diff --git a/datafusion/physical-plan/src/sorts/sort_preserving_merge.rs
b/datafusion/physical-plan/src/sorts/sort_preserving_merge.rs
index 68593fe6b0..ca06a029e8 100644
--- a/datafusion/physical-plan/src/sorts/sort_preserving_merge.rs
+++ b/datafusion/physical-plan/src/sorts/sort_preserving_merge.rs
@@ -187,11 +187,9 @@ impl DisplayAs for SortPreservingMergeExec {
}
DisplayFormatType::TreeRender => {
for (i, e) in self.expr().iter().enumerate() {
- let e = e.to_string();
- if i == self.expr().len() - 1 {
- writeln!(f, "{e}")?;
- } else {
- write!(f, "{e}, ")?;
+ e.fmt_sql(f)?;
+ if i != self.expr().len() - 1 {
+ write!(f, ", ")?;
}
}
if let Some(fetch) = self.fetch {
diff --git a/datafusion/sqllogictest/test_files/explain_tree.slt
b/datafusion/sqllogictest/test_files/explain_tree.slt
index 4e416c52a4..b9f4074a45 100644
--- a/datafusion/sqllogictest/test_files/explain_tree.slt
+++ b/datafusion/sqllogictest/test_files/explain_tree.slt
@@ -175,7 +175,7 @@ physical_plan
08)│ FilterExec │
09)│ -------------------- │
10)│ predicate: │
-11)│ string_col@1 != foo │
+11)│ string_col != foo │
12)└─────────────┬─────────────┘
13)┌─────────────┴─────────────┐
14)│ RepartitionExec │
@@ -303,7 +303,7 @@ physical_plan
08)│ HashJoinExec │
09)│ -------------------- │
10)│ on: ├──────────────┐
-11)│ (int_col@0 = int_col@0) │ │
+11)│ (int_col = int_col) │ │
12)└─────────────┬─────────────┘ │
13)┌─────────────┴─────────────┐┌─────────────┴─────────────┐
14)│ CoalesceBatchesExec ││ CoalesceBatchesExec │
@@ -357,7 +357,7 @@ physical_plan
08)│ HashJoinExec │
09)│ -------------------- │
10)│ on: ├───────────────────────────────────────────┐
-11)│ (int_col@1 = int_col@0) │ │
+11)│ (int_col = int_col) │ │
12)└─────────────┬─────────────┘ │
13)┌─────────────┴─────────────┐
┌─────────────┴─────────────┐
14)│ CoalesceBatchesExec │ │
CoalesceBatchesExec │
@@ -369,7 +369,7 @@ physical_plan
20)│ HashJoinExec │ │
RepartitionExec │
21)│ -------------------- │ │
-------------------- │
22)│ on: │ │
output_partition_count: │
-23)│ (int_col@0 = int_col@0) ├──────────────┐ │ 1
│
+23)│ (int_col = int_col) ├──────────────┐ │ 1
│
24)│ │ │ │
│
25)│ │ │ │
partitioning_scheme: │
26)│ │ │ │
Hash([int_col@0], 4) │
@@ -423,9 +423,9 @@ physical_plan
08)│ FilterExec │
09)│ -------------------- │
10)│ predicate: │
-11)│ string_col@1 != foo AND │
-12)│ string_col@1 != bar │
-13)│ AND string_col@1 != a │
+11)│ string_col != foo AND │
+12)│ string_col != bar │
+13)│ AND string_col != a │
14)│ really long string │
15)│ constant │
16)└─────────────┬─────────────┘
@@ -461,8 +461,8 @@ physical_plan
08)│ FilterExec │
09)│ -------------------- │
10)│ predicate: │
-11)│ string_col@1 != │
-12)│ aaaaaaaaaaaaaa │
+11)│ string_col != │
+12)│ aaaaaaaaaaaa │
13)│aaaaaaaaaaaaaaaaaaaaaaaaaaa│
14)│aaaaaaaaaaaaaaaaaaaaaaaaaaa│
15)│aaaaaaaaaaaaaaaaaaaaaaaaaaa│
@@ -510,7 +510,7 @@ physical_plan
# Check exactly the render width.
query TT
explain SELECT int_col FROM table1
-WHERE string_col != 'aaaaaaaaaaa';
+WHERE string_col != 'aaaaaaaaaaaaa';
----
physical_plan
01)┌───────────────────────────┐
@@ -523,7 +523,7 @@ physical_plan
08)│ FilterExec │
09)│ -------------------- │
10)│ predicate: │
-11)│string_col@1 != aaaaaaaaaaa│
+11)│string_col != aaaaaaaaaaaaa│
12)└─────────────┬─────────────┘
13)┌─────────────┴─────────────┐
14)│ RepartitionExec │
@@ -544,7 +544,7 @@ physical_plan
# Check with the render witdth + 1.
query TT
explain SELECT int_col FROM table1
-WHERE string_col != 'aaaaaaaaaaaa';
+WHERE string_col != 'aaaaaaaaaaaaaaa';
----
physical_plan
01)┌───────────────────────────┐
@@ -557,24 +557,25 @@ physical_plan
08)│ FilterExec │
09)│ -------------------- │
10)│ predicate: │
-11)│ string_col@1 != │
+11)│ string_col != │
12)│ aaaaaaaaaaaa │
-13)└─────────────┬─────────────┘
-14)┌─────────────┴─────────────┐
-15)│ RepartitionExec │
-16)│ -------------------- │
-17)│ output_partition_count: │
-18)│ 1 │
-19)│ │
-20)│ partitioning_scheme: │
-21)│ RoundRobinBatch(4) │
-22)└─────────────┬─────────────┘
-23)┌─────────────┴─────────────┐
-24)│ DataSourceExec │
-25)│ -------------------- │
-26)│ files: 1 │
-27)│ format: csv │
-28)└───────────────────────────┘
+13)│ aaa │
+14)└─────────────┬─────────────┘
+15)┌─────────────┴─────────────┐
+16)│ RepartitionExec │
+17)│ -------------------- │
+18)│ output_partition_count: │
+19)│ 1 │
+20)│ │
+21)│ partitioning_scheme: │
+22)│ RoundRobinBatch(4) │
+23)└─────────────┬─────────────┘
+24)┌─────────────┴─────────────┐
+25)│ DataSourceExec │
+26)│ -------------------- │
+27)│ files: 1 │
+28)│ format: csv │
+29)└───────────────────────────┘
# Query with filter on csv
query TT
@@ -591,7 +592,7 @@ physical_plan
08)│ FilterExec │
09)│ -------------------- │
10)│ predicate: │
-11)│ string_col@1 != foo │
+11)│ string_col != foo │
12)└─────────────┬─────────────┘
13)┌─────────────┴─────────────┐
14)│ RepartitionExec │
@@ -625,7 +626,7 @@ physical_plan
08)│ FilterExec │
09)│ -------------------- │
10)│ predicate: │
-11)│ string_col@1 != foo │
+11)│ string_col != foo │
12)└─────────────┬─────────────┘
13)┌─────────────┴─────────────┐
14)│ RepartitionExec │
@@ -643,7 +644,7 @@ physical_plan
26)│ format: parquet │
27)│ │
28)│ predicate: │
-29)│ string_col@1 != foo │
+29)│ string_col != foo │
30)└───────────────────────────┘
# Query with filter on memory
@@ -661,7 +662,7 @@ physical_plan
08)│ FilterExec │
09)│ -------------------- │
10)│ predicate: │
-11)│ string_col@1 != foo │
+11)│ string_col != foo │
12)└─────────────┬─────────────┘
13)┌─────────────┴─────────────┐
14)│ DataSourceExec │
@@ -686,7 +687,7 @@ physical_plan
08)│ FilterExec │
09)│ -------------------- │
10)│ predicate: │
-11)│ string_col@1 != foo │
+11)│ string_col != foo │
12)└─────────────┬─────────────┘
13)┌─────────────┴─────────────┐
14)│ RepartitionExec │
@@ -719,7 +720,7 @@ physical_plan
08)│ FilterExec │
09)│ -------------------- │
10)│ predicate: │
-11)│ string_col@1 != foo │
+11)│ string_col != foo │
12)└─────────────┬─────────────┘
13)┌─────────────┴─────────────┐
14)│ RepartitionExec │
@@ -1192,10 +1193,10 @@ physical_plan
08)│ HashJoinExec │
09)│ -------------------- │
10)│ on: │
-11)│ (int_col@0 = int_col@0), ├──────────────┐
-12)│ (CAST(table1.string_col │ │
-13)│ AS Utf8View)@4 = │ │
-14)│ string_col@1) │ │
+11)│ (int_col = int_col), (CAST├──────────────┐
+12)│ (table1.string_col AS │ │
+13)│ Utf8View) = │ │
+14)│ string_col) │ │
15)└─────────────┬─────────────┘ │
16)┌─────────────┴─────────────┐┌─────────────┴─────────────┐
17)│ CoalesceBatchesExec ││ CoalesceBatchesExec │
@@ -1264,10 +1265,10 @@ physical_plan
10)│ join_type: Left │
11)│ │
12)│ on: ├──────────────┐
-13)│ (int_col@0 = int_col@0), │ │
-14)│ (CAST(table1.string_col │ │
-15)│ AS Utf8View)@4 = │ │
-16)│ string_col@1) │ │
+13)│ (int_col = int_col), (CAST│ │
+14)│ (table1.string_col AS │ │
+15)│ Utf8View) = │ │
+16)│ string_col) │ │
17)└─────────────┬─────────────┘ │
18)┌─────────────┴─────────────┐┌─────────────┴─────────────┐
19)│ CoalesceBatchesExec ││ CoalesceBatchesExec │
@@ -1402,7 +1403,7 @@ physical_plan
01)┌───────────────────────────┐
02)│ SortMergeJoinExec │
03)│ -------------------- ├──────────────┐
-04)│ on: (c1@0 = c1@0) │ │
+04)│ on: (c1 = c1) │ │
05)└─────────────┬─────────────┘ │
06)┌─────────────┴─────────────┐┌─────────────┴─────────────┐
07)│ SortExec ││ SortExec │
@@ -1569,8 +1570,8 @@ physical_plan
01)┌───────────────────────────┐
02)│ SortPreservingMergeExec │
03)│ -------------------- │
-04)│ date@0 ASC NULLS LAST, │
-05)│ time@2 ASC NULLS LAST │
+04)│ date ASC NULLS LAST, time │
+05)│ ASC NULLS LAST │
06)└─────────────┬─────────────┘
07)┌─────────────┴─────────────┐
08)│ CoalesceBatchesExec │
@@ -1581,24 +1582,23 @@ physical_plan
13)┌─────────────┴─────────────┐
14)│ FilterExec │
15)│ -------------------- │
-16)│ predicate: │
-17)│ ticker@1 = A │
-18)└─────────────┬─────────────┘
-19)┌─────────────┴─────────────┐
-20)│ RepartitionExec │
-21)│ -------------------- │
-22)│ output_partition_count: │
-23)│ 1 │
-24)│ │
-25)│ partitioning_scheme: │
-26)│ RoundRobinBatch(4) │
-27)└─────────────┬─────────────┘
-28)┌─────────────┴─────────────┐
-29)│ StreamingTableExec │
-30)│ -------------------- │
-31)│ infinite: true │
-32)│ limit: None │
-33)└───────────────────────────┘
+16)│ predicate: ticker = A │
+17)└─────────────┬─────────────┘
+18)┌─────────────┴─────────────┐
+19)│ RepartitionExec │
+20)│ -------------------- │
+21)│ output_partition_count: │
+22)│ 1 │
+23)│ │
+24)│ partitioning_scheme: │
+25)│ RoundRobinBatch(4) │
+26)└─────────────┬─────────────┘
+27)┌─────────────┴─────────────┐
+28)│ StreamingTableExec │
+29)│ -------------------- │
+30)│ infinite: true │
+31)│ limit: None │
+32)└───────────────────────────┘
# constant ticker, CAST(time AS DATE) = time, order by time
@@ -1611,7 +1611,7 @@ physical_plan
01)┌───────────────────────────┐
02)│ SortPreservingMergeExec │
03)│ -------------------- │
-04)│ time@2 ASC NULLS LAST │
+04)│ time ASC NULLS LAST │
05)└─────────────┬─────────────┘
06)┌─────────────┴─────────────┐
07)│ CoalesceBatchesExec │
@@ -1623,8 +1623,8 @@ physical_plan
13)│ FilterExec │
14)│ -------------------- │
15)│ predicate: │
-16)│ ticker@1 = A AND CAST(time│
-17)│ @2 AS Date32) = date@0 │
+16)│ ticker = A AND CAST(time │
+17)│ AS Date32) = date │
18)└─────────────┬─────────────┘
19)┌─────────────┴─────────────┐
20)│ RepartitionExec │
@@ -1652,7 +1652,7 @@ physical_plan
01)┌───────────────────────────┐
02)│ SortPreservingMergeExec │
03)│ -------------------- │
-04)│ date@0 ASC NULLS LAST │
+04)│ date ASC NULLS LAST │
05)└─────────────┬─────────────┘
06)┌─────────────┴─────────────┐
07)│ CoalesceBatchesExec │
@@ -1664,8 +1664,8 @@ physical_plan
13)│ FilterExec │
14)│ -------------------- │
15)│ predicate: │
-16)│ ticker@1 = A AND CAST(time│
-17)│ @2 AS Date32) = date@0 │
+16)│ ticker = A AND CAST(time │
+17)│ AS Date32) = date │
18)└─────────────┬─────────────┘
19)┌─────────────┴─────────────┐
20)│ RepartitionExec │
@@ -1703,8 +1703,8 @@ physical_plan
11)│ FilterExec │
12)│ -------------------- │
13)│ predicate: │
-14)│ ticker@1 = A AND CAST(time│
-15)│ @2 AS Date32) = date@0 │
+14)│ ticker = A AND CAST(time │
+15)│ AS Date32) = date │
16)└─────────────┬─────────────┘
17)┌─────────────┴─────────────┐
18)│ RepartitionExec │
@@ -1733,8 +1733,8 @@ physical_plan
01)┌───────────────────────────┐
02)│ SortPreservingMergeExec │
03)│ -------------------- │
-04)│ time@2 ASC NULLS LAST, │
-05)│ date@0 ASC NULLS LAST │
+04)│ time ASC NULLS LAST, date │
+05)│ ASC NULLS LAST │
06)└─────────────┬─────────────┘
07)┌─────────────┴─────────────┐
08)│ CoalesceBatchesExec │
@@ -1746,8 +1746,8 @@ physical_plan
14)│ FilterExec │
15)│ -------------------- │
16)│ predicate: │
-17)│ ticker@1 = A AND CAST(time│
-18)│ @2 AS Date32) = date@0 │
+17)│ ticker = A AND CAST(time │
+18)│ AS Date32) = date │
19)└─────────────┬─────────────┘
20)┌─────────────┴─────────────┐
21)│ RepartitionExec │
@@ -1778,8 +1778,8 @@ physical_plan
01)┌───────────────────────────┐
02)│ SortPreservingMergeExec │
03)│ -------------------- │
-04)│ ticker@1 ASC NULLS LAST, │
-05)│ time@2 ASC NULLS LAST │
+04)│ ticker ASC NULLS LAST, │
+05)│ time ASC NULLS LAST │
06)└─────────────┬─────────────┘
07)┌─────────────┴─────────────┐
08)│ CoalesceBatchesExec │
@@ -1791,7 +1791,7 @@ physical_plan
14)│ FilterExec │
15)│ -------------------- │
16)│ predicate: │
-17)│ date@0 = 2006-01-02 │
+17)│ date = 2006-01-02 │
18)└─────────────┬─────────────┘
19)┌─────────────┴─────────────┐
20)│ RepartitionExec │
@@ -1845,7 +1845,7 @@ physical_plan
20)-----------------------------┌─────────────┴─────────────┐
21)-----------------------------│ FilterExec │
22)-----------------------------│ -------------------- │
-23)-----------------------------│ predicate: id@0 < 10 │
+23)-----------------------------│ predicate: id < 10 │
24)-----------------------------└─────────────┬─────────────┘
25)-----------------------------┌─────────────┴─────────────┐
26)-----------------------------│ RepartitionExec │
@@ -1990,7 +1990,7 @@ physical_plan
48)┌─────────────┴─────────────┐
49)│ FilterExec │
50)│ -------------------- │
-51)│ predicate: a@0 > 3 │
+51)│ predicate: a > 3 │
52)└─────────────┬─────────────┘
53)┌─────────────┴─────────────┐
54)│ DataSourceExec │
@@ -2034,7 +2034,7 @@ physical_plan
14)┌─────────────┴─────────────┐
15)│ FilterExec │
16)│ -------------------- │
-17)│ predicate: c3@2 > 0 │
+17)│ predicate: c3 > 0 │
18)└─────────────┬─────────────┘
19)┌─────────────┴─────────────┐
20)│ RepartitionExec │
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]