Skip to content

fix(expr): ignore untyped NULL metadata in VALUES - #89

Merged
osipovartem merged 1 commit into
embucket-sync-df55.0.0from
values-null-metadata
Sep 13, 2026
Merged

fix(expr): ignore untyped NULL metadata in VALUES#89
osipovartem merged 1 commit into
embucket-sync-df55.0.0from
values-null-metadata

Conversation

@osipovartem

@osipovartem osipovartem commented Sep 13, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • exclude untyped NULL expressions from VALUES field-metadata reconciliation
  • preserve metadata inferred from concrete values regardless of whether NULL appears first or last
  • retain nullability and existing rejection of conflicting concrete metadata

Why

Untyped NULL has no concrete Arrow type or field metadata. Comparing its empty metadata with metadata-bearing expressions incorrectly rejects otherwise valid VALUES columns. This surfaced in Rustice when ARRAY wire-type metadata was preserved for non-NULL array expressions.

The change is planning-only and removes metadata work for NULL expressions; it adds no per-row execution cost.

Validation

  • cargo +1.95.0 test -p datafusion-expr (252 unit tests; 55 doctests passed, 3 ignored)
  • cargo +1.95.0 clippy -p datafusion-expr --all-targets -- -D warnings
  • cargo +1.95.0 fmt --all -- --check

@osipovartem
osipovartem merged commit 498d805 into embucket-sync-df55.0.0 Sep 13, 2026
18 of 20 checks passed
@osipovartem
osipovartem deleted the values-null-metadata branch September 13, 2026 21:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant