Pull max id from correct table
2 files changed, 10 insertions, 4 deletions
diff --git a/synapse/handlers/user_directory.py b/synapse/handlers/user_directory.py
index 4e491a43e6..8331f6422e 100644
--- a/synapse/handlers/user_directory.py
+++ b/synapse/handlers/user_directory.py
@@ -111,9 +111,7 @@ class UserDirectoyHandler(object):
"""Populates the user_directory from the current state of the DB, used
when synapse first starts with user_directory support
"""
-
- # TODO: pull from current delta stream_id
- new_pos = self.store.get_room_max_stream_ordering()
+ new_pos = yield self.store.get_max_stream_id_in_current_state_deltas()
# Delete any existing entries just in case there are any
yield self.store.delete_all_from_user_dir()
@@ -284,7 +282,7 @@ class UserDirectoyHandler(object):
# is public (i.e. the room_id in the database)
return
- # TODO: Make this faster?
+ # XXX: Make this faster?
rooms = yield self.store.get_rooms_for_user(user_id)
for j_room_id in rooms:
is_public = yield self.store.is_room_world_readable_or_publicly_joinable(
diff --git a/synapse/storage/user_directory.py b/synapse/storage/user_directory.py
index 0df979cb01..011c711ec1 100644
--- a/synapse/storage/user_directory.py
+++ b/synapse/storage/user_directory.py
@@ -195,6 +195,14 @@ class UserDirectoryStore(SQLBaseStore):
"get_current_state_deltas", self.cursor_to_dict, sql, prev_stream_id
)
+ def get_max_stream_id_in_current_state_deltas(self):
+ return self._simple_select_one_onecol(
+ table="current_state_delta_stream",
+ keyvalues={},
+ retcol="COALESCE(MAX(stream_id), -1)",
+ desc="get_max_stream_id_in_current_state_deltas",
+ )
+
@defer.inlineCallbacks
def search_user_dir(self, search_term, limit):
"""Searches for users in directory
|