From 58c0c79f72be42bd6732d98f0cf9c046aa9407bf Mon Sep 17 00:00:00 2001 From: Christoph Kluge Date: Fri, 13 Mar 2026 12:03:06 +0100 Subject: [PATCH] handle single job state queries as simple stringquery - this will improve index usage for single state queries --- internal/repository/jobQuery.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/internal/repository/jobQuery.go b/internal/repository/jobQuery.go index 0c457ec2..534a8096 100644 --- a/internal/repository/jobQuery.go +++ b/internal/repository/jobQuery.go @@ -197,11 +197,17 @@ func BuildWhereClause(filter *model.JobFilter, query sq.SelectBuilder) sq.Select query = buildStringCondition("job.cluster_partition", filter.Partition, query) } if filter.State != nil { - states := make([]string, len(filter.State)) - for i, val := range filter.State { - states[i] = string(val) + if len(filter.State) == 1 { + singleStat := string(filter.State[0]) + singleStateQuery := model.StringInput{Eq: &singleStat} + query = buildStringCondition("job.job_state", &singleStateQuery, query) + } else { + states := make([]string, len(filter.State)) + for i, val := range filter.State { + states[i] = string(val) + } + query = query.Where(sq.Eq{"job.job_state": states}) } - query = query.Where(sq.Eq{"job.job_state": states}) } if filter.Shared != nil { query = query.Where("job.shared = ?", *filter.Shared)