Skip to content

Commit 36b28ad

Browse files
committed
Implement TreeNode::map_children in place
1 parent 86ad8a5 commit 36b28ad

File tree

2 files changed

+396
-47
lines changed

2 files changed

+396
-47
lines changed

datafusion/expr/src/logical_plan/plan.rs

Lines changed: 30 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -22,27 +22,9 @@ use std::fmt::{self, Debug, Display, Formatter};
2222
use std::hash::{Hash, Hasher};
2323
use std::sync::Arc;
2424

25-
use super::dml::CopyTo;
26-
use super::DdlStatement;
27-
use crate::builder::change_redundant_column;
28-
use crate::expr::{
29-
Alias, Exists, InSubquery, Placeholder, Sort as SortExpr, WindowFunction,
30-
};
31-
use crate::expr_rewriter::{create_col_from_scalar_expr, normalize_cols};
32-
use crate::logical_plan::display::{GraphvizVisitor, IndentVisitor};
33-
use crate::logical_plan::extension::UserDefinedLogicalNode;
34-
use crate::logical_plan::{DmlStatement, Statement};
35-
use crate::utils::{
36-
enumerate_grouping_sets, exprlist_to_fields, find_out_reference_exprs,
37-
grouping_set_expr_count, grouping_set_to_exprlist, split_conjunction,
38-
};
39-
use crate::{
40-
build_join_schema, expr_vec_fmt, BinaryExpr, BuiltInWindowFunction,
41-
CreateMemoryTable, CreateView, Expr, ExprSchemable, LogicalPlanBuilder, Operator,
42-
TableProviderFilterPushDown, TableSource, WindowFunctionDefinition,
43-
};
44-
4525
use arrow::datatypes::{DataType, Field, Schema, SchemaRef};
26+
27+
pub use datafusion_common::display::{PlanType, StringifiedPlan, ToStringifiedPlan};
4628
use datafusion_common::tree_node::{
4729
Transformed, TransformedResult, TreeNode, TreeNodeIterator, TreeNodeRecursion,
4830
TreeNodeRewriter, TreeNodeVisitor,
@@ -53,12 +35,31 @@ use datafusion_common::{
5335
FunctionalDependence, FunctionalDependencies, ParamValues, Result, TableReference,
5436
UnnestOptions,
5537
};
38+
pub use datafusion_common::{JoinConstraint, JoinType};
5639

40+
use crate::builder::change_redundant_column;
41+
use crate::{
42+
build_join_schema, expr_vec_fmt, BinaryExpr, BuiltInWindowFunction,
43+
CreateMemoryTable, CreateView, Expr, ExprSchemable, LogicalPlanBuilder, Operator,
44+
TableProviderFilterPushDown, TableSource, WindowFunctionDefinition,
45+
};
5746
// backwards compatibility
5847
use crate::display::PgJsonVisitor;
48+
use crate::expr::{
49+
Alias, Exists, InSubquery, Placeholder, Sort as SortExpr, WindowFunction,
50+
};
51+
use crate::expr_rewriter::{create_col_from_scalar_expr, normalize_cols};
52+
use crate::logical_plan::display::{GraphvizVisitor, IndentVisitor};
53+
use crate::logical_plan::extension::UserDefinedLogicalNode;
54+
use crate::logical_plan::{DmlStatement, Statement};
5955
use crate::tree_node::transform_option_vec;
60-
pub use datafusion_common::display::{PlanType, StringifiedPlan, ToStringifiedPlan};
61-
pub use datafusion_common::{JoinConstraint, JoinType};
56+
use crate::utils::{
57+
enumerate_grouping_sets, exprlist_to_fields, find_out_reference_exprs,
58+
grouping_set_expr_count, grouping_set_to_exprlist, split_conjunction,
59+
};
60+
61+
use super::dml::CopyTo;
62+
use super::DdlStatement;
6263

6364
/// A LogicalPlan represents the different types of relational
6465
/// operators (such as Projection, Filter, etc) and can be created by
@@ -3039,17 +3040,19 @@ pub struct Unnest {
30393040
mod tests {
30403041
use std::sync::Arc;
30413042

3042-
use super::*;
3043-
use crate::builder::LogicalTableSource;
3044-
use crate::logical_plan::table_scan;
3045-
use crate::{col, count, exists, in_subquery, lit, placeholder, GroupingSet};
3046-
30473043
use arrow::datatypes::{DataType, Field, Schema};
3044+
30483045
use datafusion_common::tree_node::TreeNodeVisitor;
30493046
use datafusion_common::{
30503047
not_impl_err, Constraint, DFSchema, ScalarValue, TableReference,
30513048
};
30523049

3050+
use crate::builder::LogicalTableSource;
3051+
use crate::logical_plan::table_scan;
3052+
use crate::{col, count, exists, in_subquery, lit, placeholder, GroupingSet};
3053+
3054+
use super::*;
3055+
30533056
fn employee_schema() -> Schema {
30543057
Schema::new(vec![
30553058
Field::new("id", DataType::Int32, false),

0 commit comments

Comments
 (0)