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

Merged
merged 1 commit into from
Jan 20, 2025

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 71.92%. Comparing base (a73d646) to head (ee6a91b).
Report is 3 commits behind head on main.

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   71.88%   71.92%   +0.03%     
==========================================
  Files         134      134              
  Lines       43479    43431      -48     
  Branches    43479    43431      -48     
==========================================
- Hits        31257    31236      -21     
+ Misses      10201    10165      -36     
- Partials     2021     2030       +9     

☔ 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.

Signed-off-by: Ion Koutsouris <15728914+ion-elgreco@users.noreply.github.com>
@ion-elgreco ion-elgreco force-pushed the refactor--logical-plans-in-writer branch from 58623e6 to ee6a91b Compare January 20, 2025 21:49
@rtyler rtyler enabled auto-merge January 20, 2025 21:59
@rtyler rtyler added this pull request to the merge queue Jan 20, 2025
Merged via the queue into delta-io:main with commit 82ef6bf Jan 20, 2025
26 checks passed
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
4 participants