feat(clickhouse): read tuple fields inside query DAGs - #655
Merged
Merged
Conversation
zzylol
marked this pull request as ready for review
September 11, 2026 15:20
zzylol
changed the base branch from
feat/clickhouse-collection-values
to
main
September 11, 2026 15:23
…-values # Conflicts: # control_plane/src/query_plan/clickhouse_exact.rs # data_plane/src/query_engines/asap_clickhouse_query_engine/relational_adapter.rs
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.
An exact ClickHouse branch can return
Array(Tuple(...)), but the backend currently rejects the Tuple before a parent field operator can use it. This change keeps Tuple values in shared internal storage and executes the existingasap_struct_fieldexpression using the Planner’s declared Struct fields.Native Tuple metadata must match field order, types and nullability. Named fields retain their names; anonymous fields require explicit one-based names in the shared schema. Map and Tuple metadata reuse one nested type-argument parser. Missing array elements use the declared Tuple field defaults, including nullable fields.
Validation: 31 ClickHouse data-plane tests and 6 compiler exact-renderer tests pass on the current stack with the actual sketchlib #139 dependency. Native ClickHouse probes verify internal array-shaped Tuple transport and missing-element defaults. Depends on #653.
This adds internal collection composition, not a new acceleration result. Direct collection output, quoted Tuple field names, nullable Tuple containers, and lambda execution remain unsupported and fall back. No parallel schema or query-specific execution representation is introduced.