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:
jze9
2026-07-08 05:05:51 +05:00
parent 4f0c38500b
commit b43885c6e1

View File

@@ -178,8 +178,10 @@ def fetch_runs(
query = "SELECT * FROM runs WHERE 1=1" query = "SELECT * FROM runs WHERE 1=1"
params: list = [] params: list = []
if feasible is not None: if feasible is not None:
query += " AND feasible = ?" # ЛИТЕРАЛ, не параметр: частичные индексы (… WHERE feasible=1) SQLite
params.append(int(feasible)) # применяет только когда условие видно при подготовке запроса; с
# `feasible = ?` топ-15 сканировал сотни тысяч строк (~1.2с)
query += f" AND feasible = {int(feasible)}"
if min_efficiency is not None: if min_efficiency is not None:
query += " AND efficiency >= ?" query += " AND efficiency >= ?"
params.append(min_efficiency) params.append(min_efficiency)