1. Home
  2. Versions
Release history

pgvector versions & upgrades

The latest pgvector is 0.8.7, released 2026-10-01. Pick the version you're running to see exactly which fixes and features you're missing — including the index-corruption fixes many managed providers haven't shipped yet.

Tested on pgvector 0.8.7 · PostgreSQL 18.6Updated 2026-10-2711 min read

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:

psqlpsql · PostgreSQL 18.6 · pgvector 0.8.7
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.

Or pick a platform
Provider versions as documented on 2026-10-27; your instance may differ — check with SQL.

Milestones#

Five years of releases, and the handful that changed how people use pgvector:

VersionDateWhat changed
0.1.02021-04-20First release.
0.4.02023-01-11Max dimensions raised from 1,024 to 16,000 (2,000 for indexes); avg aggregate; experimental Windows support.
0.5.02023-08-28HNSW index. Parallel IVFFlat builds, L1 distance, sum.
0.6.02024-01-29Parallel HNSW builds; lower memory and WAL during builds; Docker images move to the pgvector org.
0.7.02024-04-29halfvec, sparsevec, bit indexing, binary_quantize, Hamming/Jaccard, L1 for HNSW, l2_normalize, subvector.
0.8.02024-10-30Iterative index scans for filtered queries; better cost estimation with filters; faster HNSW scans and builds; drops Postgres 12.
0.8.12025-09-04Postgres 18 support; faster binary_quantize.
0.8.2–0.8.72026-02 → 2026-10Stability: buffer-overflow fixes in parallel HNSW and IVFFlat builds, possible HNSW index corruption during vacuum, memory fixes.
0.9.0unreleasedAsynchronous 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).

YearReleasesVersions
2021100.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
2022100.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
202370.4.0, 0.4.1, 0.4.2, 0.4.3, 0.4.4, 0.5.0, 0.5.1
202490.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
202510.8.1
202660.8.2, 0.8.3, 0.8.4, 0.8.5, 0.8.6, 0.8.7
Measured on PostgreSQL 18.6 + pgvector 0.8.7, 4 vCPU / 15 GB, DBpedia × OpenAI text-embedding-3-large.Method & raw data

Which version do I need for…?#

FeatureMinimum version
HNSW index0.5.0
Parallel HNSW index builds0.6.0
halfvec (half precision, index up to 4,000 dims)0.7.0
sparsevec0.7.0
Indexing bit vectors, binary_quantize(), Hamming and Jaccard distance0.7.0
L1 distance in HNSW indexes (vector_l1_ops)0.7.0
l2_normalize(), subvector(), || concatenation0.7.0
Iterative index scans (hnsw.iterative_scan, ivfflat.iterative_scan)0.8.0
Casting arrays to sparsevec0.8.0
PostgreSQL 180.8.1
Fix for possible HNSW index corruption during vacuum0.8.3
All current bug fixes0.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:

pgvectorChange 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#

  1. Install the new version's files on the server — new package, new Docker tag, or make install from the new git tag. See install → upgrade for each platform.
  2. Restart only if needed. A new shared library is picked up by new connections. Docker containers must be recreated from the new image.
  3. Run ALTER EXTENSION vector UPDATE; in every database that uses pgvector. It applies the SQL upgrade scripts (for example vector--0.8.6--0.8.7.sql).
  4. 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 vector values 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 UPDATE to a version they've installed — check pg_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_dims function for sparsevec
  • Improved performance of HNSW inserts with sparsevec
  • Improved amvalidate for 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 avg aggregate 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 sparsevec cast 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 repaired error with HNSW vacuuming
  • Fixed possible error with inserts during HNSW vacuuming
  • Fixed memory exceeding maintenance_work_mem with 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 install target on Windows
  • Fixed Index Searches in EXPLAIN output for Postgres 18
0.8.1 · 2025-09-04
  • Added support for Postgres 18 rc1
  • Improved performance of binary_quantize function
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 item error with sparsevec
  • 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 symbol error with GCC 8
  • Fixed compilation error with universal binaries on Mac
  • Fixed compilation warning with Clang < 14
0.7.0 · 2024-04-29
  • Added halfvec type
  • Added sparsevec type
  • Added support for indexing bit type
  • Added support for indexing L1 distance with HNSW
  • Added binary_quantize function
  • Added hamming_distance function
  • Added jaccard_distance function
  • Added l2_normalize function
  • Added subvector function
  • 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 ANALYZE and 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 extended to external
  • 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 size error with HNSW index builds
  • Moved Docker image to pgvector org
  • 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_distance function
  • Added element-wise multiplication for vectors
  • Added sum aggregate
  • 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 float8 is 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 plain to extended
  • 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 avg aggregate for vector
  • Added experimental support for Windows
  • Dropped support for Postgres 10
0.3.2 · 2022-11-22
  • ⚠ Fixed invalid memory alloc request size error
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 ivfflat indexes (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 EOF error
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 unique error
0.2.0 · 2021-10-03
  • Added support for Postgres 14
0.1.8 · 2021-09-07
  • Added cast for vector to real[]
0.1.7 · 2021-06-13
  • Added cast for numeric[] to vector
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.