Skip to main content

New Features 🎉

  • Beta release of native support for JOIN pushdown! See the docs for more information.
  • All text column types now support optionally being marked columnar=true, allowing them to be used as the input to aggregates, joins, or covering index scans.
  • Support for pushdown of queries on NUMERIC columns to the index.
    • NOTE: Pushdown for NUMERIC columns requires a reindex.
  • You can now specify a separate tokenizer for use at search-time.
  • Support for indexing more than 32 columns in one index.
  • Stopwords for multiple languages may be specified per-field.
  • Following the model of the amcheck extension, you can now explicitly verify the integrity of an index using pdb.verify_index.
  • Added support for Citus 14, with support for Postgres 18.
  • Support for JSONB exists (?) operator pushdown.
  • Support for using index expressions and UNNEST in aggregate queries.
  • Support for tokenining UUID columns.

Performance Improvements 🚀

  • When visibility filtering is not able to use the visibility map, it now executes the minimal safe heap check, showing up to 50% speedup on MVCC-safe aggregates.
  • Queries on small tables run up to 6x faster by using appropriate numbers of parallel workers.
  • Writes to mutable segments will now apply backpressure, avoiding performance degradation during extended write traffic.
  • 4-5x faster planning for regex and fuzzy queries.
  • VACUUMs now cooperatively cancel background merges, to ensure that the visibility map is up to date for read queries.

Stability Improvements 💪

  • The ICU tokenizer is now implemented in Rust via the icu_segmenter crate, which avoids a runtime dependency on a particular ICU version being installed on the target system.
  • Significantly improved warnings when Top-K or aggregate queries do not meet the requirements for pushdown.
  • Audited all sources of double panics to ensure helpful error messages are rendered.
  • Improved validation of indexed datetime columns.
  • Improved validation of pdb.agg arguments.
The full changelog is available on the GitHub Release.