Merge 'Disable index usage in DELETE because it does not work safely' from Jussi Saurio

Reviewed-by: Pere Diaz Bou <pere-altea@homail.com>

Closes #1715
This commit is contained in:
Jussi Saurio
2025-06-11 12:23:03 +03:00

View File

@@ -83,7 +83,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)?
@@ -92,13 +92,15 @@ fn optimize_delete_plan(plan: &mut DeletePlan, schema: &Schema) -> Result<()> {
return Ok(());
}
let _ = optimize_table_access(
&mut plan.table_references,
&schema.indexes,
&mut plan.where_clause,
&mut plan.order_by,
&mut None,
)?;
// FIXME: don't use indexes for delete right now because it's buggy. See for example:
// https://github.com/tursodatabase/limbo/issues/1714
// let _ = optimize_table_access(
// &mut plan.table_references,
// &schema.indexes,
// &mut plan.where_clause,
// &mut plan.order_by,
// &mut None,
// )?;
Ok(())
}