fetch_runs: feasible литералом, чтобы работали частичные индексы топов
С bound-параметром SQLite не может применить partial index (WHERE feasible=1) на этапе подготовки запроса — топ-15 продолжал сканировать сотни тысяч строк. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -178,8 +178,10 @@ def fetch_runs(
|
||||
query = "SELECT * FROM runs WHERE 1=1"
|
||||
params: list = []
|
||||
if feasible is not None:
|
||||
query += " AND feasible = ?"
|
||||
params.append(int(feasible))
|
||||
# ЛИТЕРАЛ, не параметр: частичные индексы (… WHERE feasible=1) SQLite
|
||||
# применяет только когда условие видно при подготовке запроса; с
|
||||
# `feasible = ?` топ-15 сканировал сотни тысяч строк (~1.2с)
|
||||
query += f" AND feasible = {int(feasible)}"
|
||||
if min_efficiency is not None:
|
||||
query += " AND efficiency >= ?"
|
||||
params.append(min_efficiency)
|
||||
|
||||
Reference in New Issue
Block a user