Expand description
Query rewriting framework
This module provides a general-purpose framework for transforming function calls into equivalent predicate expressions at compile time. The framework enables:
- Full predicate pushdown to storage
- Index utilization
- Extensible plugin architecture for adding new rewrite rules
§Architecture
The framework consists of:
- RewriteRule trait: Interface for implementing rewrite transformations
- RewriteRegistry: Global registry of all rewrite rules
- ExpressionWalker: Traverses expression trees and applies rules
- RewriteContext: Contextual information during rewriting
§Example Usage
ⓘ
use uni_query::rewrite::rewrite_query;
// Rewrite a complete query
let rewritten = rewrite_query(query)?;§Adding New Rules
See rules/README.md for a guide on implementing custom rewrite rules.
Structs§
- Rewrite
Config - Configuration options for query rewriting
- Rewrite
Context - Contextual information available during query rewriting
- Rewrite
Stats - Statistics collected during rewriting
- Rule
Stats - Per-rule statistics