Skip to main content

Module predicate

Module predicate 

Source
Expand description

Predicate analyzer — spec §10.9.

Structured analysis of Polydat boolean expressions used as filter predicates. Output is PredicateInfo — consumed by the optimizer’s R5 (per-axis filter pushdown) and the deferred R8 / R9 / R10 rules.

The analyzer operates on the predicate string (the form carried by crate::iteration::comprehension::ast::Comprehension::Filter). A future revision may take a pre-parsed PolydatExpr; for the initial implementation, recognizers walk the source text and match the §10.9.5 pattern catalog.

§Module layout

  • infoPredicateInfo and supporting enums.
  • coordsetCoordSet carrying per-coord discrete / continuous classification.
  • recognizers — the §10.9.5 pattern catalog.
  • analyzer — entry point + dispatch.

Re-exports§

pub use analyzer::analyze;
pub use coordset::CoordInfo;
pub use coordset::CoordKind;
pub use coordset::CoordSet;
pub use info::Determinism;
pub use info::Factorization;
pub use info::Monotonicity;
pub use info::OpaqueReason;
pub use info::PerAxisMap;
pub use info::PredicateInfo;
pub use info::RangeConstraint;

Modules§

analyzer
Predicate analyzer entry point — spec §10.9.2.
coordset
Coordinate set with per-coord classification — spec §10.9.2.
info
PredicateInfo and supporting enums — spec §10.9.3.
recognizers
Pattern recognizer catalog — spec §10.9.5.