summary refs log tree commit diff
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2015-10-22 15:02:35 +0100
committerErik Johnston <erik@matrix.org>2015-10-22 15:02:35 +0100
commit232beb3a3c28ccdc5388daa9396d5054b7768b12 (patch)
tree8ad28ddbf431e3107272760586565cb68be04934
parentLimit max number of SQL vars (diff)
downloadsynapse-232beb3a3c28ccdc5388daa9396d5054b7768b12.tar.xz
Use namedtuple as return value
-rw-r--r--synapse/handlers/search.py4
-rw-r--r--synapse/storage/search.py18
2 files changed, 18 insertions, 4 deletions
diff --git a/synapse/handlers/search.py b/synapse/handlers/search.py
index f53e5d35ac..bdc79ffc55 100644
--- a/synapse/handlers/search.py
+++ b/synapse/handlers/search.py
@@ -66,7 +66,9 @@ class SearchHandler(BaseHandler):
 
         room_ids = filtr.filter_rooms(room_ids)
 
-        rank_map, event_map = yield self.store.search_msgs(room_ids, search_term, keys)
+        rank_map, event_map, _ = yield self.store.search_msgs(
+            room_ids, search_term, keys
+        )
 
         filtered_events = filtr.filter(event_map.values())
 
diff --git a/synapse/storage/search.py b/synapse/storage/search.py
index 810b5406ad..41451ade57 100644
--- a/synapse/storage/search.py
+++ b/synapse/storage/search.py
@@ -18,6 +18,17 @@ from twisted.internet import defer
 from _base import SQLBaseStore
 from synapse.storage.engines import PostgresEngine, Sqlite3Engine
 
+from collections import namedtuple
+
+"""The result of a search.
+
+Fields:
+    rank_map (dict): Mapping event_id -> rank
+    event_map (dict): Mapping event_id -> event
+    pagination_token (str): Pagination token
+"""
+SearchResult = namedtuple("SearchResult", ("rank_map", "event_map", "pagination_token"))
+
 
 class SearchStore(SQLBaseStore):
     @defer.inlineCallbacks
@@ -31,7 +42,7 @@ class SearchStore(SQLBaseStore):
                 "content.body", "content.name", "content.topic"
 
         Returns:
-            2-tuple of (dict event_id -> rank, dict event_id -> event)
+            SearchResult
         """
         clauses = []
         args = []
@@ -85,11 +96,12 @@ class SearchStore(SQLBaseStore):
             for ev in events
         }
 
-        defer.returnValue((
+        defer.returnValue(SearchResult(
             {
                 r["event_id"]: r["rank"]
                 for r in results
                 if r["event_id"] in event_map
             },
-            event_map
+            event_map,
+            None
         ))