From 75bbda1dad3dd1e12dfee32354ba669fa47ac055 Mon Sep 17 00:00:00 2001 From: Zev Benjamin Date: Wed, 24 Apr 2013 10:47:01 -0400 Subject: [PATCH] Add lower message id bound when marking messages as read for the mobile unread count hack Having a message ID range significantly improves the query performance because the number of messages Postgres has to consider is much smaller. (imported from commit 9b007457712f1c1502d526abea1b6fd742bd911d) --- zephyr/views.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/zephyr/views.py b/zephyr/views.py index c39db7aa2f..278bccc768 100644 --- a/zephyr/views.py +++ b/zephyr/views.py @@ -521,6 +521,7 @@ def update_pointer_backend(request, user_profile, if pointer <= user_profile.pointer: return json_success() + prev_pointer = user_profile.pointer user_profile.pointer = pointer user_profile.save(update_fields=["pointer"]) @@ -530,6 +531,7 @@ def update_pointer_backend(request, user_profile, # this is a shim that will mark as read any messages up until the # pointer move UserMessage.objects.filter(user_profile=user_profile, + message__id__gt=prev_pointer, message__id__lte=pointer, flags=~UserMessage.flags.read) \ .update(flags=F('flags').bitor(UserMessage.flags.read))