Two gaps surfaced by pointbreak Phase 4b's AST-driven rule engine. Details + deletion triggers in the mountainash-central backlog entry:
01.principles/mountainash/h.backlog/active/expression-ast-introspection-and-literal-add.md (item 226)
- Public expression-AST field-reference introspection — pointbreak needs the set of source-column names an expression references; only the private
validation/checks.py::_iter_child_nodes walker exists. pointbreak re-implemented it locally (collect_field_references, shim). Proposed public API: mountainash.expressions.introspect.collect_field_references(expr) -> set[str].
- NEW ibis compile bug —
ma.lit(str) + col(...) (literal-first) crashes at ibis-compile (ibis.literal(...).__add__(Deferred) validation failure); the reverse col(...) + ma.lit(...) compiles fine. pointbreak worked around it with a synthetic prefix column (shim). Fix __radd__/left-literal handling so lit + Deferred compiles symmetrically.
Refs pointbreak P4B-D5 (B-1) + B-5.
Two gaps surfaced by pointbreak Phase 4b's AST-driven rule engine. Details + deletion triggers in the mountainash-central backlog entry:
01.principles/mountainash/h.backlog/active/expression-ast-introspection-and-literal-add.md(item 226)validation/checks.py::_iter_child_nodeswalker exists. pointbreak re-implemented it locally (collect_field_references, shim). Proposed public API:mountainash.expressions.introspect.collect_field_references(expr) -> set[str].ma.lit(str) + col(...)(literal-first) crashes at ibis-compile (ibis.literal(...).__add__(Deferred)validation failure); the reversecol(...) + ma.lit(...)compiles fine. pointbreak worked around it with a synthetic prefix column (shim). Fix__radd__/left-literal handling solit + Deferredcompiles symmetrically.Refs pointbreak P4B-D5 (B-1) + B-5.