--- title: "0.25.7" description: "ParadeDB release notes for 0.25.7" --- See GitHub release: [v0.25.7](https://github.com/paradedb/paradedb/releases/tag/v0.25.7) ## New Features ✨ - `CREATE INDEX CONCURRENTLY` and `REINDEX CONCURRENTLY` now partition an index with `partition_by` the way a plain build does, so a concurrently built index no longer starts unpartitioned. - Added support for `JOIN LATERAL unnest` pushdown over array fast fields in the join and aggregate scans, enabling multi-table queries to project, filter, sort, and aggregate over unnested array elements. - `pdb.agg()` now runs over joins (including `terms` on array fields) and on single tables whose group count is past the bucket limit, with `terms` (`size`, `min_doc_count`, `missing`, `order`), `sum`, `avg`, `min`, `max`, `value_count`, `cardinality`, and nested `aggs`. - ParadeDB now supports non-equi joins (e.g. range and inequality join conditions) as well as unconstrained cross joins in both `JoinScan` and `AggregateScan`. ## Stability Improvements 💪 - `sort_by` and `partition_by` now refuse a field that has no columnar field, at `CREATE INDEX` rather than part way through the build. `partition_by` also refuses a normalized columnar field, because it cuts on the raw value and cannot prune on a column that orders by the normalized one. `sort_by` keeps such a column and warns instead, since it still orders the segment. - `pdb.agg()` buckets with equal counts now come back in key order in every query, so a `size` cut among equal counts keeps the smallest keys. A NULL bucket over a numeric field reads as `null` instead of an extreme number, and a spec with nested `aggs` now works beside a `GROUP BY` on a single table. - Fixes query planning and execution issues across joins, lateral unnest, and DISTINCT queries. Corrects outer-join predicate and NULL handling, prevents unsafe LIMIT pushdown over derived DISTINCT expressions, and fixes multi-table score calculation.