mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-02 19:44:53 -04:00
Remove stream ordering from Metadata dict (#8452)
There's no need for it to be in the dict as well as the events table. Instead, we store it in a separate attribute in the EventInternalMetadata object, and populate that on load. This means that we can rely on it being correctly populated for any event which has been persited to the database.
This commit is contained in:
parent
f64c6aae68
commit
f31f8e6319
13 changed files with 53 additions and 33 deletions
|
@ -194,8 +194,9 @@ class RoomMemberHandler(metaclass=abc.ABCMeta):
|
|||
)
|
||||
if duplicate is not None:
|
||||
# Discard the new event since this membership change is a no-op.
|
||||
_, stream_id = await self.store.get_event_ordering(duplicate.event_id)
|
||||
return duplicate.event_id, stream_id
|
||||
# we know it was persisted, so must have a stream ordering.
|
||||
assert duplicate.internal_metadata.stream_ordering
|
||||
return duplicate.event_id, duplicate.internal_metadata.stream_ordering
|
||||
|
||||
prev_state_ids = await context.get_prev_state_ids()
|
||||
|
||||
|
@ -441,12 +442,12 @@ class RoomMemberHandler(metaclass=abc.ABCMeta):
|
|||
same_membership = old_membership == effective_membership_state
|
||||
same_sender = requester.user.to_string() == old_state.sender
|
||||
if same_sender and same_membership and same_content:
|
||||
_, stream_id = await self.store.get_event_ordering(
|
||||
old_state.event_id
|
||||
)
|
||||
# duplicate event.
|
||||
# we know it was persisted, so must have a stream ordering.
|
||||
assert old_state.internal_metadata.stream_ordering
|
||||
return (
|
||||
old_state.event_id,
|
||||
stream_id,
|
||||
old_state.internal_metadata.stream_ordering,
|
||||
)
|
||||
|
||||
if old_membership in ["ban", "leave"] and action == "kick":
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue