Barry Warsaw pushed to branch release-3.0 at mailman / Mailman
Commits:
727f1e12 by Aurélien Bompard at 2015-11-22T22:07:07Z
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/727f1e12dc7fccbf72a4a82a14f7c1ff77b0bb29
_______________________________________________
Mailman-checkins mailing list
[email protected]
Unsubscribe:
https://mail.python.org/mailman/options/mailman-checkins/archive%40jab.org