oxirs-arq 0.2.4

Jena-style SPARQL algebra with extension points and query optimization
Documentation
//! Optimizer Configuration
//!
//! Configuration structures and settings for query optimization.

/// Query optimizer configuration
#[derive(Debug, Clone)]
pub struct OptimizerConfig {
    /// Enable join reordering
    pub join_reordering: bool,
    /// Enable filter pushdown
    pub filter_pushdown: bool,
    /// Enable projection pushdown
    pub projection_pushdown: bool,
    /// Enable constant folding
    pub constant_folding: bool,
    /// Enable dead code elimination
    pub dead_code_elimination: bool,
    /// Enable cost-based optimization
    pub cost_based: bool,
    /// Maximum optimization passes
    pub max_passes: usize,
}

impl Default for OptimizerConfig {
    fn default() -> Self {
        Self {
            join_reordering: true,
            filter_pushdown: true,
            projection_pushdown: true,
            constant_folding: true,
            dead_code_elimination: true,
            cost_based: true,
            max_passes: 10,
        }
    }
}