Skip to content

fix: give ClickHouse backfill jobs a typed table source - #612

Merged
zzylol merged 6 commits into
mainfrom
feat/clickhouse-population-contract
Sep 11, 2026
Merged

zzylol merged 6 commits into
mainfrom
feat/clickhouse-population-contract

Conversation

@zzylol

@zzylol zzylol commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

ClickHouse backfill jobs currently masquerade as Prometheus jobs using a reserved URL and always read the deployment's global table. Give each job an explicit ClickHouse database/table source, while keeping connection settings and credentials local to the deployment.

Before this PR, a Prometheus { url: "clickhouse://configured" } job selected the configured default table. After this PR, ClickHouse { database, table } selects the job's validated table and enters the existing backfill lifecycle. Reject jobs whose table differs from the installed materialization or whose database differs from the deployment database before reading. Update process fixtures and documentation; the old sentinel is removed.

Verification: both ClickHouse reader unit tests pass. The real compiled-publication mixed-DAG process E2E passes against ClickHouse, with a deliberately incorrect deployment default table to verify that the job table is used. The mismatch regression verifies that no reader is created; all five accelerator tests pass, including real reader and runtime tests. Source serde coverage includes ClickHouse. Existing unrelated compiler warnings remain.

This change does not yet add SQL population predicates, automatic materialization selection, streaming response decoding, or general catalog column/projection binding; those remain separate production-path work. No performance claim.

@zzylol
zzylol marked this pull request as ready for review September 10, 2026 23:50
@zzylol
zzylol merged commit b53f9dc 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