Enhancements
- Storage of Decimal128 properties has been optimised so that the individual values will take up 0 bits (if all nulls), 32 bits, 64 bits or 128 bits depending on what is needed. (PR [#6111]#6111))
- You can have a collection embedded in any Mixed property (except Set).
- Querying a specific entry in a collection (in particular 'first and 'last') is supported. (PR #4269)
- Index on list of strings property now supported (PR #7142)
- You can set the threshold levels for trace output on individual categories. (PR #7004)
Fixed
- Align dictionaries to Lists and Sets when they get cleared. (#6205, since v10.4.0)
- Fixed equality queries on a Mixed property with an index possibly returning the wrong result if values of different types happened to have the same StringIndex hash. (6407 since v11.0.0-beta.5).
- If you have more than 8388606 links pointing to one specific object, the program will crash. (#6577, since v6.0.0)
- Query for NULL value in Dictionary would give wrong results ([6748])(#6748), since v10.0.0)
- A Realm generated on a non-apple ARM 64 device and copied to another platform (and vice-versa) were non-portable due to a sorting order difference. This impacts strings or binaries that have their first difference at a non-ascii character. These items may not be found in a set, or in an indexed column if the strings had a long common prefix (> 200 characters). (PR # 6670, since 2.0.0-rc7 for indexes, and since since the introduction of sets in v10.2.0)
Breaking changes
- Support for upgrading from Realm files produced by RealmCore v5.23.9 or earlier is no longer supported.
- Remove
set_string_compare_method
, only one sort method is now supported which was previously calledSTRING_COMPARE_CORE
. - BinaryData and StringData are now strongly typed for comparisons and queries. This change is especially relevant when querying for a string constant on a Mixed property, as now only strings will be returned. If searching for BinaryData is desired, then that type must be specified by the constant. In RQL the new way to specify a binary constant is to use
mixed = bin('xyz')
ormixed = binary('xyz')
. (6407). - In the C API,
realm_collection_changes_get_num_changes
andrealm_dictionary_get_changes
have got an extra parameter to receive information on the deletion of the entire collection. - Sorting order of strings has changed to use standard unicode codepoint order instead of grouping similar english letters together. A noticeable change will be from "aAbBzZ" to "ABZabz". (2573)
Compatibility
- Fileformat: Generates files with format v24. Reads and automatically upgrade from fileformat v10. If you want to upgrade from an earlier file format version you will have to use RealmCore v13.x.y or earlier.
Internals
- Refactoring of the StringIndex interface.