Expand description
Expression split utilities for partition rules.
This module provides a conservative way to split one partition expression R
by a split expression S into:
left = R AND Sright = R AND NOT(S)
The implementation intentionally reuses existing partition components
(Collider, simplify, PartitionChecker) and degrades to no-split when an
unsupported shape/type is encountered.
Structsยง
- Collected
Conjunction ๐ - Lower
Bound ๐ - Upper
Bound ๐
Enumsยง
Functionsยง
- atom_
col_ ๐op_ val - Extracts
(column, op, value)from a canonicalized atomic expression. - collect_
and_ ๐atoms - Flattens an expression into atomic terms when it is a pure conjunction tree.
- collect_
conjunction_ ๐bounds - Collects per-column bounds and passthrough atoms from a pure
ANDtree. - discrete_
value_ ๐index - fold_
and_ ๐exprs - Folds a list of expressions into a left-associated AND tree.
Returns
Noneif the input list is empty. - is_
atomic_ ๐range_ expr - Returns whether
expris an atomiccolumn op valuerange predicate. - is_
domain_ ๐max_ value - is_
empty_ ๐and_ conjunction - Detects whether a pure conjunction expression is definitely unsatisfiable.
- is_
infinite_ ๐value - is_
nan_ ๐value - is_
strictly_ ๐greater_ than_ domain_ max - is_
supported_ ๐value - negate_
split_ expr - Rewrites
NOT(expr)into an equivalentPartitionExprwithout introducing a unary NOT node. - prefer_
lower ๐ - prefer_
upper ๐ - push_
unique_ ๐expr - simplify_
and_ ๐bounds - Simplifies conjunction-only range predicates by keeping the tightest bounds per column.
- split_
partition_ expr - Splits one partition expression with a split predicate.
- update_
lower_ ๐bound - update_
upper_ ๐bound - validate_
atomic ๐ - validate_
base_ ๐expr_ shape - Validates that
base_exprstays within the range-only split contract. - validate_
split_ ๐expr_ shape - Validates that
split_expris a single atomic range predicate. - validate_
supported_ expr