require &mut ProgramBuilder argument in optimize_plan()

this will be used for ephemeral plan construction for UPDATE in
a later commit.
This commit is contained in:
Jussi Saurio
2025-10-14 12:18:13 +03:00
parent 29770382f9
commit bc80ac1754
4 changed files with 9 additions and 5 deletions

View File

@@ -54,7 +54,7 @@ pub fn translate_delete(
result_columns,
connection,
)?;
optimize_plan(&mut delete_plan, resolver.schema)?;
optimize_plan(&mut program, &mut delete_plan, resolver.schema)?;
let Plan::Delete(ref delete) = delete_plan else {
panic!("delete_plan is not a DeletePlan");
};

View File

@@ -115,7 +115,11 @@ fn optimize_delete_plan(plan: &mut DeletePlan, schema: &Schema) -> Result<()> {
Ok(())
}
fn optimize_update_plan(plan: &mut UpdatePlan, schema: &Schema) -> Result<()> {
fn optimize_update_plan(
program: &mut ProgramBuilder,
plan: &mut UpdatePlan,
schema: &Schema,
) -> Result<()> {
lift_common_subexpressions_from_binary_or_terms(&mut plan.where_clause)?;
if let ConstantConditionEliminationResult::ImpossibleCondition =
eliminate_constant_conditions(&mut plan.where_clause)?

View File

@@ -43,7 +43,7 @@ pub fn translate_select(
query_destination,
connection,
)?;
optimize_plan(&mut select_plan, resolver.schema)?;
optimize_plan(&mut program, &mut select_plan, resolver.schema)?;
let num_result_cols;
let opts = match &select_plan {
Plan::Select(select) => {

View File

@@ -59,7 +59,7 @@ pub fn translate_update(
connection: &Arc<crate::Connection>,
) -> crate::Result<ProgramBuilder> {
let mut plan = prepare_update_plan(&mut program, resolver.schema, body, connection, false)?;
optimize_plan(&mut plan, resolver.schema)?;
optimize_plan(&mut program, &mut plan, resolver.schema)?;
let opts = ProgramBuilderOpts {
num_cursors: 1,
approx_num_insns: 20,
@@ -86,7 +86,7 @@ pub fn translate_update_for_schema_change(
}
}
optimize_plan(&mut plan, resolver.schema)?;
optimize_plan(&mut program, &mut plan, resolver.schema)?;
let opts = ProgramBuilderOpts {
num_cursors: 1,
approx_num_insns: 20,