Enhancements
- Improve performance of rolling back write transactions after making changes. If no KVO observers are used this is now constant time rather than taking time proportional to the number of changes to be rolled back. Rollbacks with KVO observers are 10-20% faster. (PR #6513)
Fixed
- Performing a query like "{1, 2, 3, ...} IN list" where the array is longer than 8 and all elements are smaller than some values in list, the program would crash (#1183, v12.5.0)
- Performing a large number of queries without ever performing a write resulted in steadily increasing memory usage, some of which was never fully freed due to an unbounded cache (Swift #7978, since v12.0.0)
Breaking changes
- None.
Compatibility
- Fileformat: Generates files with format v23. Reads and automatically upgrade from fileformat v5.
Internals
- Clear out SubscriptionStore and cancel pending notifications upon rollback to PBS after client migration to FLX. (#6389)
- Simplify the non-sync replication log by emitting the same instruction type for all three types of collections rather than different instructions per collection type. This has no functional effect but eliminates some duplicated code. (PR #6513)
- Remove TransactionChangeInfo::track_all, which was only ever used by the global notifier. (PR #6513)
- Delete util::InputStream and rename util::NoCopyInputStream to util::InputStream.