- Added casts for arrays to
sparsevec
- Reduced memory usage for HNSW index scans
- Dropped support for Postgres 12
- Fixed locking for parallel HNSW index builds
- Fixed compilation error with GCC 14 on i386 when SSE2 is not enabled
- Fixed
failed to add index item
error withsparsevec
- Fixed compilation error with FreeBSD ARM
- Fixed compilation warning with MSVC and Postgres 16
- Fixed initialization fork for indexes on unlogged tables
- 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
- 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
- Reduced lock contention with parallel HNSW index builds
- Fixed error with
ANALYZE
and vectors with different dimensions - Fixed segmentation fault with
shared_preload_libraries
- Fixed vector subtraction being marked as commutative
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
toexternal
- 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
- Improved performance of HNSW index builds
- Added check for MVCC-compliant snapshot for index scans
- 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
- Improved error message for malformed vector literal
- Fixed segmentation fault with text input
- Fixed consecutive delimiters with text input
- 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
- 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
- Improved performance of cosine distance
- Fixed index scan count
If upgrading with Postgres < 13, see this note.
- Changed text representation for vector elements to match
real
- Changed storage for vector from
plain
toextended
- 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
- Fixed
invalid memory alloc request size
error
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
- Added support for Postgres 15
- Dropped support for Postgres 9.6
- Fixed
unexpected data beyond EOF
error
- Improved performance of index creation for Postgres < 12
- Reduced memory usage during index creation
- Fixed index creation exceeding
maintenance_work_mem
- Fixed error with index creation when lists > 1600
- Added support for parallel vacuum
- Fixed issue with index not reusing space
- Added indexing progress for Postgres 12+
- Improved interrupt handling during index creation
- Fixed compilation error on Mac ARM
- Fixed
operator is not unique
error
- Added support for Postgres 14
- Added cast for
vector
toreal[]
- Added cast for
numeric[]
tovector
- Fixed segmentation fault with
COUNT
- Reduced memory usage during index creation
- Fixed kmeans for inner product
- Fixed multiple definition error with GCC 10
- Added Dockerfile
- Fixed version
- Vectorized distance calculations
- Improved cost estimation
- Added binary representation for
COPY
- Marked functions as
PARALLEL SAFE
- First release