-- pg_turbovec v1.7.3 -- turbovec fork upgrade to v0.9.0. -- -- This file is a *reference mirror*. The authoritative install -- script is generated by `cargo pgrx schema`. -- -- v1.7.3 upgrades the turbovec kernel from the v0.7.0-era fork -- (6e80a59) to a fork rebased onto upstream turbovec v0.9.0 -- (d3d468e). The headline reason: -- -- FIX: on x86_64 CPUs WITHOUT AVX2 (Intel Ivy Bridge / Sandy -- Bridge Xeons, pre-2014), the old kernel's scalar fallback -- read the perm0-interleaved SIMD code layout as if it were -- sequential, returning silently-wrong / repeated top-k from -- ORDER BY emb <=> probe LIMIT N. Upstream fixed this in -- turbovec PR #108 (issue #106), released v0.8.0, with a -- proper score_query_into_heap scalar fallback. CPUs with -- AVX2/AVX-512/NEON were never affected. -- -- The upgrade also brings (adopted but inert here): -- - TQ+ per-coordinate calibration fields, constructed as -- identity (empty) on the pg_turbovec relfile path, so they -- have NO effect on recall or wire format in v1.7.3. -- Persisting them for a recall gain is a future minor release -- (wire-format VERSION 3 -> 4 + REINDEX). -- - Security hardening: MAX_DIM=65536, NaN/Inf/huge-magnitude -- rejection, checked-mul in the .tv/.tvim loaders. -- -- The on-disk relfile format is byte-identical to v1.6.x / v1.7.x -- (MetaPageData::version = 3). There is no DDL or on-disk -- migration. The upgrade path `ALTER EXTENSION pg_turbovec UPDATE -- TO '1.7.3';` resolves against this intentionally-empty file. -- -- Affected users (pre-AVX2 x86_64) should upgrade to v1.7.3 and -- can drop any `SET enable_indexscan = off;` workaround. No -- REINDEX is needed -- the relfile bytes never changed; only the -- scan-time kernel that reads them was wrong on pre-AVX2 CPUs.