mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-06-06 21:38:48 -04:00
Upsert room version when we join over federation (#6968)
This is intended as a precursor to storing room versions when we receive an invite over federation, but has the happy side-effect of fixing #3374 at last. In short: change the store_room with try/except to a proper upsert which updates the right columns.
This commit is contained in:
parent
4c2ed3f20e
commit
a301934f46
3 changed files with 30 additions and 10 deletions
|
@ -954,6 +954,23 @@ class RoomStore(RoomBackgroundUpdateStore, RoomWorkerStore, SearchStore):
|
|||
|
||||
self.config = hs.config
|
||||
|
||||
async def upsert_room_on_join(self, room_id: str, room_version: RoomVersion):
|
||||
"""Ensure that the room is stored in the table
|
||||
|
||||
Called when we join a room over federation, and overwrites any room version
|
||||
currently in the table.
|
||||
"""
|
||||
await self.db.simple_upsert(
|
||||
desc="upsert_room_on_join",
|
||||
table="rooms",
|
||||
keyvalues={"room_id": room_id},
|
||||
values={"room_version": room_version.identifier},
|
||||
insertion_values={"is_public": False, "creator": ""},
|
||||
# rooms has a unique constraint on room_id, so no need to lock when doing an
|
||||
# emulated upsert.
|
||||
lock=False,
|
||||
)
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def store_room(
|
||||
self,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue