-- pg_turbovec v1.24.0 -- Phase G-2b: VACUUM + incremental INSERT for -- the graph index kind (WITH (graph = true)). -- -- This file is a *reference mirror*. The authoritative install -- script is generated by `cargo pgrx schema`. -- -- NO wire-format change. Wire format stays VERSION 6, byte-identical -- to v1.23.0. Existing v4 (single-vector), v5 (ColBERT), and v6 -- (graph) indexes all decode unchanged. NO REINDEX needed for any -- existing index. -- -- What changed (binary-side only, no SQL surface change): -- -- * ambulkdelete (VACUUM) against a graph index now uses the same -- per-slot tombstone bitmap IVF already uses (previously raised -- a clear ERROR). Tombstoned nodes never appear in scan results -- and their out-edges are never traversed. -- -- * aminsert against a graph index now works (previously raised a -- clear ERROR). It is a deliberate whole-relfile rewrite per -- insert -- O(n) per row, appropriate for the build-then-serve -- model the graph kind targets. Heavy incremental churn should -- still REINDEX periodically. -- -- Two real bugs fixed along the way (see CHANGELOG.md for detail): -- a tombstone-chain / graph-adjacency-chain block-offset collision -- that corrupted a graph index on insert-after-VACUUM, and a VACUUM -- entry-point fallback that missed the "entry point survives but all -- its neighbors were tombstoned" dead-end case. Both are binary -- fixes; neither changes the on-disk format. -- -- Migration: `ALTER EXTENSION pg_turbovec UPDATE TO '1.24.0';`. -- No REINDEX, no wire change, no SQL-surface change. Graph indexes -- built under v1.23.0 can now be VACUUMed and inserted into in place. -- -- Still deferred (unchanged from v1.23.0): G-2c (SIMD-optimized -- traversal + build parallelism), G-2d (the 5M-scale AVX2 -- HNSW-latency gate measurement). -- .