From 099e4b88d8053fbe5a661706a92a50e2c25f4dd6 Mon Sep 17 00:00:00 2001 From: "Paul \"LeoNerd\" Evans" Date: Wed, 11 Mar 2015 17:08:57 +0000 Subject: [PATCH 1/3] Add a description to storage layer's _execute_and_decode() --- synapse/storage/__init__.py | 4 ++-- synapse/storage/_base.py | 3 ++- synapse/storage/appservice.py | 2 +- synapse/storage/feedback.py | 2 +- synapse/storage/keys.py | 4 +++- 5 files changed, 9 insertions(+), 6 deletions(-) diff --git a/synapse/storage/__init__.py b/synapse/storage/__init__.py index 14a788c19..e3bf014d4 100644 --- a/synapse/storage/__init__.py +++ b/synapse/storage/__init__.py @@ -450,7 +450,7 @@ class DataStore(RoomMemberStore, RoomStore, else: args = (room_id, ) - results = yield self._execute_and_decode(sql, *args) + results = yield self._execute_and_decode("get_current_state", sql, *args) events = yield self._parse_events(results) defer.returnValue(events) @@ -475,7 +475,7 @@ class DataStore(RoomMemberStore, RoomStore, sql += " OR s.type = 'm.room.aliases')" args = (room_id,) - results = yield self._execute_and_decode(sql, *args) + results = yield self._execute_and_decode("get_current_state", sql, *args) events = yield self._parse_events(results) diff --git a/synapse/storage/_base.py b/synapse/storage/_base.py index 3725c9795..a4e1d66e2 100644 --- a/synapse/storage/_base.py +++ b/synapse/storage/_base.py @@ -279,7 +279,8 @@ class SQLBaseStore(object): return self.runInteraction("_execute", interaction) - def _execute_and_decode(self, query, *args): + def _execute_and_decode(self, desc, query, *args): + # TODO: for now ignore desc return self._execute(self.cursor_to_dict, query, *args) # "Simple" SQL API methods that operate on a single table with no JOINs, diff --git a/synapse/storage/appservice.py b/synapse/storage/appservice.py index e30265750..850676ce6 100644 --- a/synapse/storage/appservice.py +++ b/synapse/storage/appservice.py @@ -296,7 +296,7 @@ class ApplicationServiceStore(SQLBaseStore): # } # ] services = {} - results = yield self._execute_and_decode(sql) + results = yield self._execute_and_decode("_populate_cache", sql) for res in results: as_token = res["token"] if as_token not in services: diff --git a/synapse/storage/feedback.py b/synapse/storage/feedback.py index fcf011b23..8eab769b7 100644 --- a/synapse/storage/feedback.py +++ b/synapse/storage/feedback.py @@ -37,7 +37,7 @@ class FeedbackStore(SQLBaseStore): "WHERE feedback.target_event_id = ? " ) - rows = yield self._execute_and_decode(sql, event_id) + rows = yield self._execute_and_decode("get_feedback_for_event", sql, event_id) defer.returnValue( [ diff --git a/synapse/storage/keys.py b/synapse/storage/keys.py index 1f244019f..153d5b4dd 100644 --- a/synapse/storage/keys.py +++ b/synapse/storage/keys.py @@ -85,7 +85,9 @@ class KeyStore(SQLBaseStore): " AND key_id in (" + ",".join("?" for key_id in key_ids) + ")" ) - rows = yield self._execute_and_decode(sql, server_name, *key_ids) + rows = yield self._execute_and_decode("get_server_verify_keys", sql, + server_name, *key_ids + ) keys = [] for row in rows: From 59a5f012ccaef5c255014efdbbb800ecfb73a2b7 Mon Sep 17 00:00:00 2001 From: "Paul \"LeoNerd\" Evans" Date: Wed, 11 Mar 2015 17:19:17 +0000 Subject: [PATCH 2/3] Also give _execute() a description --- synapse/storage/__init__.py | 3 +-- synapse/storage/_base.py | 7 +++---- synapse/storage/push_rule.py | 2 +- synapse/storage/pusher.py | 5 +++-- synapse/storage/registration.py | 3 +-- synapse/storage/room.py | 2 +- 6 files changed, 10 insertions(+), 12 deletions(-) diff --git a/synapse/storage/__init__.py b/synapse/storage/__init__.py index e3bf014d4..4b16f445d 100644 --- a/synapse/storage/__init__.py +++ b/synapse/storage/__init__.py @@ -495,8 +495,7 @@ class DataStore(RoomMemberStore, RoomStore, @defer.inlineCallbacks def _get_min_token(self): row = yield self._execute( - None, - "SELECT MIN(stream_ordering) FROM events" + "_get_min_token", None, "SELECT MIN(stream_ordering) FROM events" ) self.min_token = row[0][0] if row and row[0] and row[0][0] else -1 diff --git a/synapse/storage/_base.py b/synapse/storage/_base.py index a4e1d66e2..3ea738276 100644 --- a/synapse/storage/_base.py +++ b/synapse/storage/_base.py @@ -259,7 +259,7 @@ class SQLBaseStore(object): ) return results - def _execute(self, decoder, query, *args): + def _execute(self, desc, decoder, query, *args): """Runs a single query for a result set. Args: @@ -277,11 +277,10 @@ class SQLBaseStore(object): else: return cursor.fetchall() - return self.runInteraction("_execute", interaction) + return self.runInteraction(desc, interaction) def _execute_and_decode(self, desc, query, *args): - # TODO: for now ignore desc - return self._execute(self.cursor_to_dict, query, *args) + return self._execute(desc, self.cursor_to_dict, query, *args) # "Simple" SQL API methods that operate on a single table with no JOINs, # no complex WHERE clauses, just a dict of values for columns. diff --git a/synapse/storage/push_rule.py b/synapse/storage/push_rule.py index 1628489fa..d769db2c7 100644 --- a/synapse/storage/push_rule.py +++ b/synapse/storage/push_rule.py @@ -34,7 +34,7 @@ class PushRuleStore(SQLBaseStore): "WHERE user_name = ? " "ORDER BY priority_class DESC, priority DESC" ) - rows = yield self._execute(None, sql, user_name) + rows = yield self._execute("get_push_rules_for_user", None, sql, user_name) dicts = [] for r in rows: diff --git a/synapse/storage/pusher.py b/synapse/storage/pusher.py index 6622b4d18..587dada68 100644 --- a/synapse/storage/pusher.py +++ b/synapse/storage/pusher.py @@ -37,7 +37,8 @@ class PusherStore(SQLBaseStore): ) rows = yield self._execute( - None, sql, app_id_and_pushkey[0], app_id_and_pushkey[1] + "get_pushers_by_app_id_and_pushkey", None, sql, + app_id_and_pushkey[0], app_id_and_pushkey[1] ) ret = [ @@ -70,7 +71,7 @@ class PusherStore(SQLBaseStore): "FROM pushers" ) - rows = yield self._execute(None, sql) + rows = yield self._execute("get_all_pushers", None, sql) ret = [ { diff --git a/synapse/storage/registration.py b/synapse/storage/registration.py index 029b07cc6..adc8fc079 100644 --- a/synapse/storage/registration.py +++ b/synapse/storage/registration.py @@ -88,8 +88,7 @@ class RegistrationStore(SQLBaseStore): query = ("SELECT users.name, users.password_hash FROM users" " WHERE users.name = ?") return self._execute( - self.cursor_to_dict, - query, user_id + "get_user_by_id", self.cursor_to_dict, query, user_id ) def get_user_by_token(self, token): diff --git a/synapse/storage/room.py b/synapse/storage/room.py index 750b17a45..549c9af39 100644 --- a/synapse/storage/room.py +++ b/synapse/storage/room.py @@ -68,7 +68,7 @@ class RoomStore(SQLBaseStore): """ query = RoomsTable.select_statement("room_id=?") return self._execute( - RoomsTable.decode_single_result, query, room_id, + "get_room", RoomsTable.decode_single_result, query, room_id, ) @defer.inlineCallbacks From a7a28f85ae33462f00cde79c0ce6da64a4b0f281 Mon Sep 17 00:00:00 2001 From: "Paul \"LeoNerd\" Evans" Date: Wed, 11 Mar 2015 17:32:43 +0000 Subject: [PATCH 3/3] Appease pep8 --- synapse/storage/keys.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/synapse/storage/keys.py b/synapse/storage/keys.py index 153d5b4dd..09d1e6365 100644 --- a/synapse/storage/keys.py +++ b/synapse/storage/keys.py @@ -85,8 +85,8 @@ class KeyStore(SQLBaseStore): " AND key_id in (" + ",".join("?" for key_id in key_ids) + ")" ) - rows = yield self._execute_and_decode("get_server_verify_keys", sql, - server_name, *key_ids + rows = yield self._execute_and_decode( + "get_server_verify_keys", sql, server_name, *key_ids ) keys = []