Skip to content

v10.31.0

Compare
Choose a tag to compare
@realm-ci realm-ci released this 05 Oct 20:14
· 353 commits to master since this release

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 with Results no longer throws an unrecognized selector exception (since 10.8.0-beta.2)
  • RLMProgressNotificationToken and ProgressNotificationToken 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 of RLMUpdateResult.documentId to support reporting document ids which are not object ids.

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