mirror of
https://github.com/aljazceru/turso.git
synced 2026-02-23 08:55:40 +01:00
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:
@@ -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");
|
||||
};
|
||||
|
||||
@@ -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)?
|
||||
|
||||
@@ -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) => {
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user