From d9c5d5657e2a0b6a3473d95ee693acd83d928df5 Mon Sep 17 00:00:00 2001 From: Jian Qiu Date: Fri, 20 Jun 2025 16:06:27 +0800 Subject: [PATCH] fix: task filter by owner sql revisit (#22746) Co-authored-by: Qiu Jian --- pkg/cloudcommon/db/db_dispatcher.go | 9 +++++---- pkg/cloudcommon/db/taskman/tasks.go | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/pkg/cloudcommon/db/db_dispatcher.go b/pkg/cloudcommon/db/db_dispatcher.go index d05aff1a83..341e081b06 100644 --- a/pkg/cloudcommon/db/db_dispatcher.go +++ b/pkg/cloudcommon/db/db_dispatcher.go @@ -281,6 +281,11 @@ func listItemQueryFiltersRaw( } } + q, err = ListItemFilter(manager, ctx, q, userCred, query) + if err != nil { + return nil, errors.Wrap(err, "ListItemFilter") + } + // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX // TURN ON automatic filter by column name, ONLY if query key starts with @!!!! // example: @name=abc&@city=111 @@ -312,10 +317,6 @@ func listItemQueryFiltersRaw( return nil, errors.Wrap(err, "applyListItemsGeneralJointFilters") } } - q, err = ListItemFilter(manager, ctx, q, userCred, query) - if err != nil { - return nil, errors.Wrap(err, "ListItemFilter") - } if !useRawQuery { // Specifically for joint resource, these filters will exclude diff --git a/pkg/cloudcommon/db/taskman/tasks.go b/pkg/cloudcommon/db/taskman/tasks.go index 9bf716938f..11fa5d2106 100644 --- a/pkg/cloudcommon/db/taskman/tasks.go +++ b/pkg/cloudcommon/db/taskman/tasks.go @@ -173,7 +173,7 @@ func (manager *STaskManager) FilterByOwner(ctx context.Context, q *sqlchemy.SQue taskQ = taskQ.Snapshot() taskQ = manager.SProjectizedResourceBaseManager.FilterByOwner(ctx, taskQ, man, userCred, owner, scope) if taskQ.IsAltered() { - taskSubQ := taskQ.Distinct().SubQuery() + taskSubQ := taskQ.SubQuery() q = q.Join(taskSubQ, sqlchemy.Equals(q.Field("id"), taskSubQ.Field("task_id"))) }