diff --git a/core/translate/select.rs b/core/translate/select.rs index 0c9ebf2de..7c9d29ea5 100644 --- a/core/translate/select.rs +++ b/core/translate/select.rs @@ -645,6 +645,7 @@ fn count_plan_required_cursors(plan: &SelectPlan) -> usize { Search::RowidEq { .. } => 1, Search::Seek { index, .. } => 1 + index.is_some() as usize, } + Operation::IndexMethodQuery(_) => 1, } + if let Table::FromClauseSubquery(from_clause_subquery) = &t.table { count_plan_required_cursors(&from_clause_subquery.plan) } else { @@ -664,6 +665,7 @@ fn estimate_num_instructions(select: &SelectPlan) -> usize { .map(|t| match &t.op { Operation::Scan { .. } => 10, Operation::Search(_) => 15, + Operation::IndexMethodQuery(_) => 15, } + if let Table::FromClauseSubquery(from_clause_subquery) = &t.table { 10 + estimate_num_instructions(&from_clause_subquery.plan) } else { @@ -687,6 +689,7 @@ fn estimate_num_labels(select: &SelectPlan) -> usize { .map(|t| match &t.op { Operation::Scan { .. } => 3, Operation::Search(_) => 3, + Operation::IndexMethodQuery(_) => 3, } + if let Table::FromClauseSubquery(from_clause_subquery) = &t.table { 3 + estimate_num_labels(&from_clause_subquery.plan) } else {