[#7186] add artifact_feed index on project_id, -pubdate
diff --git a/Allura/allura/model/artifact.py b/Allura/allura/model/artifact.py
index 19071c7..d54a08e 100644
--- a/Allura/allura/model/artifact.py
+++ b/Allura/allura/model/artifact.py
@@ -763,6 +763,9 @@
('pubdate', pymongo.DESCENDING)),
# used in ext/user_profile/user_main.py for user feeds
'author_link',
+ # used in project feed
+ (('project_id', pymongo.ASCENDING),
+ ('pubdate', pymongo.DESCENDING)),
]
_id = FieldProperty(S.ObjectId)
diff --git a/Allura/allura/model/auth.py b/Allura/allura/model/auth.py
index f9e3a4c..d9dd276 100644
--- a/Allura/allura/model/auth.py
+++ b/Allura/allura/model/auth.py
@@ -729,7 +729,11 @@
@classmethod
def anonymous(cls):
- return User.query.get(_id=None)
+ # ming caches .get(_id=...) queries for the duration of a ming session
+ # but we don't even want to do this query once per request, it'll be the same always and forever
+ if not hasattr(cls, '_anonymous_user'):
+ cls._anonymous_user = User.query.get(_id=None)
+ return cls._anonymous_user
def is_anonymous(self):
return self._id is None or self.username == ''