Performance Improvements ๐
- Top-K searches over a common phrase, or over a regex combined with another filter, plan parallel workers again. Their estimated scan cost collapsed to near zero, so the planner read them as cheap enough for a single core.
Stability Improvements ๐ช
-
Fixed the join scan dropping rows after a HOT update and a
VACUUM. The index keeps the HOT root,VACUUMprunes that root into a redirect line pointer, and the scanโs final heap fetch stopped at the redirect instead of following the chain to the visible row (#6375). -
A query that reads a JSON path now returns NULL for a segment whose documents never carry that key, instead of failing with
`metadata.brand` is missing or is not configured as columnar. A segment writes a column for a JSON path only when one of its documents has the key, so a row inserted afterCREATE INDEXwithout the key used to break the scan (#6363). -
Fixed wrong results for
SUM,AVG,MINandMAXoverCOALESCE(field, default)when the column canโt hold the default exactly, such as a fraction on an integer column, a negative value on a JSON sub-field, orNaN. Postgres now runs these aggregates, also as window aggregates in top K queries.COUNT(COALESCE(field, default))now counts every row, also over string columns (#6353).