v0.9.8
This is pgrx v0.9.8. It is a minor release that fixes some soundness problems with Spi, improves cargo pgrx test
test failure output, fixes a soundness bug with arrays of pg_sys::Point
and pg_sys::BOX
, and introduces some additional testing.
As usual, please install with cargo install cargo-pgrx --locked
and update your extension crate dependencies accordingly.
While we're moving forward with the v0.10.0 line that includes Postgres 16 beta support we've fixed some other important bugs along the way and felt it prudent to add to the 0.9.x releases.
What's Changed
-
PRs #1204, and #1185 - These improve general "roundtrip" testing for all pgrx-supported datatypes and in doing so uncovered and then fixed (in #1185) a bug with
Array<pg_sys::Point>
andArray<pg_sys::BOX>
. -
PR #1209 fixes lifetime issues with the safe Spi API. Previously, it was possible for
SpiTupleTable
andPreparedStatement
objects to escape theSpi::connect(|c| ...)
scope, causing those objects to have been freed by Postgres but still assumed valid by Rust. If you had any Spi-related code that did this, it will no longer compile. This was the intent for the Spi API wrapper from the beginning, but escaped our usability testing. -
PR #1190 is from first-time contribution from @Sasasu. It fixes an over-read of the "FcInfo" function arguments array for Postgres versions 12-15. In practice pgrx would never had read more than the actual array, but technically it could have without a bounds check.
-
PR #1191 - This asserts that array-walking is properly aligned and removes an erroneous assert causing construction of certain types of arrays to raise an ERROR.
-
PR #1203 improves the
cargo pgrx test
output for individual tests that fail. In all cases now it'll output generic postgres log messages, postgres log messages generated by the failing test, and the error message received by the client. This should help to improve general debugging. -
PR #1183 cleans up generic filesystem error handling. This is mostly specific to the
cargo-pgrx
binary but does touchpgrx-pg-sys/build.rs
too.
Full Changelog: v0.9.7...v0.9.8