Skip to content

feat: update asserted nullability in DataValidation output schema#4132

Merged
rtyler merged 2 commits intodelta-io:mainfrom
roeap:feat/nullability-asserts
Jan 27, 2026
Merged

feat: update asserted nullability in DataValidation output schema#4132
rtyler merged 2 commits intodelta-io:mainfrom
roeap:feat/nullability-asserts

Conversation

@roeap
Copy link
Copy Markdown
Collaborator

@roeap roeap commented Jan 27, 2026

Description

Following our newly introduces AI disclosure guidelines - I used AI to write the recursive methods that update field nullability.

In the current refactoring efforts, we are combining more and more operations into logical plans and further defer doing physical work. In some cases we combine data that may differ in the logical nullability, but be equivalent in practical terms - i.e. no null values present, in nullable field.

We assert the absence of null values in the DataValidationExec, to be able to combine different sources (usually inserted data and data rescued from exisiting files) we also need to update the schema to be matching in null values.

@roeap roeap requested review from hntd187 and rtyler as code owners January 27, 2026 14:44
@roeap roeap changed the title feat: update asserted nullability in DataValidation feat: update asserted nullability in DataValidation output schema Jan 27, 2026
@github-actions github-actions Bot added the binding/rust Issues for the Rust crate label Jan 27, 2026
@roeap roeap moved this to In review in delta-rust Jan 27, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented Jan 27, 2026

Codecov Report

❌ Patch coverage is 81.33047% with 87 lines in your changes missing coverage. Please review.
✅ Project coverage is 76.21%. Comparing base (ffb794b) to head (d0bdc87).
⚠️ Report is 2 commits behind head on main.

Files with missing lines Patch % Lines
...rates/core/src/delta_datafusion/data_validation.rs 82.45% 67 Missing and 13 partials ⚠️
crates/core/src/delta_datafusion/logical.rs 0.00% 5 Missing ⚠️
crates/core/src/operations/write/execution.rs 60.00% 1 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4132      +/-   ##
==========================================
+ Coverage   76.18%   76.21%   +0.03%     
==========================================
  Files         164      164              
  Lines       45024    45446     +422     
  Branches    45024    45446     +422     
==========================================
+ Hits        34300    34638     +338     
- Misses       9096     9173      +77     
- Partials     1628     1635       +7     

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

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Comment on lines +278 to +281
to_datafusion_expr(
&Expression::Column(col.clone()),
&delta_kernel::schema::DataType::BOOLEAN,
)
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

we run this through kernel conversion since field access is a bit cumbersome to resolve on the DF side and its already handled there.

Comment on lines +691 to +695
// DataType::List(child) | DataType::LargeList(child) => {
// let mut child_path = current_path.clone();
// child_path.push("element".to_string());
// collect_non_nullable_fields_recursive(child, child_path, non_nullable_paths);
// }
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

por que?

If this code is meant to be implemented later, I would rather see a todo!()

Signed-off-by: Robert Pack <[email protected]>
@rtyler rtyler enabled auto-merge (rebase) January 27, 2026 15:23
@rtyler rtyler merged commit 0ef1b1f into delta-io:main Jan 27, 2026
26 checks passed
@github-project-automation github-project-automation Bot moved this from In review to Done in delta-rust Jan 27, 2026
@roeap roeap deleted the feat/nullability-asserts branch January 27, 2026 15:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

binding/rust Issues for the Rust crate

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants