Welcome to pgrx v0.15.0. This begins a new series for pgrx that includes support for Postgres 18. As of this release, that means Postgres 18beta1.
This release does contain a few breaking API changes but they're largely mechanical. Don't worry, the compiler will let you know!
As always, please install our CI tool with cargo install cargo-pgrx --version 0.15.0 --locked
and then run cargo pgrx upgrade
in all of your extension crates.
If you want to start working with Postgres 18beta1, you'll also need to re-init your pgrx environment with cargo pgrx init
. That will automatically detect all the latest Postgres versions, including 18beta1.
At the top here, I'd like to thank @silver-ymz for the 18beta1 support. It was a pleasant surprise to see that work come from the community -- it's no easy task to add a new Postgres version to pgrx!
That said, as Postgres 18 is currently beta, you should consider pgrx' support for it as beta too. Please report any problems with 18beta1 (or discrepancies with other versions) as GitHub issues.
Also, this release requires rust v1.88.0 or greater. if-let
chains are now a thing and we're not afraid to use them.
What's Changed
Postgres 18beta1 Support
- Support Postgres 18beta1 by @silver-ymz in #2056
- pg18 support: add header and implement
#define
by @eeeebbbbrrrr in #2094 - improve pg_magic_func by @usamoi in #2088
More Headers
- Added
catalog/heap.h
binding by @ccleve in #2072 - include
utils/pg_status.h
by @eeeebbbbrrrr in #2091
cargo-pgrx
improvements
- Pass
LLVM_*
variables to--runas
command by @theory in #2083 does_db_exist()
: fixpsql
argument order by @eeeebbbbrrrr in #2093cargo pgrx regress
output is no longer fully buffered by @eeeebbbbrrrr in #2095- Detect
pgrx_embed
name from lib name by @YohDeadfall in #2035 - Fixed error message if no artifact found by @YohDeadfall in #2034
cargo-pgrx
: use system certificate store for HTTPS validation by @charmitro in #2074- Decoding command output in Windows by @if0ne in #2084
Breaking Changes
New Stuff
- Added
pg_binary_protocol
attribute to derive send and receive functions forPostgresType
by @LucaCappelletti94 in #2068 - Expose guc hooks by @thesuhas in #2075
- Allows to create multiple aggregates for the same Rust type by @if0ne in #2078
General Code Cleanup
cargo clippy --fix
by @eeeebbbbrrrr in #2092- Use
if-let
to unpack Options by @stuhood in #2089 - docs: fix typo in
rust_byte_slice_to_bytea()
docs by @burmecia in #2071 - Added a missing
#[doc(hidden)]
by @LucaCappelletti94 in #2079
Administrative
- Updated Fedora to latest in CI by @YohDeadfall in #2085
- fix ci on beta rust (1.89) by @usamoi in #2087
New Contributors
Much thanks to our new contributors! Your work is sincerely appreciated!
- @charmitro made their first contribution in #2074
- @thesuhas made their first contribution in #2075
- @if0ne made their first contribution in #2084
- @stuhood made their first contribution in #2089
Full Changelog: v0.14.3...v0.15.0