Expand description
Predicate Pushdown Framework
This module provides a clean, extensible architecture for predicate pushdown.
Each pushdown rule is self-contained and implements the PushdownRule trait.
§Adding a New Pushdown Rule
- Create a new struct implementing
PushdownRule - Register it in
PushdownRegistry::new() - Done!
§Example
ⓘ
pub struct MyCustomRule;
impl PushdownRule for MyCustomRule {
fn name(&self) -> &'static str { "my_custom_rule" }
fn try_convert(
&self,
expr: &ast::Expression,
ctx: &PushdownContext<'_>,
) -> PushdownResult {
// Check if this rule applies and convert
}
}Structs§
- Pushdown
Context - Context for pushdown operations
- Pushdown
Plan - Pushdown
Registry - Registry of all pushdown rules
Enums§
- Pushdown
Result - Result of a pushdown attempt
Traits§
- Pushdown
Rule - Trait for pushdown rules
Functions§
- registry
- Get the global pushdown registry
- try_
pushdown - Convenience function to try pushdown using the global registry
- try_
pushdown_ plan