Skip to content

Streaming-subset completeness audit: every lowering rejection is now a product gap #27

Description

@FBumann

With the streaming engine as the only runtime lane (#26), every RelationalBuildError raised by lowering is a product limitation, not a routing event. Audit each rejection site and decide: keep as a documented language boundary, or implement.

Known list (grep raise RelationalBuildError in lowering.py):

  • ** operator — likely stays out (nonlinear); error message should suggest the epigraph/piecewise alternatives.
  • Custom Python helpers — stays out by design; the error already points to macros:.
  • where-comparisons on dimensions ("snapshot > 2") — implement: the dim ordinal is in the executor's dim tables; SPEC §6 documents the semantics; the eager oracle supports it. Probably the highest-value gap (time-windowed constraints).
  • Sum over absent dims of constant parts — keep (ambiguous under masks), but check the message quality.
  • Verify Backend router, vtype, shift(), and piecewise: blocks #19's vtype/piecewise:/shift execute end-to-end on the streaming engine at scale, not just at test size.

Definition of done: for each site either a differential test proving support, or a documented boundary with an actionable error message. ARCHITECTURE.md's language section updated accordingly.

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:engineLowering, IR, relational executor, the sink contractdecisionA question to be answered, not work to be done; closes by resolution

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions