Skip to content

[EPIC] Extract remaining physical optimizer out of core #11502

Closed

Description

@jayzhan211

Is your feature request related to a problem or challenge?

Historically DataFusion was one (very) large crate datafusion, and as it grew bigger we extracted various functionality into separate crates. This leads to both faster compile times (as the crates can be compiled in parallel) as well easier to navigate code (as the crates force a cleaner dependency separation)

This project tracks moving the physical optimizers:

Describe the solution you'd like

Pull physical optimizer rules to datafusion-physical-optimizer.

There are some tests that have dependencies on datasource, which they are not possible to move out of core at this moment. We may need to leave those tests inside core for now.

Describe alternatives you've considered

No response

Additional context

No response

Activity

  1. changed the title [-][EPIC] Extract physical optimizer out of core[/-] [+][EPIC] Extract remaining physical optimizer out of core[/+] on Jul 18, 2024
  2. jonathanc-n commented on Nov 7, 2024

    @jonathanc-n
    Contributor

    @jayzhan211 @lewiszlw How do we plan on moving the rest of the functions. If we move the tests separately many of the tests depend on the traits in the functions that are being moved. Due to this it would make sense to import together, but then problems with the datasource and other util dependencies will pop up again. Do you guys have any solutions in mind?

  3. jayzhan211 commented on Nov 8, 2024

    @jayzhan211
    ContributorAuthor

    We may need to move datasource out of core.

    We probably need to revisit this #10782

  4. jayzhan211 commented on Nov 8, 2024

    @jayzhan211
    ContributorAuthor

    Try to move optimization that doesn't have datasource dependency like

    These are good first issues

    • enforce_distribution
    • enforce_sorting
    • join_selection
    • pruning
    • replace_with_order_preserving_variants
    • sanity_checker
    • sort_pushdown
    • enforce_distribution
    • join_selection

    Require datasource

    • projection_pushdown (Require CsvExec)

    If we only need datasource in test, leave the test in core

  5. jonathanc-n commented on Nov 8, 2024

    @jonathanc-n
    Contributor

    @jayzhan211 Would you like to open a ticket for moving datasource out of core, so others are more aware of this transition?

  6. jayzhan211 commented on Nov 8, 2024

    @jayzhan211
    ContributorAuthor

    @jayzhan211 Would you like to open a ticket for moving datasource out of core, so others are more aware of this transition?

    Not sure how do achieve this yet, the high level idea is tracked in #10782

  7. josh0yeh commented on Nov 9, 2024

    @josh0yeh

    take

  8. alamb commented on Jan 10, 2025

    @alamb
    Contributor
  9. alamb commented on Jan 18, 2025

    @alamb
    Contributor
  10. alamb commented on Jan 26, 2025

    @alamb
    Contributor

    We did it! Thank you @buraksenn @berkaysynnada and @logan-keede for pushing it the last little bit

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions