Enhancements
- Improve performance of SectionedResults. With a single section it is now ~10% faster, and the runtime of sectioning no longer scales significantly with section count, giving >100% speedups when there are large numbers of sections (PR #6606).
- Very slightly improve performance of runtime thread checking on the main thread on Apple platforms. (PR #6606)
Fixed
- We could crash when removing backlinks in cases where forward links did not have a corresponding backlink due to corruption. We now silently ignore this inconsistency in release builds, allowing the app to continue. (#6585, v6.0.0)
- If you freeze a Results based on a collection of objects, the result would be invalid if you delete the collection (#6635, since V13.11.0)
- Geospatial polygons now have built in normalization and validation in line with the MongoDB server side behaviour and the geoJSON standard. (#6607, since v13.11.0)
- Dictionary::get_any() would expose unresolved links rather than mapping them to null. In addition to allowing invalid objects to be read from Dictionaries, this resulted in queries on Dictionaries sometimes having incorrect results (#6644).
Breaking changes
platform
andcpu_arch
fields in thedevice_info
structure in App::Config can no longer be provided by the SDK's, they are inferred by the library (PR #6612)bundle_id
is now a required field in thedevice_info
structure in App::Config (PR #6612)- The API for sectioned results change notifications has changed. Changes are now reported in a vector rather than a sparse map.
- Renamed
GeoCenterSphere
toGeoCircle
and in RQLgeoSphere
togeoCircle
. The GeoPoints of query shapes are now validated before use and an exception will be thrown if invalid. Geospatial queries are no longer allowed on top-level tables. Fixed query results using ANY/ALL/NONE and matching on lists (PR #6645)
Compatibility
- Fileformat: Generates files with format v23. Reads and automatically upgrade from fileformat v5.