Welcome to pgx v0.6.1. This is a minor release that fixes a few safety/crashing bugs along with fixing up the --profile
argument to cargo pgx
.
What's Changed
cleanup cargo-pgx handling of the --profile
argument by @eeeebbbbrrrr in #908
v0.6.0 introduced the --profile
argument. While it works for any of the targets such as run, test, install, it was primary intended for cargo pgx package
so that a specific, "more optimized" release profile could be used. It of course, didn't work and caused cargo to raise an error about conflicting arguments. It now works as expected.
Ensuring owned memory context is not current when dropping it (extension) by @yrashk in #922
@yrashk found a bug that would crash Postgres when Rust drops a PgMemoryContexts::Owned
that was also set as the pg_sys::CurrentMemoryContext
.
Note that this introduces a minor API breakage as the function
PgMemoryContexts::set_as_current()
now takes&mut self
instead of&self
.
Handle panics in PgMemoryContexts::switch_to
by @yrashk in #920
@yrashk found another bug that would crash Postgres if a panic occurred while inside a PgMemoryContexts::switch_to(|| ... )
closure.
#[pg_guard]
can now be applied to generic functions by @yrashk in #918
Additionally, pgx will emit a compiler error if you try to attach both #[pg_guard]
and #[no_mangle]
to the same extern "C"
function which is generic over anything but a lifetime.
Once again, thanks @yrashk!
Full Changelog: v0.6.0...v0.6.1