Skip to content

feat(clickhouse): read tuple fields inside query DAGs - #655

Merged
zzylol merged 12 commits into
mainfrom
feat/clickhouse-tuple-values
Sep 11, 2026
Merged

zzylol merged 12 commits into
mainfrom
feat/clickhouse-tuple-values

Conversation

@zzylol

@zzylol zzylol commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

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 existing asap_struct_field expression 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.

@zzylol
zzylol marked this pull request as ready for review September 11, 2026 15:20
@zzylol
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
@zzylol
zzylol merged commit 5e85d75 into main Sep 11, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant