diff options
author | Richard van der Hoff <1389908+richvdh@users.noreply.github.com> | 2022-04-12 14:23:43 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-12 13:23:43 +0000 |
commit | 320186319ac4f1d16f8f964d92db8921a4b1073e (patch) | |
tree | 965d970fdea98a16bd2c23af3aabb0c9493eceb8 /synapse/storage/databases/main/events.py | |
parent | Remove references to unstable identifiers from MSC3440. (#12382) (diff) | |
download | synapse-320186319ac4f1d16f8f964d92db8921a4b1073e.tar.xz |
Resync state after partial-state join (#12394)
We work through all the events with partial state, updating the state at each of them. Once it's done, we recalculate the state for the whole room, and then mark the room as having complete state.
Diffstat (limited to 'synapse/storage/databases/main/events.py')
-rw-r--r-- | synapse/storage/databases/main/events.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/synapse/storage/databases/main/events.py b/synapse/storage/databases/main/events.py index e3be537cee..2a1e567ce0 100644 --- a/synapse/storage/databases/main/events.py +++ b/synapse/storage/databases/main/events.py @@ -963,6 +963,21 @@ class PersistEventsStore: values=to_insert, ) + async def update_current_state( + self, + room_id: str, + state_delta: DeltaState, + stream_id: int, + ) -> None: + """Update the current state stored in the datatabase for the given room""" + + await self.db_pool.runInteraction( + "update_current_state", + self._update_current_state_txn, + state_delta_by_room={room_id: state_delta}, + stream_id=stream_id, + ) + def _update_current_state_txn( self, txn: LoggingTransaction, |