Barry Warsaw pushed to branch master at mailman / Mailman

Commits:
8413ae86 by Aurélien Bompard at 2015-11-22T22:06:00Z
Optimize the roster SQL query

Measured improvement: about 100x faster. (!)

Reformatting.

- - - - -


1 changed file:

- src/mailman/model/roster.py


Changes:

=====================================
src/mailman/model/roster.py
=====================================
--- a/src/mailman/model/roster.py
+++ b/src/mailman/model/roster.py
@@ -286,9 +286,11 @@ class Memberships:
     @dbconnection
     def _query(self, store):
         results = store.query(Member).filter(
-            or_(Member.user_id == self._user.id,
-            and_(Address.user_id == self._user.id,
-                 Member.address_id == Address.id)))
+            Member.user_id == self._user.id
+            ).union(
+                store.query(Member).join(Address).filter(
+                    Address.user_id == self._user.id)
+                )
         return results.distinct()
 
     @property



View it on GitLab: 
https://gitlab.com/mailman/mailman/commit/8413ae86bfce8665fc94a8e3fb8b5e0624a46f25
_______________________________________________
Mailman-checkins mailing list
Mailman-checkins@python.org
Unsubscribe: 
https://mail.python.org/mailman/options/mailman-checkins/archive%40jab.org

Reply via email to