Latest release: pgvector 0.8.7 (2026-10-01). In development: 0.9.0 — asynchronous I/O for HNSW, drops Postgres 13 and 14. Check yours:
demo=# SELECT extversion FROM pg_extension WHERE extname = 'vector';
extversion
------------
0.8.7
(1 row)
demo=# SHOW server_version;
server_version
----------------------------------
18.6 (Ubuntu 18.6-1.pgdg24.04+2)
(1 row)What is my version missing?#
Choose the version you run, or your provider's documented version. The list is computed from the upstream changelog; fixes for corruption, buffer overflows, crashes and wrong results are flagged.
Milestones#
Five years of releases, and the handful that changed how people use pgvector:
| Version | Date | What changed |
|---|---|---|
| 0.1.0 | 2021-04-20 | First release. |
| 0.4.0 | 2023-01-11 | Max dimensions raised from 1,024 to 16,000 (2,000 for indexes); avg aggregate; experimental Windows support. |
| 0.5.0 | 2023-08-28 | HNSW index. Parallel IVFFlat builds, L1 distance, sum. |
| 0.6.0 | 2024-01-29 | Parallel HNSW builds; lower memory and WAL during builds; Docker images move to the pgvector org. |
| 0.7.0 | 2024-04-29 | halfvec, sparsevec, bit indexing, binary_quantize, Hamming/Jaccard, L1 for HNSW, l2_normalize, subvector. |
| 0.8.0 | 2024-10-30 | Iterative index scans for filtered queries; better cost estimation with filters; faster HNSW scans and builds; drops Postgres 12. |
| 0.8.1 | 2025-09-04 | Postgres 18 support; faster binary_quantize. |
| 0.8.2–0.8.7 | 2026-02 → 2026-10 | Stability: buffer-overflow fixes in parallel HNSW and IVFFlat builds, possible HNSW index corruption during vacuum, memory fixes. |
| 0.9.0 | unreleased | Asynchronous I/O for HNSW; vector_dims for sparsevec; drops Postgres 13 and 14. |
pgvector releases per year
Counted from the upstream CHANGELOG. 2026 so far: through 0.8.7 (October).
| Year | Releases | Versions |
|---|---|---|
| 2021 | 10 | 0.1.0, 0.1.1, 0.1.2, 0.1.3, 0.1.4, 0.1.5, 0.1.6, 0.1.7, 0.1.8, 0.2.0 |
| 2022 | 10 | 0.2.1, 0.2.2, 0.2.3, 0.2.4, 0.2.5, 0.2.6, 0.2.7, 0.3.0, 0.3.1, 0.3.2 |
| 2023 | 7 | 0.4.0, 0.4.1, 0.4.2, 0.4.3, 0.4.4, 0.5.0, 0.5.1 |
| 2024 | 9 | 0.6.0, 0.6.1, 0.6.2, 0.7.0, 0.7.1, 0.7.2, 0.7.3, 0.7.4, 0.8.0 |
| 2025 | 1 | 0.8.1 |
| 2026 | 6 | 0.8.2, 0.8.3, 0.8.4, 0.8.5, 0.8.6, 0.8.7 |
Which version do I need for…?#
| Feature | Minimum version |
|---|---|
| HNSW index | 0.5.0 |
| Parallel HNSW index builds | 0.6.0 |
halfvec (half precision, index up to 4,000 dims) | 0.7.0 |
sparsevec | 0.7.0 |
Indexing bit vectors, binary_quantize(), Hamming and Jaccard distance | 0.7.0 |
L1 distance in HNSW indexes (vector_l1_ops) | 0.7.0 |
l2_normalize(), subvector(), || concatenation | 0.7.0 |
Iterative index scans (hnsw.iterative_scan, ivfflat.iterative_scan) | 0.8.0 |
Casting arrays to sparsevec | 0.8.0 |
| PostgreSQL 18 | 0.8.1 |
| Fix for possible HNSW index corruption during vacuum | 0.8.3 |
| All current bug fixes | 0.8.7 |
PostgreSQL support by version#
pgvector supports the PostgreSQL majors the community still maintains, dropping each one around its community end of life. From the changelog:
| pgvector | Change in Postgres support |
|---|---|
| 0.2.0 (2021-10) | Added Postgres 14 |
| 0.3.0 (2022-10) | Added Postgres 15; dropped 9.6 |
| 0.4.0 (2023-01) | Dropped 10 |
| 0.6.0 (2024-01) | Dropped 11 |
| 0.8.0 (2024-10) | Dropped 12 |
| 0.8.1 (2025-09) | Added Postgres 18 (rc1) |
| 0.9.0 (unreleased) | Drops 13 and 14 |
Today, 0.8.7 runs on PostgreSQL 13 and newer, with official Docker images for 13 through 18. PGDG already builds 0.8.7 packages for PostgreSQL 19, though upstream hasn't announced 19 support.
Upgrading#
- Install the new version's files on the server — new package, new Docker tag, or
make installfrom the new git tag. See install → upgrade for each platform. - Restart only if needed. A new shared library is picked up by new connections. Docker containers must be recreated from the new image.
- Run
ALTER EXTENSION vector UPDATE;in every database that uses pgvector. It applies the SQL upgrade scripts (for examplevector--0.8.6--0.8.7.sql). - Verify with
SELECT extversion FROM pg_extension WHERE extname = 'vector';
Version-specific notes from the changelog:
- From 0.2.7 or 0.3.0: recreate all IVFFlat indexes after upgrading to 0.3.1+; inserts could silently corrupt them.
- 0.4.0 and 0.6.0 changed how
vectorvalues are stored (plain→extended→external) and have extra notes for Postgres 12 and Docker users; read them in the upstream README if you're coming from before 0.6. - Managed providers control the binaries. You can only
ALTER EXTENSION vector UPDATEto a version they've installed — checkpg_available_extensions.
Full release history#
Every release, newest first, from the upstream CHANGELOG (copied 2026-10-27).
0.9.0 (unreleased)
- Added asynchronous I/O for HNSW indexes
- Added
vector_dimsfunction forsparsevec - Improved performance of HNSW inserts with
sparsevec - Improved
amvalidatefor indexes - Dropped support for Postgres 13 and 14
0.8.7 · 2026-10-01
- ⚠ Fixed buffer overflow with IVFFlat index build (issue)
- Fixed error with
avgaggregate when no matching rows
0.8.6 · 2026-07-29
- ⚠ Fixed buffer overflow with IVFFlat index build on 32-bit systems (issue)
- Fixed array to
sparseveccast not limiting non-zero elements - Fixed memory usage for IVFFlat index scans with nested loop joins
0.8.5 · 2026-07-08
- Reduced memory usage for small tables for IVFFlat index builds
0.8.4 · 2026-06-30
- Fixed
hnsw graph not repairederror with HNSW vacuuming - Fixed possible error with inserts during HNSW vacuuming
- Fixed memory exceeding
maintenance_work_memwith IVFFlat index builds
0.8.3 · 2026-06-17
- ⚠ Fixed possible index corruption with HNSW vacuuming
- Fixed performance regression with Hamming distance and Jaccard distance with Postgres 18
0.8.2 · 2026-02-25
- ⚠ Fixed buffer overflow with parallel HNSW index build (issue)
- Improved
installtarget on Windows - Fixed
Index SearchesinEXPLAINoutput for Postgres 18
0.8.1 · 2025-09-04
- Added support for Postgres 18 rc1
- Improved performance of
binary_quantizefunction
0.8.0 · 2024-10-30
- Added support for iterative index scans
- Added casts for arrays to
sparsevec - Improved cost estimation for better index selection when filtering
- Improved performance of HNSW index scans
- Improved performance of HNSW inserts and on-disk index builds
- Dropped support for Postgres 12
0.7.4 · 2024-08-05
- Fixed locking for parallel HNSW index builds
- Fixed compilation error with GCC 14 on i386 when SSE2 is not enabled
0.7.3 · 2024-07-22
- Fixed
failed to add index itemerror withsparsevec - Fixed compilation error with FreeBSD ARM
- Fixed compilation warning with MSVC and Postgres 16
0.7.2 · 2024-06-11
- Fixed initialization fork for indexes on unlogged tables
0.7.1 · 2024-06-03
- Improved performance of on-disk HNSW index builds
- Fixed
undefined symbolerror with GCC 8 - Fixed compilation error with universal binaries on Mac
- Fixed compilation warning with Clang < 14
0.7.0 · 2024-04-29
- Added
halfvectype - Added
sparsevectype - Added support for indexing
bittype - Added support for indexing L1 distance with HNSW
- Added
binary_quantizefunction - Added
hamming_distancefunction - Added
jaccard_distancefunction - Added
l2_normalizefunction - Added
subvectorfunction - Added concatenate operator for vectors
- Added CPU dispatching for distance functions on Linux x86-64
- Updated comparison operators to support vectors with different dimensions
0.6.2 · 2024-03-18
- Reduced lock contention with parallel HNSW index builds
0.6.1 · 2024-03-04
- Fixed error with
ANALYZEand vectors with different dimensions - ⚠ Fixed segmentation fault with
shared_preload_libraries - Fixed vector subtraction being marked as commutative
0.6.0 · 2024-01-29
If upgrading with Postgres 12 or Docker, see these notes.
- Added support for parallel index builds for HNSW
- Added validation for GUC parameters
- Changed storage for vector from
extendedtoexternal - Improved performance of HNSW
- Reduced memory usage for HNSW index builds
- Reduced WAL generation for HNSW index builds
- Fixed error with logical replication
- ⚠ Fixed
invalid memory alloc request sizeerror with HNSW index builds - Moved Docker image to
pgvectororg - Added Docker tags for each supported version of Postgres
- Dropped support for Postgres 11
0.5.1 · 2023-10-10
- Improved performance of HNSW index builds
- Added check for MVCC-compliant snapshot for index scans
0.5.0 · 2023-08-28
- Added HNSW index type
- Added support for parallel index builds for IVFFlat
- Added
l1_distancefunction - Added element-wise multiplication for vectors
- Added
sumaggregate - Improved performance of distance functions
- ⚠ Fixed out of range results for cosine distance
- Fixed results for NULL and NaN distances for IVFFlat
0.4.4 · 2023-06-12
- Improved error message for malformed vector literal
- ⚠ Fixed segmentation fault with text input
- Fixed consecutive delimiters with text input
0.4.3 · 2023-06-10
- Improved cost estimation
- Improved support for spaces with text input
- Fixed infinite and NaN values with binary input
- Fixed infinite values with vector addition and subtraction
- Fixed infinite values with list centers
- Fixed compilation error when
float8is pass by reference - Fixed compilation error on PowerPC
- ⚠ Fixed segmentation fault with index creation on i386
0.4.2 · 2023-05-13
- Added notice when index created with little data
- Fixed dimensions check for some direct function calls
- Fixed installation error with Postgres 12.0-12.2
0.4.1 · 2023-03-21
- Improved performance of cosine distance
- Fixed index scan count
0.4.0 · 2023-01-11
If upgrading with Postgres < 13, see this note.
- Changed text representation for vector elements to match
real - Changed storage for vector from
plaintoextended - Increased max dimensions for vector from 1024 to 16000
- Increased max dimensions for index from 1024 to 2000
- Improved accuracy of text parsing for certain inputs
- Added
avgaggregate for vector - Added experimental support for Windows
- Dropped support for Postgres 10
0.3.2 · 2022-11-22
- ⚠ Fixed
invalid memory alloc request sizeerror
0.3.1 · 2022-11-02
If upgrading from 0.2.7 or 0.3.0, recreate all `ivfflat` indexes after upgrading to ensure all data is indexed.
- ⚠ Fixed issue with inserts silently corrupting
ivfflatindexes (introduced in 0.2.7) - ⚠ Fixed segmentation fault with index creation when lists > 6500
0.3.0 · 2022-10-15
- Added support for Postgres 15
- Dropped support for Postgres 9.6
0.2.7 · 2022-07-31
- Fixed
unexpected data beyond EOFerror
0.2.6 · 2022-05-22
- Improved performance of index creation for Postgres < 12
0.2.5 · 2022-02-11
- Reduced memory usage during index creation
- Fixed index creation exceeding
maintenance_work_mem - Fixed error with index creation when lists > 1600
0.2.4 · 2022-02-06
- Added support for parallel vacuum
- Fixed issue with index not reusing space
0.2.3 · 2022-01-30
- Added indexing progress for Postgres 12+
- Improved interrupt handling during index creation
0.2.2 · 2022-01-15
- Fixed compilation error on Mac ARM
0.2.1 · 2022-01-02
- Fixed
operator is not uniqueerror
0.2.0 · 2021-10-03
- Added support for Postgres 14
0.1.8 · 2021-09-07
- Added cast for
vectortoreal[]
0.1.7 · 2021-06-13
- Added cast for
numeric[]tovector
0.1.6 · 2021-06-09
- ⚠ Fixed segmentation fault with
COUNT
0.1.5 · 2021-05-25
- Reduced memory usage during index creation
0.1.4 · 2021-05-09
- Fixed kmeans for inner product
- Fixed multiple definition error with GCC 10
0.1.3 · 2021-05-06
- Added Dockerfile
- Fixed version
0.1.2 · 2021-04-26
- Vectorized distance calculations
- Improved cost estimation
0.1.1 · 2021-04-25
- Added binary representation for
COPY - Marked functions as
PARALLEL SAFE
0.1.0 · 2021-04-20
- First release
Frequently asked questions
What is the latest version of pgvector?
0.8.7, released on 2026-10-01. It fixed a buffer overflow during IVFFlat index builds and an error with the avg aggregate when no rows match. Version 0.9.0 is in development: its unreleased changelog adds asynchronous I/O for HNSW indexes and drops support for PostgreSQL 13 and 14.
How do I check my pgvector version?
SELECT extversion FROM pg_extension WHERE extname = 'vector'; shows the version enabled in the current database. SELECT default_version FROM pg_available_extensions WHERE name = 'vector'; shows the newest version installed on the server. If the second is higher, run ALTER EXTENSION vector UPDATE;.
When was HNSW added to pgvector?
In version 0.5.0, released 2023-08-28. Parallel HNSW index builds followed in 0.6.0 (2024-01-29), and iterative index scans for filtered queries in 0.8.0 (2024-10-30).
Do I need to rebuild indexes after upgrading pgvector?
No, with one historical exception: IVFFlat indexes created on 0.2.7 or 0.3.0 had to be recreated after upgrading to 0.3.1. No later changelog entry asks for a rebuild.