Repository navigation
Conversation
Signed-off-by: Daniel King <dan@spiraldb.com>
This was referenced Nov 12, 2026
Merging this PR will not alter performance2 warnings
Comparing Footnotes
|
Signed-off-by: Daniel King <dan@spiraldb.com>
Signed-off-by: Daniel King <dan@spiraldb.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
DataFusion fragments that Vortex cannot execute natively can now run inside a Vortex expression tree through a typed, process-local
df_expressionScalarFn. The wrapper preserves DF result types, nulls, Arrow field metadata, runtime join-map state, and evaluation errors; it exports referenced inputs and cannot be serialized. Callbacks containing higher-order functions retain the full original input layout to preserve parameter indices.The public API accepts synchronous, non-volatile, static physical expressions. Live filters are handled through snapshots in the stacked integration. Unsupported Vortex result types, including decimal outputs whose Arrow coefficients need not fit the declared precision, remain in DF; decimal intermediates inside a representable result are allowed. An internal Boolean-only advisory mode retains rows on optional-filter evaluation failure; exact evaluation always returns errors.
Focused tests cover nullable single/composite hash lookups, a real DF-created dense ArrayMap, invalid column bindings, typed projections, scalar row counts, wrapping arithmetic, rejected volatile/live expressions, and a registered Boolean extension's inferred dtype and executed values. These eight shim cases pass within the stacked expression check:
cargo +nightly-2026-04-16 test --locked -p vortex-datafusion --lib df_expression --no-default-features(16 cases total, 0.06s). Additional stacked tests check UDF-visible fields/scalar shape, lambda parameter bindings, and DF-owned CASE projection rewrites. Formatting uses CI-pinned nightly-2026-09-10.Supersedes the membership-only #11426. @danking please review.
AI assistance: prepared with Codex and reviewed in the designated Codex review chat.
Stacked converter integration: #11432.