mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-26 18:42:49 +00:00
The cargo filter was applied only to the operated and attainment subqueries. The plan side selected targets by metric and dimension alone, and the FULL OUTER JOIN put every filtered-out key back as a row of zeros — ?categories=FERTILIZER returned all ten planned categories. planKeyFilter restricts targets to the selected categories (or container classes), reading ot.cargo_category for a station plan and ot.dimension_key otherwise. Values are whitelisted against the vocabulary and inlined, because the fragment is assembled into raw CTE text and the runner does not validate multiselect values. Two related grain leaks close with it: - planCountryFilter narrows a station plan to the chosen country. All seven station targets are Ethiopian, so the Djibouti view was listing 33 Ethiopian targets as stations that moved nothing. - planGrainFilter drops the plan entirely when origin, destination, train number or direction is set. No target carries a route, so the plan there was the whole corridor's target sitting beside one slice of its work, and the implement rate read as a miss that never happened. Fixes cargo-volume-performance, cargo-volume-by-station, trainset-performance and teu-performance together. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>