Repository navigation
feat(datafusion): support lateral collection generators - #1292
Merged
Merged
Conversation
This was referenced Nov 1, 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.
Purpose
Closes #1284.
DataFusion rejects LATERAL VIEW. A correlated UNNEST subquery is insufficient because the native physical planner cannot execute the projected outer reference.
Brief change log
Tests
Retain a permanent integration regression that uses comment DDL, binary casts, regex operators, lateral generators, scalar functions and constant CALL arguments together, protecting composition of their shared SQL hooks.
Regression coverage: Array/Map values, NULL and empty collections, NULL elements, empty parent inputs, map defaults, quoted and explicit aliases, joins/duplicate rows, chained generators, UNION, dictionary collection/value nulls, and default-alias ORDER/LIMIT/OFFSET/QUALIFY boundaries.
Reproduced the missing behavior on the original main before implementation.
Passed
cargo test --locked -p paimon-datafusion --all-targets -- --test-threads=4on this independent branch with Rust 1.95.0,TZ=UTCandRUST_MIN_STACK=16777216.Passed
cargo +1.98.0 clippy --locked --no-deps -p paimon-datafusion --all-targets -- -D warnings, formatting andgit diff --check.Reviewed repeatedly for SQL semantics, parser/type boundaries and regression quality; fixed the discovered alias, set-operation and default-column parsing cases.
Integration validation: combined with feat(datafusion): support table and column comment DDL #1287, feat(datafusion): support binary casts and byte widths #1288, feat(datafusion): support RLIKE and REGEXP operators #1289, feat(datafusion): add common scalar compatibility functions #1291, feat(datafusion): evaluate immutable constant CALL arguments #1290 in a temporary checkout; the full DataFusion suite, a regression using all six extensions together, Clippy and formatting passed. These PRs are independently based on main; overlapping parser/registration hooks need normal conflict resolution when merged sequentially.
API and Format
Adds SQLContext SQL capabilities. No storage-format or Rust public API changes.
Documentation
Documented syntax, type/null/error behavior and supported limits in
docs/src/sql.md.