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/arrow-datafusion.git
The following commit(s) were added to refs/heads/main by this push:
new 5b9db17528 move log_plan to utils (#6030)
5b9db17528 is described below
commit 5b9db17528910328d6ea00d5a6a81138ac6a680b
Author: zhenxing jiang <[email protected]>
AuthorDate: Mon Apr 17 18:00:39 2023 +0800
move log_plan to utils (#6030)
---
datafusion/optimizer/src/analyzer/mod.rs | 10 +++-------
datafusion/optimizer/src/optimizer.rs | 9 ++-------
datafusion/optimizer/src/utils.rs | 7 +++++++
3 files changed, 12 insertions(+), 14 deletions(-)
diff --git a/datafusion/optimizer/src/analyzer/mod.rs
b/datafusion/optimizer/src/analyzer/mod.rs
index 595cd57deb..dabd331ee1 100644
--- a/datafusion/optimizer/src/analyzer/mod.rs
+++ b/datafusion/optimizer/src/analyzer/mod.rs
@@ -23,12 +23,13 @@ use crate::analyzer::count_wildcard_rule::CountWildcardRule;
use crate::analyzer::inline_table_scan::InlineTableScan;
use crate::analyzer::type_coercion::TypeCoercion;
+use crate::utils::log_plan;
use datafusion_common::config::ConfigOptions;
use datafusion_common::tree_node::{TreeNode, VisitRecursion};
use datafusion_common::{DataFusionError, Result};
use datafusion_expr::utils::inspect_expr_pre;
use datafusion_expr::{Expr, LogicalPlan};
-use log::{debug, trace};
+use log::debug;
use std::sync::Arc;
use std::time::Instant;
@@ -97,6 +98,7 @@ impl Analyzer {
new_plan = rule.analyze(new_plan, config).map_err(|e| {
DataFusionError::Context(rule.name().to_string(), Box::new(e))
})?;
+ log_plan(rule.name(), &new_plan);
observer(&new_plan, rule.as_ref());
}
// for easier display in explain output
@@ -109,12 +111,6 @@ impl Analyzer {
}
}
-/// Log the plan in debug/tracing mode after some part of the optimizer runs
-fn log_plan(description: &str, plan: &LogicalPlan) {
- debug!("{description}:\n{}\n", plan.display_indent());
- trace!("{description}::\n{}\n", plan.display_indent_schema());
-}
-
/// Do necessary check and fail the invalid plan
fn check_plan(plan: &LogicalPlan) -> Result<()> {
plan.apply(&mut |plan: &LogicalPlan| {
diff --git a/datafusion/optimizer/src/optimizer.rs
b/datafusion/optimizer/src/optimizer.rs
index eb0b971f82..487da9db6b 100644
--- a/datafusion/optimizer/src/optimizer.rs
+++ b/datafusion/optimizer/src/optimizer.rs
@@ -40,11 +40,12 @@ use crate::scalar_subquery_to_join::ScalarSubqueryToJoin;
use crate::simplify_expressions::SimplifyExpressions;
use crate::single_distinct_to_groupby::SingleDistinctToGroupBy;
use crate::unwrap_cast_in_comparison::UnwrapCastInComparison;
+use crate::utils::log_plan;
use chrono::{DateTime, Utc};
use datafusion_common::config::ConfigOptions;
use datafusion_common::{DataFusionError, Result};
use datafusion_expr::logical_plan::LogicalPlan;
-use log::{debug, trace, warn};
+use log::{debug, warn};
use std::collections::HashSet;
use std::sync::Arc;
use std::time::Instant;
@@ -434,12 +435,6 @@ fn assert_schema_is_the_same(
}
}
-/// Log the plan in debug/tracing mode after some part of the optimizer runs
-fn log_plan(description: &str, plan: &LogicalPlan) {
- debug!("{description}:\n{}\n", plan.display_indent());
- trace!("{description}::\n{}\n", plan.display_indent_schema());
-}
-
#[cfg(test)]
mod tests {
use crate::optimizer::Optimizer;
diff --git a/datafusion/optimizer/src/utils.rs
b/datafusion/optimizer/src/utils.rs
index e1a266dbab..b52f1b1146 100644
--- a/datafusion/optimizer/src/utils.rs
+++ b/datafusion/optimizer/src/utils.rs
@@ -32,6 +32,7 @@ use datafusion_expr::{
logical_plan::{Filter, LogicalPlan},
Expr, Operator,
};
+use log::{debug, trace};
use std::collections::{BTreeSet, HashSet};
use std::sync::Arc;
@@ -539,6 +540,12 @@ pub(crate) fn collect_subquery_cols(
})
}
+/// Log the plan in debug/tracing mode after some part of the optimizer runs
+pub fn log_plan(description: &str, plan: &LogicalPlan) {
+ debug!("{description}:\n{}\n", plan.display_indent());
+ trace!("{description}::\n{}\n", plan.display_indent_schema());
+}
+
#[cfg(test)]
mod tests {
use super::*;