mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-02 12:16:09 -04:00
Initial stab at refactoring the SQL tables, including rejigging some of the storage layer.
This commit is contained in:
parent
3dfa84bec8
commit
336987bb8d
6 changed files with 113 additions and 259 deletions
|
@ -12,7 +12,6 @@
|
|||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import logging
|
||||
|
||||
from twisted.internet import defer
|
||||
|
@ -20,6 +19,8 @@ from twisted.internet import defer
|
|||
from synapse.api.errors import StoreError
|
||||
|
||||
import collections
|
||||
import json
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
@ -28,6 +29,7 @@ class SQLBaseStore(object):
|
|||
|
||||
def __init__(self, hs):
|
||||
self._db_pool = hs.get_db_pool()
|
||||
self.event_factory = hs.get_event_factory()
|
||||
|
||||
def cursor_to_dict(self, cursor):
|
||||
"""Converts a SQL cursor into an list of dicts.
|
||||
|
@ -63,6 +65,9 @@ class SQLBaseStore(object):
|
|||
return decoder(cursor)
|
||||
return self._db_pool.runInteraction(interaction)
|
||||
|
||||
def _execut_query(self, query, *args):
|
||||
return self._execute(self.cursor_to_dict, *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.
|
||||
|
||||
|
@ -279,6 +284,16 @@ class SQLBaseStore(object):
|
|||
|
||||
return self._db_pool.runInteraction(func)
|
||||
|
||||
def _parse_event_from_row(self, row_dict):
|
||||
d = copy.deepcopy({k: v for k, v in row.items() if v})
|
||||
d.update(json.loads(row["unrecognized_keys"]))
|
||||
del d["unrecognized_keys"]
|
||||
|
||||
return self.event_factory.create_event(
|
||||
etype=d["type"],
|
||||
**d
|
||||
)
|
||||
|
||||
|
||||
class Table(object):
|
||||
""" A base class used to store information about a particular table.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue