Skip to content

teach #[pg_extern] about a SUPPORT function#2121

Merged
eeeebbbbrrrr merged 1 commit into
pgcentralfoundation:developfrom
eeeebbbbrrrr:pg_extern-support-fn
Aug 1, 2025
Merged

teach #[pg_extern] about a SUPPORT function#2121
eeeebbbbrrrr merged 1 commit into
pgcentralfoundation:developfrom
eeeebbbbrrrr:pg_extern-support-fn

Conversation

@eeeebbbbrrrr

Copy link
Copy Markdown
Contributor

This adds a new attribute to #[pg_extern] called support with a value that is a Rust path to another function to act as the SUPPORT support function.

This adds a new attribute to `#[pg_extern]` called `support` with a
value that is a Rust path to another function to act as the `SUPPORT`
support function.
@eeeebbbbrrrr eeeebbbbrrrr merged commit 8e5faa9 into pgcentralfoundation:develop Aug 1, 2025
16 checks passed
eeeebbbbrrrr added a commit that referenced this pull request Aug 1, 2025
Welcome to pgrx v0.16.0.

This release contains support for Postgres 18beta2 and has some breaking
changes in that support for pgrx' "hooks" implementation, which has been
deprecated for over a year, has finally been removed.

Additionally, due to unsoundness issues, direct support for using
`heapless` in shared memory has been removed. Users can still do this
themselves, which requires them to assert they're taking responsibility
of possible unsoundness issues.

As always, first install the latest `cargo-pgrx` with:

```shell
$ cargo install cargo-pgrx --version 0.16.0 --locked
```

Then you're free to run `cargo pgrx upgrade` in the root of all your
extension crates.

To pickup pg18beta2 support you'll also want to run `cargo pgrx init` so
that it can be downloaded and compiled.

# What's Changed

## Breaking Changes

* delete `pgrx::hooks` by @usamoi in
#2120
* improve shmem api by @usamoi in
#2107


## New Features

* update to Postgres v18beta2 by @usamoi in
#2111
* feat: `BackgroundWorker::connect_worker_to_spi_by_oid` by @if0ne in
#2116
* teach `#[pg_cast]` to support 3-argument CAST functions by
@eeeebbbbrrrr in #2119
* teach `#[pg_extern]` about a SUPPORT function by @eeeebbbbrrrr in
#2121

## Bug Fixes

* fix name_data_to_str by @usamoi in
#2108
* add pg_guard_ffi_boundary to direct_pg_extern_function_call_as_datum
by @usamoi in #2118

## `cargo-pgrx` Improvements

* add `--valgrind` to more cargo-pgrx subcommands by @usamoi in
#2109
* `cargo pgrx regress --resetdb` will run `setup.sql` by @ccleve in
#2113


## Code Cleanup

* filter out unrecognized attributes in PostgresGucEnum by @usamoi in
#2102
* Elide needless lifetime by @nyurik in
#2097

## Package/Build System Cleanup

* chore: include pgrx-version-updater into workspace by @nyurik in
#2101
* chore: consolidate package settings in workspace by @nyurik in
#2100
* chore: prepare for 2024 edition by @nyurik in
#2103

# Thanks!  

Thanks to all contributors -- y'alls work helps keep pgrx moving
forward.

**Full Changelog**:
v0.15.0...v0.16.0
daamien pushed a commit to daamien/pgrx that referenced this pull request Dec 15, 2025
This adds a new attribute to `#[pg_extern]` called `support` with a
value that is a Rust path to another function to act as the `SUPPORT`
support function.
daamien pushed a commit to daamien/pgrx that referenced this pull request Dec 15, 2025
Welcome to pgrx v0.16.0.

This release contains support for Postgres 18beta2 and has some breaking
changes in that support for pgrx' "hooks" implementation, which has been
deprecated for over a year, has finally been removed.

Additionally, due to unsoundness issues, direct support for using
`heapless` in shared memory has been removed. Users can still do this
themselves, which requires them to assert they're taking responsibility
of possible unsoundness issues.

As always, first install the latest `cargo-pgrx` with:

```shell
$ cargo install cargo-pgrx --version 0.16.0 --locked
```

Then you're free to run `cargo pgrx upgrade` in the root of all your
extension crates.

To pickup pg18beta2 support you'll also want to run `cargo pgrx init` so
that it can be downloaded and compiled.

# What's Changed

## Breaking Changes

* delete `pgrx::hooks` by @usamoi in
pgcentralfoundation#2120
* improve shmem api by @usamoi in
pgcentralfoundation#2107


## New Features

* update to Postgres v18beta2 by @usamoi in
pgcentralfoundation#2111
* feat: `BackgroundWorker::connect_worker_to_spi_by_oid` by @if0ne in
pgcentralfoundation#2116
* teach `#[pg_cast]` to support 3-argument CAST functions by
@eeeebbbbrrrr in pgcentralfoundation#2119
* teach `#[pg_extern]` about a SUPPORT function by @eeeebbbbrrrr in
pgcentralfoundation#2121

## Bug Fixes

* fix name_data_to_str by @usamoi in
pgcentralfoundation#2108
* add pg_guard_ffi_boundary to direct_pg_extern_function_call_as_datum
by @usamoi in pgcentralfoundation#2118

## `cargo-pgrx` Improvements

* add `--valgrind` to more cargo-pgrx subcommands by @usamoi in
pgcentralfoundation#2109
* `cargo pgrx regress --resetdb` will run `setup.sql` by @ccleve in
pgcentralfoundation#2113


## Code Cleanup

* filter out unrecognized attributes in PostgresGucEnum by @usamoi in
pgcentralfoundation#2102
* Elide needless lifetime by @nyurik in
pgcentralfoundation#2097

## Package/Build System Cleanup

* chore: include pgrx-version-updater into workspace by @nyurik in
pgcentralfoundation#2101
* chore: consolidate package settings in workspace by @nyurik in
pgcentralfoundation#2100
* chore: prepare for 2024 edition by @nyurik in
pgcentralfoundation#2103

# Thanks!  

Thanks to all contributors -- y'alls work helps keep pgrx moving
forward.

**Full Changelog**:
pgcentralfoundation/pgrx@v0.15.0...v0.16.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant