Skip to content

v0.9.8

Compare
Choose a tag to compare
@eeeebbbbrrrr eeeebbbbrrrr released this 14 Jul 00:51

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> and Array<pg_sys::BOX>.

  • PR #1209 fixes lifetime issues with the safe Spi API. Previously, it was possible for SpiTupleTable and PreparedStatement objects to escape the Spi::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 touch pgrx-pg-sys/build.rs too.

Full Changelog: v0.9.7...v0.9.8