summary refs log tree commit diff
path: root/synapse
diff options
context:
space:
mode:
authorKegan Dougal <kegan@matrix.org>2015-03-02 10:16:24 +0000
committerKegan Dougal <kegan@matrix.org>2015-03-02 10:16:24 +0000
commit3d73383d185b41b9986366da8123255e3a8ce1e0 (patch)
tree95fdacb46fc8315abfa946bb1979a33fd7bc37a8 /synapse
parentPR tweaks: set earlier on and use 'as json' for compat (diff)
downloadsynapse-3d73383d185b41b9986366da8123255e3a8ce1e0.tar.xz
Modify _simple_select_list to allow an empty WHERE clause. Use it for get_all_rooms and get_all_users.
Diffstat (limited to 'synapse')
-rw-r--r--synapse/storage/_base.py22
-rw-r--r--synapse/storage/appservice.py4
-rw-r--r--synapse/storage/registration.py7
-rw-r--r--synapse/storage/room.py5
4 files changed, 21 insertions, 17 deletions
diff --git a/synapse/storage/_base.py b/synapse/storage/_base.py
index c98dd36aed..3725c9795d 100644
--- a/synapse/storage/_base.py
+++ b/synapse/storage/_base.py
@@ -450,7 +450,8 @@ class SQLBaseStore(object):
 
         Args:
             table : string giving the table name
-            keyvalues : dict of column names and values to select the rows with
+            keyvalues : dict of column names and values to select the rows with,
+            or None to not apply a WHERE clause.
             retcols : list of strings giving the names of the columns to return
         """
         return self.runInteraction(
@@ -469,13 +470,20 @@ class SQLBaseStore(object):
             keyvalues : dict of column names and values to select the rows with
             retcols : list of strings giving the names of the columns to return
         """
-        sql = "SELECT %s FROM %s WHERE %s ORDER BY rowid asc" % (
-            ", ".join(retcols),
-            table,
-            " AND ".join("%s = ?" % (k, ) for k in keyvalues)
-        )
+        if keyvalues:
+            sql = "SELECT %s FROM %s WHERE %s ORDER BY rowid asc" % (
+                ", ".join(retcols),
+                table,
+                " AND ".join("%s = ?" % (k, ) for k in keyvalues)
+            )
+            txn.execute(sql, keyvalues.values())
+        else:
+            sql = "SELECT %s FROM %s ORDER BY rowid asc" % (
+                ", ".join(retcols),
+                table
+            )
+            txn.execute(sql)
 
-        txn.execute(sql, keyvalues.values())
         return self.cursor_to_dict(txn)
 
     def _simple_update_one(self, table, keyvalues, updatevalues,
diff --git a/synapse/storage/appservice.py b/synapse/storage/appservice.py
index c6ca2ab04e..0e3eab9422 100644
--- a/synapse/storage/appservice.py
+++ b/synapse/storage/appservice.py
@@ -220,8 +220,8 @@ class ApplicationServiceStore(SQLBaseStore):
         # get all rooms matching the room ID regex.
         room_entries = yield self.get_all_rooms()  # RoomEntry list
         matching_room_list = set([
-            r.room_id for r in room_entries if
-            service.is_interested_in_room(r.room_id)
+            r["room_id"] for r in room_entries if
+            service.is_interested_in_room(r["room_id"])
         ])
 
         # resolve room IDs for matching room alias regex.
diff --git a/synapse/storage/registration.py b/synapse/storage/registration.py
index 9c92575c7f..54cd15bc0e 100644
--- a/synapse/storage/registration.py
+++ b/synapse/storage/registration.py
@@ -93,11 +93,8 @@ class RegistrationStore(SQLBaseStore):
         )
 
     def get_all_users(self):
-        query = "SELECT users.name FROM users"
-        return self._execute(
-            self.cursor_to_dict,
-            query
-        )
+        return self._simple_select_list(
+            table="users", keyvalues=None, retcols=["name"])
 
     def get_user_by_token(self, token):
         """Get a user from the given access token.
diff --git a/synapse/storage/room.py b/synapse/storage/room.py
index 3a64693404..6bd0b22ae5 100644
--- a/synapse/storage/room.py
+++ b/synapse/storage/room.py
@@ -77,9 +77,8 @@ class RoomStore(SQLBaseStore):
         Returns:
             A list of namedtuples containing the room information.
         """
-        query = RoomsTable.select_statement()
-        return self._execute(
-            RoomsTable.decode_results, query,
+        return self._simple_select_list(
+            table="rooms", keyvalues=None, retcols=["room_id"]
         )
 
     @defer.inlineCallbacks