Patch Changes
-
Keep adapter-owned live queries and their source subscriptions when only the ordered query's finite
.limit()or.offset()changes. Preserve exact requested bounds and select only installed ranks when page windows include negative offsets. Keep Angular's list/findOne result shape consistent with the current query during reactive changes, and avoid React 18 layout-effect warnings during server rendering. (#2316) -
Treat
-0and0as distinct row values. A synced update, a replay that replaces a subscription's rows, and an optimistic update that change a field only from-0to0(or back) now publish a change; before, the Collection could store the new value while subscribers kept the old one. A draft write of0over-0is now recorded as a change instead of being dropped. A transaction that deletes a row and reinserts it with only a zero's sign changed now sends that update instead of dropping it, and an ordered live query or Effect (orderBy, with or withoutlimit) now delivers an update that changes only a zero's sign; before, it kept the old value. Join, distinct, and grouping keys still treat-0and0as equal. A sync insert of a held key whose row differs only by a zero's sign is now a duplicate key, not an equal re-insert. The same holds inside typed arrays. An ordered Effect also delivers an update whose value is a class instance, which can change in private state its enumerable fields do not show. (#2336)