Repository navigation
fix(embedding): preserve exact decimals in NULL predicates and true joins - #29
Merged
aunjgr merged 1 commit intoOct 9, 2026
Conversation
aunjgr
marked this pull request as ready for review
October 9, 2026 03:24
This was referenced Oct 9, 2026
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.
After #28, MO exact-decimal queries still hit two GPU consumer gaps:
IS NOT NULLcan send Decimal256's private STRUCT through an unsupported cuDF AST unary operation, and canonical TPC-H Q11/Q15/Q22 retainJOIN ON trueas unsupported DuckDB ANY_JOIN because exact preparation skips the ordinary optimizer.Materialize exact NULL predicates from the canonical top-level validity mask, using the existing task stream/resource and AST temporary-column owner. Lower literal TRUE joins to equal constant keys in the existing GPU join, retaining join kind, projection maps, mark binding, duplicate rows and empty-side outer NULLs. Private key columns remain outside public output. FALSE/NULL predicates retain rejection before readers or GPU work start. The numeric URI, capability mask and ABI-v1 layouts remain unchanged.
Validation at clean head
2a39339beb0c2312dc4b71fbdd472e822450637c, frozen Piximo, cuDF/RMM 26.08, RTX 3070:The joint MO result uses an explicitly marked development SDK. C still pins merged #28 and must advance only after this PR merges, then repeat merged-pin delivery checks. This is preparation/small-fixture evidence; SF1/SF10, lifecycle/resource baselines and performance acceptance remain PR D. No rollout gate is waived. Local validation used matching official NVIDIA 615.71.09 libraries in a temporary test launcher; host packages and shipped artifacts were unchanged. CI status is reported separately from these local passes.
Refs MO #28968, MO #28966. Contract and ownership map: docs/mo-exact-null-predicates.md.
Consumer integration is available as draft MO C #29757.