Releases: realm/realm-core
Releases · realm/realm-core
Realm Core v13.8.0
Enhancements
- Performance improvement for the following queries (6376):
- Significant (~75%) improvement when counting (
Query::count()
) the number of exact matches (with no other query conditions) on a string/int/UUID/ObjectID property that has an index. This improvement will be especially noticiable if there are a large number of results returned (duplicate values). - Significant (~99%) improvement when querying for an exact match on a Timestamp property that has an index.
- Significant (~99%) improvement when querying for a case insensitive match on a Mixed property that has an index.
- Moderate (~25%) improvement when querying for an exact match on a Boolean property that has an index.
- Small (~5%) improvement when querying for a case insensitive match on a Mixed property that does not have an index.
- Significant (~75%) improvement when counting (
- Expose
Results::is_valid()
in the C API, in order to prevent to use an invalid Results. (PR #6407) - Restore
SyncManager::set_logger_factory()
to enable setting different loggers for different SyncManagers (PR #6400).
Fixed
- Fixed a crash when querying a mixed property with a string operator (contains/like/beginswith/endswith) or with case insensitivity. (#6376 since introduction of Mixed)
- Querying for equality of a string on an indexed mixed property was returning case insensitive matches. For example querying for myIndexedMixed == "Foo" would incorrectly match on values of "foo" or "FOO" etc. (#6376 since introduction of Mixed)
- Adding an index to a Mixed property on a non-empty table would crash with an assertion. (#6376 since introduction of Mixed)
- SyncSession::pause() could hold a reference to the database open after shutting down the sync session, preventing users from being able to delete the realm. (#6372, since v13.3.0)
- Logger::set_default_logger() did not perform any locking, resulting in data races if it was called while the default logger was being read on another thread (#6398, since v13.7.0).
Breaking changes
- None.
Compatibility
- Fileformat: Generates files with format v23. Reads and automatically upgrade from fileformat v5.
Internals
- Add admin api and test for performing the PBS->FLX migration and roll back on the server. (PR #6366)
- Integrate protocol support for PBS->FLX client migration (#6355)
- SyncManager::reset_for_testing() could race with SyncSession's being torn down in other threads causing an assertion for REALM_ASSERT_RELEASE(no_sessions) to fail. SyncManager::reset_for_testing() now waits/yields for up to 5 seconds for sessions being torn down in other threads to finish tearing down before checking this assertion. (#6271)
- Update event loop to keep full stack trace if no observer is used (#6410)
- SyncSession::OnlyForTesting::handle_error() now takes a realm::sync:SessionErrorInfo instead of a realm::SyncError to reflect internal refactoring (#6433).
Realm Core v13.7.1
Enhancements
Expose RealmConfig::schema_subset_mode in the C-API. (PR #6379)
Fixed
Fixed a bug that may have resulted in arrays being in different orders on different devices. Some cases of “Invalid prior_size” may be fixed too. (#6191, since v11.13.0)
Breaking changes
None.
Compatibility
Fileformat: Generates files with format v23. Reads and automatically upgrade from fileformat v5.