[PATCH 06/11] check distinct(user) based on just user_id

Stewart Smith stewart at linux.ibm.com
Fri Aug 10 18:01:01 AEST 2018

The logic to display the Check(s) on the patch list wants to really do a
DISTINCT(user_id,context) ORDER BY DATE query, but with Django that is
currently a bit Too Hard (at least for me).

But what we can do is from python just use the user_id rather than the
user object itself. Same functionality, no join or prefetching users.

This saves a couple of hundred queries on the linuxppc/list/ view and
makes loading it about 4x faster in terms of time spent in the db.

Signed-off-by: Stewart Smith <stewart at linux.ibm.com>
 patchwork/models.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/patchwork/models.py b/patchwork/models.py
index 15224ad69cfa..d356a6379ac3 100644
--- a/patchwork/models.py
+++ b/patchwork/models.py
@@ -539,7 +539,7 @@ class Patch(SeriesMixin, Submission):
         for check in self.check_set.all():
             ctx = check.context
-            user = check.user
+            user = check.user_id
             if user in unique and ctx in unique[user]:
                 # recheck condition - ignore the older result

More information about the Patchwork mailing list