Skip to content

Commit

Permalink
Remove reundant filters (e.g. c> 5 AND c>5 --> c>5) (#436)
Browse files Browse the repository at this point in the history
* #410: Remove reundant filters (e.g. c> 5 AND c>5 --> c>5)

* RemoveDuplicateFilters: fix unit tests

* fix lint

* fix erroneous simplifications of arithmetic expressions

* RemoveDuplicateFilters: add more simplification rules (@Dandandan)

* Remove unnecessary lifetime specifiers and other fixes ...

* RemoveDuplicateFilter: fix is_one matches

* Change remove_duplicate_filter to simplify_expressions

* fix simplify expressions

* fix lint and clippy

* Update datafusion/src/optimizer/simplify_expressions.rs

Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>

* Update datafusion/src/optimizer/simplify_expressions.rs

Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>

* Update datafusion/src/optimizer/simplify_expressions.rs

Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>

* Update datafusion/src/optimizer/simplify_expressions.rs

Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>

* simplify test expressions

Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
  • Loading branch information
jgoday and alamb authored Jun 3, 2021
1 parent a1b8305 commit 4392eea
Show file tree
Hide file tree
Showing 3 changed files with 544 additions and 0 deletions.
2 changes: 2 additions & 0 deletions datafusion/src/execution/context.rs
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ use crate::optimizer::filter_push_down::FilterPushDown;
use crate::optimizer::limit_push_down::LimitPushDown;
use crate::optimizer::optimizer::OptimizerRule;
use crate::optimizer::projection_push_down::ProjectionPushDown;
use crate::optimizer::simplify_expressions::SimplifyExpressions;
use crate::physical_optimizer::coalesce_batches::CoalesceBatches;
use crate::physical_optimizer::merge_exec::AddMergeExec;
use crate::physical_optimizer::repartition::Repartition;
Expand Down Expand Up @@ -652,6 +653,7 @@ impl ExecutionConfig {
Arc::new(EliminateLimit::new()),
Arc::new(ProjectionPushDown::new()),
Arc::new(FilterPushDown::new()),
Arc::new(SimplifyExpressions::new()),
Arc::new(HashBuildProbeOrder::new()),
Arc::new(LimitPushDown::new()),
],
Expand Down
1 change: 1 addition & 0 deletions datafusion/src/optimizer/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,5 @@ pub mod hash_build_probe_order;
pub mod limit_push_down;
pub mod optimizer;
pub mod projection_push_down;
pub mod simplify_expressions;
pub mod utils;
Loading

0 comments on commit 4392eea

Please sign in to comment.