Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: logical plans in writer #3141

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

ion-elgreco
Copy link
Collaborator

Description

We were still using physical plans as starting point, we now only take in logical plans and pass them around. This solves also issues with physical type coercion, since logical type coercion is more flexible.

This is a breaking change though since folks who use .with_execution_plan now how to provide a logical plan instead of a physical plan.

Related Issue(s)

@github-actions github-actions bot added binding/python Issues for the Python package binding/rust Issues for the Rust crate labels Jan 17, 2025
Copy link

codecov bot commented Jan 18, 2025

Codecov Report

Attention: Patch coverage is 61.19403% with 26 lines in your changes missing coverage. Please review.

Project coverage is 72.12%. Comparing base (7d29885) to head (58623e6).

Files with missing lines Patch % Lines
crates/core/src/operations/write.rs 61.19% 15 Missing and 11 partials ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3141      +/-   ##
==========================================
+ Coverage   72.08%   72.12%   +0.03%     
==========================================
  Files         134      134              
  Lines       43360    43312      -48     
  Branches    43360    43312      -48     
==========================================
- Hits        31258    31240      -18     
+ Misses      10085    10047      -38     
- Partials     2017     2025       +8     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link
Collaborator

@roeap roeap left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Love us adopting logical plans more and more!!

Will give this a more thorough read later on, just looking at the changes alone w/o context - do we want to pass around a DataFrame or could we just use the LogicalPlan directly without the attached session?

@ion-elgreco
Copy link
Collaborator Author

@roeap the way I was thinking about it, internally we can use dataframes since we use them directly with DF API, and the input for the builder would just be a plan.

I was thinking yesterday to also make the schema evolution into a custom logical plan node. Any thoughts on this?

@hntd187
Copy link
Collaborator

hntd187 commented Jan 18, 2025

@roeap the way I was thinking about it, internally we can use dataframes since we use them directly with DF API, and the input for the builder would just be a plan.

I was thinking yesterday to also make the schema evolution into a custom logical plan node. Any thoughts on this?

Most everything should become a logical plan node at some point. I know that's much easier said than done, but still.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
binding/python Issues for the Python package binding/rust Issues for the Rust crate
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ValueError: Invalid comparison operation: Utf8 == LargeUtf8 on write_deltalake in overwrite-mode
3 participants