mirror of
https://github.com/element-hq/synapse.git
synced 2024-12-14 11:57:44 +00:00
Allow compute_state_after_events
to use partial state (#14676)
* Allow `compute_state_after_events` to use partial state if fetching a subset of state that is trusted during a partial join. * Changelog
This commit is contained in:
parent
fb60cb16fe
commit
4f4d690423
2 changed files with 9 additions and 2 deletions
1
changelog.d/14676.misc
Normal file
1
changelog.d/14676.misc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Faster joins: make `computer_state_after_events` consistent with other state-fetching functions that take a `StateFilter`.
|
|
@ -202,14 +202,20 @@ class StateHandler:
|
||||||
room_id: the room_id containing the given events.
|
room_id: the room_id containing the given events.
|
||||||
event_ids: the events whose state should be fetched and resolved.
|
event_ids: the events whose state should be fetched and resolved.
|
||||||
await_full_state: if `True`, will block if we do not yet have complete state
|
await_full_state: if `True`, will block if we do not yet have complete state
|
||||||
at the given `event_id`s, regardless of whether `state_filter` is
|
at these events and `state_filter` is not satisfied by partial state.
|
||||||
satisfied by partial state.
|
Defaults to `True`.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
the state dict (a mapping from (event_type, state_key) -> event_id) which
|
the state dict (a mapping from (event_type, state_key) -> event_id) which
|
||||||
holds the resolution of the states after the given event IDs.
|
holds the resolution of the states after the given event IDs.
|
||||||
"""
|
"""
|
||||||
logger.debug("calling resolve_state_groups from compute_state_after_events")
|
logger.debug("calling resolve_state_groups from compute_state_after_events")
|
||||||
|
if (
|
||||||
|
await_full_state
|
||||||
|
and state_filter
|
||||||
|
and not state_filter.must_await_full_state(self.hs.is_mine_id)
|
||||||
|
):
|
||||||
|
await_full_state = False
|
||||||
ret = await self.resolve_state_groups_for_events(
|
ret = await self.resolve_state_groups_for_events(
|
||||||
room_id, event_ids, await_full_state
|
room_id, event_ids, await_full_state
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in a new issue