Skip to content

Releases: pgcentralfoundation/pgrx

v0.13.0

24 Feb 22:25
5a3b3b4
Compare
Choose a tag to compare

Welcome to pgrx v0.13.0. The first update in a little bit, which makes pgrx current with upstream dependencies, rust 1.85.0 (but not 2024 Edition, yet), and a slew of fixes and cleanups and community contributions.

Upgrading

You'll need to cargo install cargo-pgrx --version 0.13.0 --locked to get the latest cargo-pgrx tool, and then you can run cargo pgrx upgrade in your extension crates to update their dependencies.

Breaking Changes

Generally, the only breaking changes in v0.13.0 are related to the user-facing SPI APIs. In general, SPI functions that previously took a Vec of Arguments now take a &[DatumWithOid], with proper lifetime bounds. This is a fairly straightforward boilerplate to update.

@YohDeadfall has done a lot of work on improving SPI's safety and it's greatly appreciated!

What's Changed

cargo-pgrx

Build System

  • use allowlist_file for bindgen by @usamoi in #1922
  • add pg_config --libdir to linker search path by @usamoi in #1932
  • lock patch version of pgrx-bindgen by @usamoi in #1939
  • Introduce a blocklist of "yanked" Postgres versions by @eeeebbbbrrrr in #1950
  • Make sure bindgen gets the cppflags even if we aren't using macOS by @thomcc in #1336

SPI

General pgrx-pg-sys Interfaces

Bug Fixes

  • Check wakeup_flags from wait_latch function to exit on WL_POSTMASTER_DEATH by @var77 in #1938

Overall Code Cleanup

Thanks!

Thanks to the community, past, present, and future. Especially to our new contributors...

New Contributors

Full Changelog: v0.12.7...v0.13.0

v0.12.9

22 Nov 16:29
a218889
Compare
Choose a tag to compare

This is pgrx v0.12.9. This version will refuse to build against Postgres versions 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21. These Postgres versions introduced an ABI incompatibility that we'd rather just not ever have to deal with.

As always, to upgrade please run cargo install cargo-pgrx --version v0.12.9 --locked.

You may need to run another cargo pgrx init to pickup the new latest versions of each major release.

What's Changed

Full Changelog: v0.12.8...v0.12.9

v0.12.8

02 Nov 17:34
dd4155c
Compare
Choose a tag to compare

This is pgrx v0.12.8. It fixes a potential deadlock during the cargo-pgrx "install" process if any of the extension schema files include the @GIT_HASH@ variable. How bizarre!

As always, to upgrade please run cargo install cargo-pgrx --version v0.12.8 --locked.

What's Changed

Full Changelog

v0.12.7...v0.12.8

v0.12.7

27 Oct 17:51
5a4ff45
Compare
Choose a tag to compare

Welcome to pgrx v0.12.7. This is a minor release which adds a few more Postgres headers, fixes a possible crashing bug, adds some more smarts to #[pg_cast], and adds a new GucFlags variant.

To upgrade, please execute cargo install cargo-pgrx --version 0.12.7 --locked. Then you can run cargo pgrx upgrade against your extension crates.

The plan is that this will be the last release in the v0.12.x series.

What's Changed

More Headers

New Features

Less Build Drama

Safety

  • fix: crash from drop impls that panic via leak_and_drop_on_delete() by @eeeebbbbrrrr in #1929

New Contributors

Full Changelog:
v0.12.6...v0.12.7

v0.12.6

14 Oct 17:41
123b2b0
Compare
Choose a tag to compare

Welcome to pgrx v0.12.6. This release fixes a number of bugs, cleans up various parts of the code, adds more Postgres #include headers, and other little things.

To upgrade, first install cargo-pgrx with cargo install cargo-pgrx --version 0.12.6 --locked. Then you can run cargo pgrx upgrade in your extension's crate to update its dependencies.

What's Changed

New Contributors

Full Changelog: v0.12.5...v0.12.6

v0.12.5

26 Sep 20:05
2801296
Compare
Choose a tag to compare

Welcome to pgrx v0.12.5. This is a big minor release because it brings support for Postgres v17.0, released on Sept 26th, 2024. Much thanks to the Postgres folks for all their hard work! We'd have to do this for MySQL otherwise!

To upgrade to pgrx v0.12.5, do cargo install cargo-pgrx --version 0.12.5 --locked. Once installed you can run cargo pgrx upgrade in the root of all your extension crates to update their dependencies.

New Features

pgrx now supports Postgres v17.0! You'll want to run another cargo pgrx init to get the latest release of all Postgres versions, including 17.

diffs between schema versions should be a lot prettier now as cargo pgrx schema should be repeatable from run-to-run and otherwise output in a predictable order.

Regular and cross-compiles should be more reliable now thanks to using cc to compile the tiny bit of C code pgrx includes.

Made with love to those who don't like allocations!

Bug Fixes

  • Fixed conversion of i64 and f64 to datums on 32-bit machines by @YohDeadfall in #1859

More Postgres Headers

Docs & Examples

Code Cleanup

New Contributors

Full Changelog: v0.12.4...v0.12.5

v0.12.4

11 Sep 16:14
b810e98
Compare
Choose a tag to compare

Welcome to pgrx v0.12.4.

First, and most importantly, it fixes a segfault when converting a NULL pg_sys::Datum into a Rust String. It seems you'd need to go out of your way to cause the segfault, but nonetheless, it shouldn't happen. A NULL Datum should convert to Option::None in all situations.

Secondly, @aykut-bozkurt has properly defined microseconds, which is critical for proper Time conversions.

From there, @usamoi enhanced our bindings generation such that we now auto-generate wrappers for any of Postgres' static inline functions in the included headers. This is great as it eliminates our need to manually write these wrappers and it automatically exposes a lot more.

And thanks to @YohDeadfall AnyArray is now iterable!

As always, please upgrade using cargo install cargo-pgrx --version 0.12.4 --locked. Then you can use cargo pgrx upgrade to update the dependencies in your extension crates.

What's Changed

Full Changelog: v0.12.3...v0.12.4

v0.12.3

09 Sep 13:17
46c9abe
Compare
Choose a tag to compare

Welcome to pgrx v0.12.3. This point release upgrades to use the new Postgres 17rc1.

As usual, please cargo install cargo-pgrx --version 0.12.3 --locked. Then you can run cargo pgrx upgrade in your extension crate's root to update its dependencies.

What's Changed

Full Changelog: v0.12.2...v0.12.3

v0.12.2

06 Sep 13:54
5a1151e
Compare
Choose a tag to compare

Welcome to pgrx v0.12.2. This is a minor release that fixes a few bugs, improves compilation times with cargo pgrx run/install/test, and adds a few more Postgres headers.

As usual, please cargo install cargo-pgrx --version 0.12.2 --locked. Then you can run cargo pgrx upgrade in your extension crate's root to update its dependencies.

What's Changed

New Contributors

Thanks to these folks for their first-time contributions -- it's greatly appreciated!

Full Changelog: v0.12.1...v0.12.2

v0.12.1

21 Aug 23:11
d40aa4d
Compare
Choose a tag to compare

You may be more interested in the release notes for 0.12.0.

What's Changed

Full Changelog: v0.12.0...v0.12.1