Repository navigation
v3.0.9
Ordered and deep pages stop at their rows: the planner now costs reading a source already in the requested order (record id or creation order from either end, a property's missing records then its holders, an ordered index on the sort property) against reading every candidate, and takes the cheaper. A last page, an id-ordered page or a page sorted by a property few records hold answers in milliseconds instead of reading the whole label; describe.explain reports the choice as orderPath.
linkRecords, unlinkRecords and joinPairs stream: a key join of any size runs in bounded memory. Behaviour change: edges now commit in chunks of 10,000 pairs; a join of up to 10,000 edges is still one atomic commit, and rerunning a stopped join creates only the missing edges.
Aggregation fixes: $sum over an arithmetic expression is in the rows (#436); "$alias.field" in groupBy and select reads the related record, and an unbound alias is refused (#437, #440); an alias binds only records matching the blocks nested below it (#438); an aggregation's order must name one of its outputs (#439).
No stored-format change: 3.0.9 and 3.0.8 read the same store, so an upgrade can be rolled back. See CHANGELOG.
What's Changed
Full Changelog: v3.0.8...v3.0.9