From f37bf2f5d1830700cfa8226a110719fc68bb63e2 Mon Sep 17 00:00:00 2001 From: Benjamin Bouvier Date: Mon, 28 Jul 2025 16:56:15 +0200 Subject: [PATCH] feat(store): also delete thread subscriptions when deleting a room in db --- crates/matrix-sdk-base/src/store/memory_store.rs | 1 + crates/matrix-sdk-sqlite/src/state_store.rs | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/crates/matrix-sdk-base/src/store/memory_store.rs b/crates/matrix-sdk-base/src/store/memory_store.rs index a80706384..55eb80635 100644 --- a/crates/matrix-sdk-base/src/store/memory_store.rs +++ b/crates/matrix-sdk-base/src/store/memory_store.rs @@ -754,6 +754,7 @@ impl StateStore for MemoryStore { inner.room_event_receipts.remove(room_id); inner.send_queue_events.remove(room_id); inner.dependent_send_queue_events.remove(room_id); + inner.thread_subscriptions.remove(room_id); Ok(()) } diff --git a/crates/matrix-sdk-sqlite/src/state_store.rs b/crates/matrix-sdk-sqlite/src/state_store.rs index 3063cbf94..73ff28b48 100644 --- a/crates/matrix-sdk-sqlite/src/state_store.rs +++ b/crates/matrix-sdk-sqlite/src/state_store.rs @@ -1766,6 +1766,13 @@ impl StateStore for SqliteStateStore { this.encode_key(keys::DEPENDENTS_SEND_QUEUE, &room_id); txn.remove_room_dependent_send_queue(&dependent_send_queue_room_id)?; + let thread_subscriptions_room_id = + this.encode_key(keys::THREAD_SUBSCRIPTIONS, &room_id); + txn.execute( + "DELETE FROM thread_subscriptions WHERE room_id = ?", + (thread_subscriptions_room_id,), + )?; + Ok(()) }) .await?;