Breaking change: 0.25.1 replaces the vector search engineβs epsilon
recall knob with a proof-based bounds gate. The
paradedb.vector_cluster_probe_epsilon GUC has been removed, and vector
indexes built with 0.25.0 must be rebuilt with REINDEX after upgrading.
New Features π
Faster Vector Search, One Less Knob
Vector search now uses a proof-based bounds gate with a work budget, which skips clusters that provably cannot
contribute to the result. This cuts tail latency by up to 6x and produces much tighter recall/latency confidence
intervals.
Because the gate is proof-based, there is no longer a recall knob to misconfigure: paradedb.vector_cluster_max_probe,
the work-budget ceiling, is now the only recall/latency setting.
Deterministic Vector Search Results
Tiebreaker columns can now follow the distance in ORDER BY, making vector search results deterministic
when embeddings are equidistant from the query vector:
Vector Search in Hybrid Queries
The vector arm of reciprocal rank fusion queries is now pushed down into the ParadeDB
index, accelerating hybrid search.
ORM Support for Vector Search
The ParadeDB ORM integrations have been updated for the paradedb index naming, native vector search, and the
vector index build options:
LEFT, RIGHT, and FULL Joins
JoinScan now supports LEFT, RIGHT, and FULL joins, extending the join shapes that execute inside the
ParadeDB index.
- Vector index builds hand training vectors to the clusterer by value, halving training memory.
- Vector index build parallelism is capped at 4 workers to prevent memory spikes on large builds.
- A new
paradedb.vector_clustering_threshold GUC (default 500) sets the segment size at which vector storage
switches from flat to clustered.
- MPP workers now launch plan-first, sized from the planβs task fragments, and the default ring size was lowered
to 8MB.
- Range partitioning is now wired into join planning.
Stability Improvements πͺ
- AggregateScan join predicates are now normalized and validated.
- Fixed a spurious
datetime_fields error.
- Dynamic filters now survive across MPP fragments.
- The extension Docker image now ships
pg_searchβs non-base shared libraries.
- Multi-valued fields are now disallowed in
partition_by and sort_by.
The full changelog is available on the GitHub Release.