pg_textsearch 1.5.0
pg_textsearch 1.5.0 expands query capabilities, reduces maintenance stalls,
improves build and query performance, and hardens storage and concurrency.
New features
- Added Boolean filtering with PostgreSQL
tsquery, including AND, OR, NOT,
pure-negative, prefix, weight, and phrase queries. Phrase and weight
conditions use conservative heap rechecks when needed. - Added beta support for managed per-index background compaction through
pg_durable. - Added support for PostgreSQL 19 beta.
- Added Windows support, including MSVC builds and CI coverage.
- Added controls for restricting BM25 indexes on row-level-security-protected
tables.
Performance improvements
- Made segment compaction, VACUUM segment maintenance, and memtable spills
substantially less disruptive to concurrent readers and writers. Segment
merges that previously blocked writers for seconds or minutes now hold the
exclusive index lock only for publication. - Significant speedups to block decompression
- Reduced parallel index-build memory use by streaming corpus-sized metadata
and moving worker segment directories out of shared memory. - Enabled PostgreSQL's bulk-read buffer strategy for parallel builds, avoiding
unnecessary shared-buffer population during large one-pass builds. - Improved compaction of undersized and heavily deleted segments and bounded
VACUUM CTID reads so memory use no longer grows with segment size.
Bug fixes
- Fixed unstable BM25 scores and silent result truncation in deep scans.
- Fixed correctness issues when combining Boolean filtering with BM25 ranking
and when query settings change during prepared-statement lifetimes. - Fixed REINDEX cache-accounting leaks and preserved shared state when a
DROP INDEXtransaction rolls back. - Hardened memtable and tombstone-chain validation to reject corruption
instead of hanging or reading invalid pages. - Fixed segment-build overflow edge cases and strengthened concurrent writer,
maintenance, and published-index snapshot handling. - Stabilized regression, concurrency, recovery, and fault-injection tests
across supported PostgreSQL versions and non-standard environments.
New Contributors
- @nikitatsym made their first contribution in #439
- @the-osiris made their first contribution in #462
- @marty1885 made their first contribution in #501
- @ij-k made their first contribution in #488
Full Changelog: v1.4.0...v1.5.0