-
Notifications
You must be signed in to change notification settings - Fork 415
Description
Bug Report
Image: ruvnet/ruvector-postgres:2.0.1 (Docker Hub)
Platform: Fly.io (iad region), PostgreSQL 17.7
Problem
The Docker image ruvnet/ruvector-postgres:2.0.1 installs the ruvector extension at version 0.3.0, not 2.0.0 or 2.0.1 as the image tag suggests.
postgres=# SELECT extversion FROM pg_extension WHERE extname='ruvector';
0.3.0
postgres=# SELECT * FROM pg_available_extension_versions WHERE name = 'ruvector';
ruvector | 0.1.0 | f
ruvector | 0.3.0 | t -- installed
ruvector | 2.0.0 | f -- available but no update path from 0.3.0Impact
1. HNSW indexes break non-vector queries
In ruvector 0.3.0, HNSW indexes interfere with the query planner for non-vector operations. Simple COUNT(*) queries on tables with HNSW indexes fail with:
ERROR: HNSW: Could not extract query vector from parameter.
This makes diagnostic queries, health checks, and any aggregation queries fail on tables that have HNSW indexes. The workaround is to drop all HNSW indexes, which removes O(log n) search capability.
2. No upgrade path from 0.3.0 to 2.0.0
ALTER EXTENSION ruvector UPDATE TO '2.0.0' returns:
ERROR: extension "ruvector" has no update path from version "0.3.0" to version "2.0.0"
The only way to upgrade is DROP EXTENSION ruvector CASCADE which destroys ALL columns of type ruvector across ALL schemas — a destructive operation that requires full re-embedding.
3. The latest image has the same problem
ruvnet/ruvector-postgres:latest (updated 2026-03-03) ships the same 0.3.0 extension .so file. Even after deploying latest, the shared library at /usr/lib/postgresql/17/lib/ruvector.so has 0.3.0 internals. Attempting to create the extension at version 2.0.0 with this .so results in missing functions:
ERROR: could not find function "ruvector_embed_wrapper" in file "/usr/lib/postgresql/17/lib/ruvector.so"
Expected Behavior
ruvnet/ruvector-postgres:2.0.1should ship ruvector extension 2.0.xruvnet/ruvector-postgres:latestshould ship the latest stable ruvector extension- There should be an upgrade path from 0.3.0 to 2.0.0 (or clear migration documentation)
- HNSW indexes should not interfere with non-vector queries
Requested Fix
- Rebuild Docker images with the correct ruvector .so matching the image tag version
- Add an update path SQL script (0.3.0 → 2.0.0) or document the migration procedure
- Fix the HNSW planner interference bug in the extension
Environment
- Docker image:
ruvnet/ruvector-postgres:2.0.1and:latest - PostgreSQL: 17.7 (Debian 17.7-3.pgdg12+1)
- Host: Fly.io (iad region, 256MB RAM)
- Local comparison: ruvector 2.0.0 extension on local Docker (same image tag 2.0.1) works correctly — suggesting the images on Docker Hub may have been built at different times with different .so files