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::*;

Reply via email to