Skip to content

Commit 3b27f1c

Browse files
committed
fixup pushdown filter
1 parent 3e03c2a commit 3b27f1c

File tree

1 file changed

+7
-7
lines changed
  • crates/core/src/delta_datafusion

1 file changed

+7
-7
lines changed

crates/core/src/delta_datafusion/mod.rs

+7-7
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,14 @@ use datafusion::catalog::{Session, TableProviderFactory};
4141
use datafusion::config::TableParquetOptions;
4242
use datafusion::datasource::memory::DataSourceExec;
4343
use datafusion::datasource::physical_plan::{
44-
wrap_partition_type_in_dict, wrap_partition_value_in_dict, FileScanConfig,
45-
ParquetSource,
44+
wrap_partition_type_in_dict, wrap_partition_value_in_dict, FileScanConfig, ParquetSource,
4645
};
4746
use datafusion::datasource::{listing::PartitionedFile, MemTable, TableProvider, TableType};
4847
use datafusion::execution::context::{SessionConfig, SessionContext, SessionState, TaskContext};
4948
use datafusion::execution::runtime_env::RuntimeEnv;
5049
use datafusion::execution::FunctionRegistry;
5150
use datafusion::optimizer::simplify_expressions::ExprSimplifier;
52-
use datafusion::physical_optimizer::pruning::PruningPredicate;
51+
use datafusion::physical_optimizer::pruning::{PruningPredicate, PruningStatistics};
5352
use datafusion_common::scalar::ScalarValue;
5453
use datafusion_common::tree_node::{TreeNode, TreeNodeRecursion, TreeNodeVisitor};
5554
use datafusion_common::{
@@ -60,7 +59,9 @@ use datafusion_expr::execution_props::ExecutionProps;
6059
use datafusion_expr::logical_plan::CreateExternalTable;
6160
use datafusion_expr::simplify::SimplifyContext;
6261
use datafusion_expr::utils::conjunction;
63-
use datafusion_expr::{col, Expr, Extension, LogicalPlan, TableProviderFilterPushDown, Volatility};
62+
use datafusion_expr::{
63+
col, BinaryExpr, Expr, Extension, LogicalPlan, TableProviderFilterPushDown, Volatility,
64+
};
6465
use datafusion_physical_expr::{create_physical_expr, PhysicalExpr};
6566
use datafusion_physical_plan::filter::FilterExec;
6667
use datafusion_physical_plan::limit::{GlobalLimitExec, LocalLimitExec};
@@ -571,18 +572,17 @@ impl<'a> DeltaScanBuilder<'a> {
571572
};
572573

573574
let context = SessionContext::new();
574-
let df_schema = logical_schema.clone().to_dfschema()?;
575575

576576
let logical_filter = self.filter.map(|expr| {
577577
// Simplify the expression first
578578
let props = ExecutionProps::new();
579579
let simplify_context =
580-
SimplifyContext::new(&props).with_schema(df_schema.clone().into());
580+
SimplifyContext::new(&props).with_schema(filter_df_schema.clone().into());
581581
let simplifier = ExprSimplifier::new(simplify_context).with_max_cycles(10);
582582
let simplified = simplifier.simplify(expr).unwrap();
583583

584584
context
585-
.create_physical_expr(simplified, &df_schema)
585+
.create_physical_expr(simplified, &filter_df_schema)
586586
.unwrap()
587587
});
588588

0 commit comments

Comments
 (0)