-- pg_turbovec v1.11.0 -- IVF survives VACUUM (tombstones) + 7.8x -- faster IVF k-means build. -- -- This file is a *reference mirror*. The authoritative install -- script is generated by `cargo pgrx schema`. -- -- v1.11.0 hardens IVF for production (Phase A-1 + E-2 of -- ): -- -- E-2: An IVF index used to silently degrade to a flat O(n) scan -- after VACUUM (swap-remove broke cell contiguity). Now the IVF -- ambulkdelete path tombstones dead slots (a persisted per-slot -- bitmap, a new v4-additive relfile chain) instead of moving rows, -- so cells stay contiguous and the index STAYS IVF through deletes. -- Tombstoned rows are excluded from every scan mask. For the -- safety-net case, degradation is now observable: a throttled -- scan-time WARNING + a new SQL function: -- -- turbovec.index_is_degraded(regclass) -> bool -- -- A-1: IVF k-means training is GEMM-batched + convergence-early- -- exit, ~7.8x faster (build-internal; no surface or wire change). -- -- Wire format stays at MetaPageData::version = 4. The tombstone -- bitmap and the ivf_degraded flag are ADDITIVE: pre-1.11.0 v4 -- indexes read as not-degraded / no-tombstones. There is no on-disk -- migration and NO REINDEX is required. The new index_is_degraded() -- function is created by cargo pgrx schema; this file is otherwise -- intentionally empty. `ALTER EXTENSION pg_turbovec UPDATE TO -- '1.11.0';` resolves cleanly.