Realm v10.31.0 Release Notes
Release Date: 2022-10-05 // over 1 year ago-
๐ The prebuilt binary for Carthage is now build with Xcode 14.0.1.
โจ Enhancements
- Cut the runtime of aggregate operations on large dictionaries in half (Core #5864).
- ๐ Improve performance of aggregate operations on collections of objects by 2x to 10x (Core #5864). Greatly improve the performance of sorting or distincting a Dictionary's keys or values. The most expensive operation is now performed O(log N) rather than O(N log N) times, and large Dictionaries can see upwards of 99% reduction in time to sort. (Core #5166)
- โ Add support for changing the deployment location for Atlas Apps. Previously this was assumed to be immutable (Core #5648).
- ๐ The sync client will now yield the write lock to other threads which are waiting to perform a write transaction even if it still has remaining work to do, rather than always applying all changesets received from the server even when other threads are trying to write. (Core #5844).
- ๐ The sync client no longer writes an unused temporary copy of the changesets received from the server to the Realm file (Core #5844).
๐ Fixed
- Setting a
List
property withResults
no longer throws an unrecognized selector exception (since 10.8.0-beta.2) RLMProgressNotificationToken
andProgressNotificationToken
now hold a strong reference to the sync session, keeping it alive until the token is deallocated or invalidated, as the other notification tokens do. (#7831, since v2.3.0).- Results permitted some nonsensical aggregate operations on column types which do not make sense to aggregate, giving garbage results rather than reporting an error (Core #5876, since v5.0.0).
- Upserting a document in a Mongo collection would crash if the document's id type was anything other than ObjectId (since v10.0.0).
- ๐ Fix a use-after-free when a sync session is closed and the app is destroyed at the same time (Core #5752, since v10.19.0).
๐ Deprecations
- โก๏ธ
RLMUpdateResult.objectId
has been deprecated in favor ofRLMUpdateResult.documentId
to support reporting document ids which are not object ids. ### ๐ฅ Breaking Changes - Private API
_realmColumnNames
has been renamed to a new public API calledpropertiesMapping()
. This change only affects the Swift API and doesn't have any effects in the obj-c API.
Compatibility
- Realm Studio: 11.0.0 or later.
- ๐ APIs are backwards compatible with all previous releases in the 10.x.y series.
- ๐ Carthage release for Swift is built with Xcode 14.0.1.
- CocoaPods: 1.10 or later.
- Xcode: 13.1-14.1.
Internal
- โฌ๏ธ Upgraded realm-core from 12.7.0 to 12.9.0