mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-09-22 22:54:37 -04:00
Fix a long-standing bug where an initial sync would not respond to changes to the list of ignored users if there was an initial sync cached. (#15163)
This commit is contained in:
parent
682d31c702
commit
d62cd940cb
4 changed files with 77 additions and 2 deletions
|
@ -237,6 +237,37 @@ class AccountDataWorkerStore(PushRulesWorkerStore, CacheInvalidationWorkerStore)
|
|||
else:
|
||||
return None
|
||||
|
||||
async def get_latest_stream_id_for_global_account_data_by_type_for_user(
|
||||
self, user_id: str, data_type: str
|
||||
) -> Optional[int]:
|
||||
"""
|
||||
Returns:
|
||||
The stream ID of the account data,
|
||||
or None if there is no such account data.
|
||||
"""
|
||||
|
||||
def get_latest_stream_id_for_global_account_data_by_type_for_user_txn(
|
||||
txn: LoggingTransaction,
|
||||
) -> Optional[int]:
|
||||
sql = """
|
||||
SELECT stream_id FROM account_data
|
||||
WHERE user_id = ? AND account_data_type = ?
|
||||
ORDER BY stream_id DESC
|
||||
LIMIT 1
|
||||
"""
|
||||
txn.execute(sql, (user_id, data_type))
|
||||
|
||||
row = txn.fetchone()
|
||||
if row:
|
||||
return row[0]
|
||||
else:
|
||||
return None
|
||||
|
||||
return await self.db_pool.runInteraction(
|
||||
"get_latest_stream_id_for_global_account_data_by_type_for_user",
|
||||
get_latest_stream_id_for_global_account_data_by_type_for_user_txn,
|
||||
)
|
||||
|
||||
@cached(num_args=2, tree=True)
|
||||
async def get_account_data_for_room(
|
||||
self, user_id: str, room_id: str
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue