From e0ca0cf8af7e7c55e45cb868d31736289e7a33f3 Mon Sep 17 00:00:00 2001 From: Jussi Saurio Date: Mon, 18 Aug 2025 10:52:13 +0300 Subject: [PATCH] Enable access path optimizer for DELETE --- core/translate/optimizer/mod.rs | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/core/translate/optimizer/mod.rs b/core/translate/optimizer/mod.rs index e0b1c6b73..f2222975c 100644 --- a/core/translate/optimizer/mod.rs +++ b/core/translate/optimizer/mod.rs @@ -88,7 +88,7 @@ pub fn optimize_select_plan(plan: &mut SelectPlan, schema: &Schema) -> Result<() Ok(()) } -fn optimize_delete_plan(plan: &mut DeletePlan, _schema: &Schema) -> Result<()> { +fn optimize_delete_plan(plan: &mut DeletePlan, schema: &Schema) -> Result<()> { rewrite_exprs_delete(plan)?; if let ConstantConditionEliminationResult::ImpossibleCondition = eliminate_constant_conditions(&mut plan.where_clause)? @@ -97,15 +97,14 @@ fn optimize_delete_plan(plan: &mut DeletePlan, _schema: &Schema) -> Result<()> { return Ok(()); } - // FIXME: don't use indexes for delete right now because it's buggy. See for example: - // https://github.com/tursodatabase/turso/issues/1714 - // let _ = optimize_table_access( - // &mut plan.table_references, - // &schema.indexes, - // &mut plan.where_clause, - // &mut plan.order_by, - // &mut None, - // )?; + let _ = optimize_table_access( + schema, + &mut plan.table_references, + &schema.indexes, + &mut plan.where_clause, + &mut plan.order_by, + &mut None, + )?; Ok(()) }