-
Notifications
You must be signed in to change notification settings - Fork 120
add deletion vector APIs to transaction #1430
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
base: main
Are you sure you want to change the base?
Conversation
6a65734 to
688fabc
Compare
688fabc to
5ab2c58
Compare
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #1430 +/- ##
==========================================
+ Coverage 84.99% 85.13% +0.14%
==========================================
Files 120 120
Lines 31662 32259 +597
Branches 31662 32259 +597
==========================================
+ Hits 26911 27465 +554
- Misses 3441 3450 +9
- Partials 1310 1344 +34 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
| .with_dropped_field("modificationTime"), | ||
| ); | ||
| let expr = Expression::struct_from([transform]); | ||
| Ok(remove_files_metadata.map( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note to reviewer, this is a formatting change because of not reference self.remove_file_metadata)
kernel/src/transaction/mod.rs
Outdated
| ) | ||
| .with_dropped_field(FILE_CONSTANT_VALUES_NAME) | ||
| .with_dropped_field("modificationTime"); | ||
| for column_to_drop in columns_to_drop { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note to reviewer this is an actual change.
kernel/tests/dv.rs
Outdated
|
|
||
| // Step 4: Create deletion vectors marking rows 2, 5, and 7 as deleted | ||
| let mut dv = KernelDeletionVector::new(); | ||
| dv.add_deleted_row_indexes([2, 5, 7]); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
updates for two files:
- Apply this to only the first file (with updated indices).
- Verify deleted rows
- Delete one more row from the same file, and delete some rows from the second file.
- verify deleted rows again.
kernel/tests/dv.rs
Outdated
| .transaction(Box::new(FileSystemCommitter::new()))? | ||
| .with_dv_update(); | ||
| let write_context = temp_txn.get_write_context(); | ||
| let dv_path = write_context.new_deletion_vector_path(String::from("")); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
add a parameter comment that the prefix is empty.
49d2e7a to
7747581
Compare
7747581 to
2cb156f
Compare
59b09be to
03e3592
Compare
688f69e to
79288da
Compare
79288da to
33e1f56
Compare
🥞 Stacked PR
Use this link to review incremental changes.
This PR adds the
update_deletion_vectorsAPI to the Transaction type, enabling engines to update deletion vectors for existing files without rewriting data. This completes the write-side support for Delta Lake's deletion vector feature, allowing efficient row-level deletes and updates.