desugar_pushdown
Stable function · Load-time lowering and templates
Tier: stable · Kind: function · Topic: Load-time lowering and templates
| Julia | TypeScript | Python | Rust | Go |
|---|---|---|---|---|
| not exported | not exported | desugar_pushdown | desugar_pushdown | not exported |
Julia
Julia does not export this function.
TypeScript
TypeScript does not export this function.
Python
desugar_pushdown(esm: dict, model_name: str | None = None) -> dict
Recognise the projection-pushdown pattern in esm’s named model and,
when it matches, return a NEW document with the four constructs desugared
in (a kind:"derived" index set, a distinct:true overlap-gated
producer aggregate, a member_factor const parameter, and an
inspectable gated_select record) plus the reduction axis of the
matched E / A / conc nodes re-pointed onto the generated derived set.
Returns esm UNCHANGED (the same object) when no model is selected, the
pattern does not match, or the reduction’s semiring is not the additive
(+, 0) monoid (the soundness guard).
IDEMPOTENT: a document already carrying the provenance record
metadata.x_esd.pushdown is returned unchanged — the generated
constructs would otherwise re-match and stack a second
pd_support__pd_support__… layer.
Rust
pub fn desugar_pushdown<'a>(esm: &'a Value, model_name: Option<&str>) -> Result<Cow<'a, Value>, PushdownRewriteError>
Recognise the projection-pushdown pattern in esm’s named model and, when
it matches, return a NEW document (Cow::Owned) with the four constructs
desugared in (a kind:"derived" index set, a distinct:true overlap-gated
producer aggregate, a member_factor const parameter, and an inspectable
gated_select record) plus the reduction axis of the matched E / A / conc
nodes re-pointed onto the generated derived set. Returns the input
UNCHANGED (Cow::Borrowed) when no model is selected, the pattern does not
match, or the reduction’s semiring is not the additive (+, 0) monoid
(the soundness guard).
IDEMPOTENT: a document already carrying the provenance record
metadata.x_esd.pushdown is returned unchanged — the generated constructs
would otherwise re-match and stack a second pd_support__pd_support__…
layer.
Go
Go does not export this function.