diff options
author | Erik Johnston <erik@matrix.org> | 2021-01-14 17:19:35 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-14 17:19:35 +0000 |
commit | 659c415ed4e081d7d26f272f1f1cccb99d0fb016 (patch) | |
tree | b8f4895483383ee2fe24c24d6658c29959893f9c /synapse/storage/database.py | |
parent | Fix get destinations to catch up query. (#9114) (diff) | |
download | synapse-659c415ed4e081d7d26f272f1f1cccb99d0fb016.tar.xz |
Fix chain cover background update to work with split out event persisters (#9115)
Diffstat (limited to 'synapse/storage/database.py')
-rw-r--r-- | synapse/storage/database.py | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/synapse/storage/database.py b/synapse/storage/database.py index 6cfadc2b4e..a19d65ad23 100644 --- a/synapse/storage/database.py +++ b/synapse/storage/database.py @@ -49,6 +49,7 @@ from synapse.metrics.background_process_metrics import run_as_background_process from synapse.storage.background_updates import BackgroundUpdater from synapse.storage.engines import BaseDatabaseEngine, PostgresEngine, Sqlite3Engine from synapse.storage.types import Connection, Cursor +from synapse.storage.util.sequence import build_sequence_generator from synapse.types import Collection # python 3 does not have a maximum int value @@ -412,6 +413,16 @@ class DatabasePool: self._check_safe_to_upsert, ) + # We define this sequence here so that it can be referenced from both + # the DataStore and PersistEventStore. + def get_chain_id_txn(txn): + txn.execute("SELECT COALESCE(max(chain_id), 0) FROM event_auth_chains") + return txn.fetchone()[0] + + self.event_chain_id_gen = build_sequence_generator( + engine, get_chain_id_txn, "event_auth_chain_id" + ) + def is_running(self) -> bool: """Is the database pool currently running """ |