diff --git a/internal/repository/jobQuery.go b/internal/repository/jobQuery.go index 72951746..efa1c155 100644 --- a/internal/repository/jobQuery.go +++ b/internal/repository/jobQuery.go @@ -211,7 +211,8 @@ func BuildWhereClause(filter *model.JobFilter, query sq.SelectBuilder) sq.Select } } if filter.Shared != nil { - query = query.Where("job.shared = ?", *filter.Shared) + // Inline literal value so SQLite can match partial indexes (see above). + query = query.Where(fmt.Sprintf("job.shared = '%s'", *filter.Shared)) } if filter.Project != nil { query = buildStringCondition("job.project", filter.Project, query) @@ -229,7 +230,8 @@ func BuildWhereClause(filter *model.JobFilter, query sq.SelectBuilder) sq.Select query = buildIntCondition("job.num_hwthreads", filter.NumHWThreads, query) } if filter.ArrayJobID != nil { - query = query.Where("job.array_job_id = ?", *filter.ArrayJobID) + // Inline literal value so SQLite can match partial indexes (see above). + query = query.Where(fmt.Sprintf("job.array_job_id = %d", *filter.ArrayJobID)) } if filter.StartTime != nil { query = buildTimeCondition("job.start_time", filter.StartTime, query) diff --git a/internal/repository/migrations/sqlite3/13_status-covering-indexes.down.sql b/internal/repository/migrations/sqlite3/13_status-covering-indexes.down.sql index a81f2179..cc95b322 100644 --- a/internal/repository/migrations/sqlite3/13_status-covering-indexes.down.sql +++ b/internal/repository/migrations/sqlite3/13_status-covering-indexes.down.sql @@ -10,3 +10,5 @@ CREATE INDEX IF NOT EXISTS jobs_cluster_jobstate_user CREATE INDEX IF NOT EXISTS jobs_cluster_jobstate_project ON job (cluster, job_state, project); + + PRAGMA optimize; diff --git a/internal/repository/migrations/sqlite3/14_running-partial-indexes.down.sql b/internal/repository/migrations/sqlite3/14_running-partial-indexes.down.sql index 6a831512..39882baf 100644 --- a/internal/repository/migrations/sqlite3/14_running-partial-indexes.down.sql +++ b/internal/repository/migrations/sqlite3/14_running-partial-indexes.down.sql @@ -3,3 +3,5 @@ DROP INDEX IF EXISTS jobs_running_user_stats; DROP INDEX IF EXISTS jobs_running_project_stats; DROP INDEX IF EXISTS jobs_running_subcluster_stats; + +PRAGMA optimize;