uqa_planner/filter_pushdown/
context.rs1use uqa_sql::{
10 binding::correlation::CorrelationContext,
11 catalog::{analysis::AnalysisCatalog, resolution::RelationNameResolution},
12 plan::UnifiedPlan,
13 semantics::volatility::VolatilityCatalog,
14 SQLError,
15};
16
17#[derive(Clone, Copy)]
18pub struct FilterPushdownContext<'a> {
19 pub volatility: &'a dyn VolatilityCatalog,
20 pub correlation: CorrelationContext<'a>,
21 pub optimizer: &'a dyn Fn(UnifiedPlan) -> Result<UnifiedPlan, SQLError>,
22}
23
24#[derive(Clone, Copy)]
25pub struct FilterPushdownScope<'a> {
26 pub catalog: &'a dyn AnalysisCatalog,
27 pub resolution: &'a RelationNameResolution,
28 pub is_visible_cte: &'a dyn Fn(&str) -> bool,
29}