diff --git a/datafusion/optimizer/src/unions_to_filter.rs b/datafusion/optimizer/src/unions_to_filter.rs
index 158fd358287fe..2eda0daba1308 100644
--- a/datafusion/optimizer/src/unions_to_filter.rs
+++ b/datafusion/optimizer/src/unions_to_filter.rs
@@ -20,12 +20,14 @@
use crate::{OptimizerConfig, OptimizerRule};
use datafusion_common::Result;
-use datafusion_common::tree_node::{Transformed, TreeNode, TreeNodeRewriter};
+use datafusion_common::tree_node::{
+ Transformed, TreeNode, TreeNodeRecursion, TreeNodeRewriter,
+};
use datafusion_expr::expr_rewriter::coerce_plan_expr_for_schema;
use datafusion_expr::logical_plan::builder::LogicalPlanBuilder;
use datafusion_expr::utils::disjunction;
use datafusion_expr::{
- Distinct, Expr, Filter, LogicalPlan, Projection, SubqueryAlias, Union,
+ Distinct, Expr, Filter, LogicalPlan, Projection, SubqueryAlias, TableSource, Union,
};
use log::debug;
use std::sync::Arc;
@@ -113,9 +115,11 @@ fn try_rewrite_distinct_union(plan: LogicalPlan) -> Result