MCPcopy Create free account
hub / github.com/MaterializeInc/materialize / optimize

Method optimize

src/adapter/src/optimize.rs:177–198  ·  view source on GitHub ↗

Runs the full one-shot optimization pipeline end-to-end: 1. HIR ⇒ MIR lowering and local MIR optimization, 2. timestamp resolution, 3. global MIR optimization, MIR ⇒ LIR lowering, and global LIR optimization. The pipeline shape is identical for both variants; only the concrete (statement-specific) plan types differ, so the steps are shared via [`optimize_oneshot`].

(
        &mut self,
        raw_expr: HirRelationExpr,
        timestamp_ctx: TimestampContext,
        session: &dyn SessionMetadata,
        stats: Box<dyn StatisticsOracle>,
    )

Source from the content-addressed store, hash-verified

175 /// (statement-specific) plan types differ, so the steps are shared via
176 /// [`optimize_oneshot`].
177 pub fn optimize(
178 &mut self,
179 raw_expr: HirRelationExpr,
180 timestamp_ctx: TimestampContext,
181 session: &dyn SessionMetadata,
182 stats: Box<dyn StatisticsOracle>,
183 ) -> Result<PeekGlobalLirPlan, OptimizerError> {
184 match self {
185 PeekOptimizer::Select(optimizer) => {
186 let plan = optimize_oneshot(optimizer, raw_expr, |local_mir_plan| {
187 local_mir_plan.resolve(timestamp_ctx, session, stats)
188 })?;
189 Ok(PeekGlobalLirPlan::Select(plan))
190 }
191 PeekOptimizer::CopyTo(optimizer) => {
192 let plan = optimize_oneshot(optimizer, raw_expr, |local_mir_plan| {
193 local_mir_plan.resolve(timestamp_ctx, session, stats)
194 })?;
195 Ok(PeekGlobalLirPlan::CopyTo(plan))
196 }
197 }
198 }
199
200 /// Consumes `self`, returning the inner [`peek::Optimizer`] if this is the
201 /// `SELECT`/`EXPLAIN` path and `None` otherwise.

Callers 4

catch_unwind_optimizeMethod · 0.45
optimize_mir_localFunction · 0.45
optimize_mir_constantFunction · 0.45

Calls 3

optimize_oneshotFunction · 0.85
SelectClass · 0.85
resolveMethod · 0.45

Tested by

no test coverage detected