Problem
filter { tech == wind } evaluates wind as identifier/column lookup, not categorical literal.
Result: filter resolves false/None and drops all rows.
This conflicts with spec §9:
- Bare RHS identifier (e.g.,
thermal) should be categorical string value.
Repro
Minimal data:
KDL:
set "idx_wind" {
in "idx"
filter { tech == wind }
}
Observed: subset size = 0
Expected: subset size > 0 (rows where tech == "wind")
Scope
crates/arco-kdl/src/semantic/sets.rs
crates/arco-kdl/src/compile/data_tables.rs (keep behavior aligned for param filters)
Acceptance criteria
- Bare RHS identifiers in comparisons behave as categorical literals.
- Quoted RHS strings still work.
- Numeric comparisons unchanged.
- Add regression tests for set + param filters.
Problem
filter { tech == wind }evaluateswindas identifier/column lookup, not categorical literal.Result: filter resolves false/None and drops all rows.
This conflicts with spec §9:
thermal) should be categorical string value.Repro
Minimal data:
tech wind solar windKDL:
Observed: subset size = 0
Expected: subset size > 0 (rows where
tech == "wind")Scope
crates/arco-kdl/src/semantic/sets.rscrates/arco-kdl/src/compile/data_tables.rs(keep behavior aligned for param filters)Acceptance criteria