Skip to content

Move logical optimizer rules out of the core datafusion crate #2599

@andygrove

Description

@andygrove

Is your feature request related to a problem or challenge? Please describe what you are trying to do.
As a user of DataFusion for SQL query planning, I would like to be able to use the logical plan optimizer rules without depending on the full datafusion crate containing the execution engine.

Describe the solution you'd like
I think there are two choices here:

  1. Move the optimizer rules up to the datafusion-expr crate which contains the logical plans and expressions and already contains some of the expression rewriting logic that the optimizers depend on. This option would require us to make some changes to remove dependencies on the physical-expr crate as noted in Logical optimizer rule "simplify expressions" should not depend on the core datafusion crate #2535
  2. Create a new datafusion-optimizer crate. This is an easier step because we can have it depend on datafusion-physical-expr for now and fix that later. It is also maybe good to use smaller crates where possible and keep different areas of functionality separate.

Tasks:

Describe alternatives you've considered
None

Additional context
None

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions