pgContext 0.2.0 expands PostgreSQL-native vector retrieval while keeping ordinary PostgreSQL tables authoritative. Transactions, MVCC, ACL/RLS, backups, and recovery continue to be owned by PostgreSQL; HNSW indexes remain rebuildable acceleration artifacts.
Highlights
- Exact dense-vector search with L2, inner-product, cosine, and L1 metrics
- Page-native HNSW indexes with inserts, VACUUM, REINDEX, restart, and WAL-aware lifecycle support
- Metadata-filtered exact and approximate search
- Collections, scrolling, counts, facets, grouping, recommendation, and discovery
- Hybrid dense and PostgreSQL full-text retrieval
- Named dense and sparse retrieval paths
- Experimental
halfvec,sparsevec, andbitvectypes and HNSW operator classes - Quantization, late-interaction, and composite-query building blocks
- Expanded diagnostics, recall checks, lifecycle status, and bounded telemetry
- PostgreSQL 17 and 18 images for
linux/amd64andlinux/arm64
PostgreSQL 17 remains the primary performance and deep-lifecycle qualification target.
Upgrading from 0.1.0
A standalone 0.1.0 → 0.2.0 extension upgrade is supported:
ALTER EXTENSION pgcontext UPDATE TO '0.2.0';The upgrade requires a PostgreSQL superuser. pgContext-owned vector types now live in the pgcontext schema, so applications should use qualified names such as pgcontext.vector(1536) or add pgcontext to search_path.
Because the HNSW on-disk format remains experimental, rebuild existing HNSW indexes after upgrading.
For pgvector coexistence, use the optional pgcontext_pgvector companion. Its certified profile is PostgreSQL 17 with pgvector 0.8.x.
Current boundaries
This release is intended for prototypes, evaluation, and controlled pilots.
- HNSW, filtered ANN, non-dense vectors, quantized serving, and late-interaction paths remain experimental.
- IVFFlat is not implemented.
- pgContext is not a drop-in replacement for pgvector.
- Broad production and long-duration workload certification remains ongoing.
See the full release notes, installation guide, and known issues for details.