Enhancements
- Add support in the C API for receiving a notification when sync user state changes. (#7302)
- Allow the query builder to construct >, >=, <, <= queries for string constants. This is a case sensitive lexicographical comparison. Improved performance of RQL (parsed) queries on a non-linked string property using: >, >=, <, <=, operators and fixed behaviour that a null string should be evaulated as less than everything, previously nulls were not matched. (#3939, this is a prerequisite for realm/realm-swift#8008).
- Updated bundled OpenSSL version to 3.2.0 (PR #7303)
- Added
SyncSession::get_file_ident()
so you can trigger a client reset via the BAAS admin API (PR #7203). - Audit event scopes containing zero events to save no longer open the audit realm unneccesarily (PR #7332).
- Added a method to check if a file needs upgrade. (#7140)
- Use
clonefile()
when possible inFile::copy()
on Apple platforms for faster copying. (PR #7341).
Fixed
- Fixed queries like
indexed_property == NONE {x}
which mistakenly matched on only x instead of not x. This only applies when an indexed property with equality (==, or IN) matches withNONE
on a list of one item. If the constant list contained more than one value then it was working correctly. (realm-js #7862, since v12.5.0) - Uploading the changesets recovered during an automatic client reset recovery may lead to 'Bad server version' errors and a new client reset. (#7279, since v13.24.1)
- Fixed invalid data in error reason string when registering a subscription change notification after the subscription has already failed. (#6839, since v11.8.0)
- Fixed crash in fulltext index using prefix search with no matches (#7309, since v13.18.0)
- Fix compilation and some warnings when building with Xcode 15.3 (PR #7297).
- util::make_dir_recursive() attempted to create a directory named "\0" if the path did not have a trailing slash (PR #7329).
- Fixed a crash with
Assertion failed: m_initiated
during sync session startup (#7074, since v10.0.0). - Fixed a TSAN violation where the user thread could race to read
m_finalized
with the sync event loop (#6844, since v13.15.1) - Fix a minor race condition when backing up Realm files before a client reset which could have lead to overwriting an existing file. (PR #7341).
Breaking changes
- SyncManager no longer supports reconfiguring after calling reset_for_testing(). SyncManager::configure() has been folded into the constructor, and reset_for_testing() has been renamed to tear_down_for_testing(). (PR #7351)
Compatibility
- Fileformat: Generates files with format v23. Reads and automatically upgrade from fileformat v5.
Internals
- Expressions in
CHECK()
macros are printed to better; strings are quoted and null strings are printed as NULL instead of no output. - Refactored version resolution for the
build-apple-device.sh
script. (#7263) - Remove SyncUser::binding_context() and related things, which were not actually used by any SDKs.
- (bindgen) Upgrade
eslint-config-prettier
&eslint-plugin-prettier
and add a missing peer dependency onprettier
. - The minimum CMake version has changed from 3.15 to 3.22.1. (#6537)
- Update Catch2 to v3.5.2 (PR #7297).
- The unused
partition
anduser_local_uuid()
fields have been removed fromFileActionMetadata
. (PR #7341).