-- pg_turbovec v1.15.1 -- cross-version build fix (pg13/14/15/18). -- -- This file is a *reference mirror*. The authoritative install -- script is generated by `cargo pgrx schema`. -- -- v1.15.1 fixes a cross-PG-version BUILD regression introduced in -- v1.12.0 (the Phase B-4 out-of-core IVF build): the BufFile corpus -- spill called pg_sys::BufFileReadExact (which only exists in PG16+) -- and passed BufFileWrite a *const pointer (PG13-15 declare it -- *mut). The extension compiled on pg16/pg17 (the local dev target) -- but FAILED TO COMPILE on pg13, pg14, pg15, and pg18 -- silently -- breaking those CI matrix legs from v1.12.0 through v1.15.0. -- -- The fix wraps both calls in version-gated shims (buffile_write / -- buffile_read_exact in src/index/build.rs) so the corpus spill -- builds across the full pg13..pg18 matrix. BufFileRead (present on -- every version) backs the read shim with an explicit short-read -- check. A new scripts/compile-matrix.sh `cargo check`s every PG -- feature and is wired into the pre-push hook so this class of -- version-specific API break is caught locally before tagging. -- -- This is a BUILD-ONLY fix. On pg16/pg17 (where v1.12.0-v1.15.0 -- already compiled) the runtime behaviour and the on-disk relfile -- are UNCHANGED (MetaPageData::version = 4). There is no DDL, no -- on-disk migration, and NO REINDEX. `ALTER EXTENSION pg_turbovec -- UPDATE TO '1.15.1';` resolves against this intentionally-empty -- file.