Summary
L3 (L2→L3 converter) gap. Grouping by the metric name — sum by (__name__)(...) — over a union fails at column resolution because the usage-derived schema never materializes a __name__ column.
Corpus impact
4 rejections. Error variant: LoweringError::Convert (column resolution).
Reproduction
sum by (__name__)(metric_total{env="1"} or rate(metric_total{env="2"}[5m]))
L2→L3 conversion failed: column resolution failed:
column __name__ not found in schema (have: ["ts", "value", "env"])
Analysis
The Binder seeds the usage-derived schema from referenced labels, producing [ts, value, env]. __name__ (the internal metric-name label) is never added as a column, so by (__name__) can't resolve positionally at L3.
Distinct from #39 (without(...) can't enumerate the label complement): this is grouping BY an implicit label that exists on every series but isn't surfaced into the schema. Fix likely lives in the Binder / usage-derived schema seeding (crates/core/src/intent_algebra/binder.rs).
Summary
L3 (L2→L3 converter) gap. Grouping by the metric name —
sum by (__name__)(...)— over a union fails at column resolution because the usage-derived schema never materializes a__name__column.Corpus impact
4 rejections. Error variant:
LoweringError::Convert(column resolution).Reproduction
Analysis
The Binder seeds the usage-derived schema from referenced labels, producing
[ts, value, env].__name__(the internal metric-name label) is never added as a column, soby (__name__)can't resolve positionally at L3.Distinct from #39 (
without(...)can't enumerate the label complement): this is grouping BY an implicit label that exists on every series but isn't surfaced into the schema. Fix likely lives in the Binder / usage-derived schema seeding (crates/core/src/intent_algebra/binder.rs).