pgvector and Qdrant Parity Matrix

This file is generated from docs/user_guide/parity_matrix.data. Run scripts/generate-parity-matrix.sh after changing the source data.

Status values:

  • stable: covered by the first production SQL compatibility contract.
  • experimental: SQL-visible or implemented, but outside the production promise.
  • internal: implemented for pgContext composition, with no public SQL promise.
  • planned: explicitly not part of the first stable surface yet.
  • intentionally different: pgContext deliberately uses PostgreSQL-native semantics.
Capability Reference Status pgContext release contract Owning reference
Dense vector SQL type, casts, operators, aggregates pgvector stable Dense vector, including vector(n) typmod metadata and assignment enforcement, is the stable first-release vector surface. docs/user_guide/api_reference.md
Exact vector search over arrays and registered tables pgvector,Qdrant stable Exact search is the correctness baseline for SQL search, recall checks, ANN, and hybrid retrieval. docs/user_guide/vector_search.md
Collections over PostgreSQL source tables Qdrant stable Collections reference authoritative PostgreSQL source tables and pgContext catalog metadata. docs/user_guide/collections.md
Point upsert and delete mappings Qdrant stable Point APIs map source keys to stable pgContext point IDs without owning source rows. docs/user_guide/collections.md
Filter JSON over ordinary columns and JSONB paths Qdrant stable Registered fields render through typed SQL predicates and SPI parameters. docs/user_guide/filters.md
Scroll, count, and facet Qdrant stable Stable APIs operate over active table-backed point mappings with shared filter semantics. docs/user_guide/api_reference.md
Dense plus lexical hybrid query Qdrant stable pgcontext.query supports dense vector plus registered lexical retrieval with reciprocal rank fusion. docs/user_guide/hybrid_retrieval.md
Telemetry and operational status functions Qdrant stable Diagnostics expose typed statuses and local counters without vectors, payloads, filters, or literal query text. docs/user_guide/operations.md
Profile-backed embedding migrations Qdrant experimental Migration progress references immutable source and target embedding profiles; the mutable model-version registry has been removed. docs/user_guide/multi_model.md
HNSW access method pgvector,Qdrant experimental pgcontext_hnsw serves dense and halfvec/sparsevec L2, inner-product, cosine, and L1 kNN plus bitvec Hamming/Jaccard through metric-bound persisted PostgreSQL pages. Non-dense opclass names and bindings are stable; the access method’s on-disk compatibility remains experimental. Traversal exposes hnsw_last_scan_work, has no silent exact fallback, and every non-dense pair passes exact-oracle and bounded-candidate gates. docs/user_guide/indexes.md
Filtered ANN serving Qdrant experimental Filtered table search binds a validated HNSW index and, in one statement snapshot, materializes registered column/JSONB candidates once. Selective masks cross over to exact scoring; broader masks drive one page-backed HNSW traversal using the stored metric. Masked-out nodes remain connectors and sparse masks can expand through ACORN-like second-hop neighbors. Final source joins preserve logical PointId, MVCC/deletion state, ACL/RLS, predicate, and exact-distance rechecks. Selective, broad, empty, stale-stat, deleted, typed JSONB, tenant-isolation, and cancellation cases are covered. docs/user_guide/vector_search.md
SQL halfvec pgvector experimental halfvec text I/O, dimensions, typmods, exact distance helpers, distance operators, explicit rounding numeric-array casts, aggregates, and btree ordering remain experimental; stable HNSW opclasses cover L2, inner product, cosine, and L1 over dense graph storage. docs/user_guide/pgvector_migration.md
SQL sparsevec pgvector,Qdrant experimental sparsevec text I/O, dimensions, typmods, structured construction, casts, exact metrics, aggregates, and collection metadata remain experimental; stable HNSW opclasses cover L2, inner product, cosine, and L1, and named sparse search can bind them for bounded candidates with exact rerank. docs/user_guide/vector_search.md
SQL bit vectors pgvector experimental bitvec type helpers, casts, exact Hamming/Jaccard operators, aggregates, and btree ordering remain experimental; stable explicit HNSW opclasses serve Hamming and Jaccard. Default pgcontext_hnsw attempts fail with SQLSTATE 42704 so callers must choose the bit metric. docs/user_guide/pgvector_migration.md
SQL quantization APIs pgvector,Qdrant stable Binary, scalar/SQ8-style, and product encodings serve from revision-bound segmented packed shared or mapped HNSW artifacts with exact source rerank; the frozen 1M release lane passed on PG17 and PG18. docs/user_guide/indexes.md
Named dense vector registration and search Qdrant stable Named dense vector registration, dimensions, metrics, and search-by-name selection are part of the first stable table-backed search surface. docs/user_guide/collections.md
Per-vector dense index and quantization metadata Qdrant experimental The experimental collection_vectors and configure_vector functions expose validated metadata containers; HNSW/quantization option semantics and full planner use remain planned. docs/user_guide/collections.md
Named sparse vectors per collection Qdrant experimental Sparse registration, exact fallback, validated metric-matched HNSW attachment, filtered candidate masks, bounded work diagnostics, authoritative exact rerank, and exact dense+sparse RRF query fusion are SQL-visible. docs/user_guide/collections.md
Multi-vector and late-interaction query Qdrant experimental Exact late-interaction MaxSim rerank over explicit arrays, exact table-backed vector[] search, typed ANN-planner diagnostics, and HNSW token candidate generation with O(1) declared token-dimension validation, source-table exact MaxSim rerank, deleted-point checks, token-table prerequisite failures, planner preflight, and hydrated budget checks are SQL-visible; full memory/latency release gates remain open. docs/user_guide/vector_search.md
Recommendation search Qdrant stable Positive/negative point-ID and raw-vector recommendation search uses exact rerank with ACL/RLS and deleted-point checks. docs/user_guide/vector_search.md
Discovery or explore search Qdrant stable Exact diversity-oriented discover/explore search ranks active rows farthest from visible context examples. docs/user_guide/vector_search.md
Query constructors and composite execution Qdrant stable Validated SQL constructors produce bounded executable plans for named/filtered dense, named sparse, full-text, quantized mapped HNSW, owned late-interaction, recommend, discover, lookup, prefetch, weighting, thresholds, formulas, and final score ordering; every retrieval candidate is authoritatively rechecked before fusion. docs/user_guide/vector_search.md
Grouped search Qdrant stable Grouped exact search caps results per registered payload field with deterministic ordering and PostgreSQL ACL/RLS checks. docs/user_guide/collections.md
Payload mutation helpers Qdrant stable Registered payload fields can be set, deleted, or cleared through documented source-table mutation policy. docs/user_guide/collections.md
Bulk point backfill APIs Qdrant stable Bulk point upsert, delete, and source-table backfill APIs report bounded per-batch progress diagnostics. docs/user_guide/collections.md
IVFFlat pgvector experimental Native pgcontext_ivfflat provides deterministic external construction, bounded probes and iterative widening, DML/VACUUM/REINDEX/CIC/partition/WAL/replica lifecycle, dense/half/integer/bit opclasses, and shared SQ8/PQ posting codecs with exact source rerank. The optional conflict-safe facade supplies the ivfflat spelling when free, and ownership conversion preserves certified lists while rebuilding native pages. docs/user_guide/indexes.md
pgvector migration and compatibility pgvector stable The main extension publishes a precise compatibility inventory, conflict-safe native-name facade, pgvector-owned-type binding, and resumable HNSW/IVFFlat ownership conversion with exact validation, rollback, and PG17/18 lifecycle gates. docs/user_guide/pgvector_coexist.md
PostgreSQL-native ACL, RLS, transactions, and backups Postgres improvement intentionally different pgContext relies on PostgreSQL source tables, privileges, RLS, transactions, backup, and WAL instead of replacing them. docs/user_guide/security.md
Rebuildable acceleration artifacts Postgres improvement intentionally different Indexes and segment files are cache artifacts; PostgreSQL tables remain authoritative. docs/user_guide/storage.md
PostgreSQL-native lexical retrieval Elasticsearch stable Registered tsvector sources serve typed lexical queries with bounded GIN/GiST candidate probes and authoritative source recheck. docs/user_guide/lexical_retrieval.md
Trigram fuzzy retrieval Elasticsearch experimental Registered optional pg_trgm sources serve typed fuzzy queries with bounded GIN/GiST candidate probes, scoped thresholds, and authoritative source recheck. docs/user_guide/lexical_retrieval.md
Adaptive-dimension Matryoshka retrieval Qdrant experimental Model-certified prefixes drive candidate generation while final ranking uses the full authoritative dimensions, so a prefix cannot change the answer. docs/user_guide/adaptive_dimension.md
Version-safe multi-model retrieval Qdrant stable Version-bound active or draining profiles execute independent authorized branches and combine only ranks through bounded weighted RRF with explicit degraded policy. The frozen equal-weight held-out contract passes at one million rows on PostgreSQL 17 and 18. docs/user_guide/multi_model.md
Provider-neutral semantic reranking Qdrant,Elasticsearch experimental A detached bounded envelope releases only PostgreSQL-authorized current text to an external worker; untrusted scores cannot add candidates and every returned row is rechecked under current source hash/version, deletion, filter, ACL, and RLS state. Local PG17/PG18 certification and an opt-in revision-pinned MiniLM PostgreSQL prepare-score-finalize smoke pass. A general transformer backend inside pgcontext-worker, retained held-out quality and authority-churn tests, and hosted Darwin/Linux arm64/x86_64 evidence are still required for Stable promotion. docs/user_guide/semantic_reranking.md
Automatic document chunking Qdrant,Elasticsearch experimental Versioned plain-text, Markdown, and HTML workers produce deterministic citable chunks through fenced jobs, canonical source revalidation, private staging, fake-embedding work records, and atomic generation aliases under PostgreSQL ACL, RLS, MVCC, backup, and transaction rules. An opt-in revision-pinned MiniLM smoke proves 384-dimension HNSW retrieval with citation preservation, but no production embedding-job integration is implemented. Both frozen PG17 and PG18 one-million-row source-cardinality lanes miss the 1,000-chunks-per-second publication floor, so Stable promotion is a measured no-go. docs/user_guide/automatic_chunking.md
Exact-first readiness Qdrant,Postgres improvement experimental Dense-vector registration is queryable through a complete exact source scan immediately. Explicit immutable plans may later build and publish a structurally verified HNSW or IVFFlat index through fenced top-level concurrent DDL without changing source authority, ACL, RLS, or exact final order. Both frozen PG17 and PG18 ten-million-row lanes preserve exactness and 100% top-10 recall but miss building/indexed latency and temp ceilings, so Stable promotion is a measured no-go. docs/user_guide/exact_first_readiness.md
Lazy HNSW cursor Qdrant internal The bounded graph-read HNSW traversal is available as a deterministic statement-local cursor for internal composition. Existing eager APIs drain the same implementation; no SQL or planner default is exposed. docs/user_guide/lazy_hnsw_cursor.md
Virtual beam engine Qdrant internal The vector-only provider-neutral kernel owns a bounded parent arena, deterministic dominance and cycle pruning, separated score components, and content-free diagnostics. Topology expansion, SQL exposure, and planner selection remain later phases. docs/user_guide/virtual_beam.md