IndexedDB: Add IndexedDB implementation of Event
-related functions in EventCacheStore
#5414
+159
−18
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Background
This pull request is part of a series of pull requests to add a full IndexedDB implementation of the
EventCacheStore
(see #4617, #4996, #5090, #5138, #5226, #5274, #5343, #5384, #5406). This particular pull request focuses on providing implementations for theEvent
-related functions inEventCacheStore
.Changes
The changes include implementations of the following functions, as well as tests for each of them.
EventCacheStore::filter_duplicated_events
EventCacheStore::find_event
EventCacheStore::find_event_relations
EventCacheStore::save_event
I have also added a few other functions which support the implementation of the functions above.
IndexedEventRelationKey::set_related_event
IndexeddbEventCacheStoreTransaction::get_event_by_id
IndexeddbEventCacheStoreTransaction::get_events_by_relation
IndexeddbEventCacheStoreTransaction::get_events_by_related_event
Bug Fixes
There is also a small change to how
Update::PushItems
is handled. Namely, if a given item already exists in the database, it will update that item, rather than returning an error. The new behavior is consistent with the SQLite implementation ofEventCacheStore
(see here).This bug was surfaced by
matrix_sdk_base::event_cache::store::integration_tests::test_find_event_relations
.Future Work
EventCacheStore::try_take_leased_lock
functions without relying onMemoryStore
EventCacheStoreMedia
Signed-off-by: Michael Goldenberg m@mgoldenberg.net