10.19.0
10.19.0 (2023-01-06)
Enhancements
-
Removed redundant serialization/deserialization of arguments in CallAsync. (Issue #3079)
-
Added a field
Transaction.State
which describes the current state of the transaction. (Issue #2551) -
Improved error message when null is passed as argument to params for EmailPasswordAuth.CallResetPasswordFunctionAsync. (Issue #3011)
-
Removed backing fields of generated classes' properties which should provide minor improvements to memory used by Realm Objects (Issue #2647)
-
Added two extension methods on
IDictionary
to get anIQueryable
collection wrapping the dictionary's values:dictionary.AsRealmQueryable()
allows you to get aIQueryable<T>
fromIDictionary<string, T>
that can be then treated as a regular queryable collection and filtered/ordered with LINQ orFilter(string)
.dictionary.Filter(query, arguments)
will filter the list and return a filtered collection of dictionary's values. It is roughly equivalent todictionary.AsRealmQueryable().Filter(query, arguments)
.
The resulting queryable collection will behave identically to the results obtained by calling
realm.All<T>()
, i.e. it will emit notifications when it changes and automatically update itself. (Issue #2647) -
Improve performance of client reset with automatic recovery and converting top-level tables into embedded tables. (Core upgrade)
-
Flexible sync will now wait for the server to have sent all pending history after a bootstrap before marking a subscription as Complete. (Core upgrade)
-
Slightly improve performance of
Realm.RemoveAll()
which removes all objects from an open Realm database. (Issue #2233) -
Improve error messages when not setting a BaseFilePath for realm or app configuration. (Issue 2863)
-
Added diagnostic error for nested classes used with the source generator syntax, as they are not yet supported. (Issue #3130)
-
Added
IList
implementation to all Realm collections to allow for UWP ListView databinding. (Issue #1759)
Fixed
- Fixed issue where Realm parameters' initialization would get run twice, resulting in unexpected behavior.
- Prevented
IEmbeddedObject
s andIAsymmetricObject
s from being used asRealmValue
s when added to a realm, and displaying more meaningful error messages. - Fix a use-after-free if the last external reference to an encrypted Realm was closed between when a client reset error was received and when the download of the new Realm began. (Core upgrade)
- Fixed an assertion failure during client reset with recovery when recovering a list operation on an embedded object that has a link column in the path prefix to the list from the top level object. (Core upgrade)
- Opening an unencrypted file with an encryption key would sometimes report a misleading error message that indicated that the problem was something other than a decryption failure. (Core upgrade)
- Fix a rare deadlock which could occur when closing a synchronized Realm immediately after committing a write transaction when the sync worker thread has also just finished processing a changeset from the server. (Core upgrade)
- Fix a race condition which could result in "operation cancelled" errors being delivered to async open callbacks rather than the actual sync error which caused things to fail. (Core upgrade)
- Bootstraps will not be applied in a single write transaction - they will be applied 1MB of changesets at a time, or as configured by the SDK. (Core upgrade)
- Fix database corruption and encryption issues on apple platforms. (Core upgrade)
- Added fully qualified names for source generated files, to avoid naming collisions. (Issue #3099
- Fixed an issue that would cause an exception when using unmanaged objects in bindings (Issue #3094)
- Fixed an issue where fetching a user's profile while the user logs out would result in an assertion failure. (Core upgrade)
- Removed the ".tmp_compaction_space" file being left over after compacting a Realm on Windows. (Core upgrade)
- Fixed a crash that would occur if you close a synchronized Realm while waiting for
SubscriptionSet.WaitForSynchronizationAsync
. (Issue #2952) - Avoid calling the setter on UI-bound properties in case the new value of the property is the same as the current one. This avoids some issue with MAUI, that seems to be calling the setter of bound properties unnecessarily when CollectionView/ListView are shown on screen. This is problematic if the object does not belong to the current user's permissions, as it will cause a compensanting write. In some limited cases this could cause an error loop (verified on iOS) when recycling of cells is involved. (Issue #3128)
- Fixes an issue with where the source generator will not add the namespace for types used in properties' initializers. (Issue #3135)
- Fixed an issue that would prevent Realm from working correctly in Unity applications that have Domain Reloading turned off. (Issue #2898)
- Fixed a bug when using
string.Contains
in .NET 2.1 or later where the search string is not a literal. (Issue #3134) - Added
[Obsolete]
notice for a fewErrorCode
enum members that are no longer in use. (Issue #3155
Compatibility
- Realm Studio: 12.0.0 or later.
Internal
- Using Core 12.13.0.
- Replaced
Realm.RefreshAsync
with a native implementation. (PR #2995)