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
|