Skip to content

Restore ERROR detail preservation through error handling - #2361

Merged
eeeebbbbrrrr merged 2 commits into
developfrom
pg-rethrow-error-fix
Jul 30, 2026
Merged

eeeebbbbrrrr merged 2 commits into
developfrom
pg-rethrow-error-fix

Conversation

@eeeebbbbrrrr

@eeeebbbbrrrr eeeebbbbrrrr commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

#2262 was intended to smuggle Rust backtraces into Postgres' ERROR detail line, but the implementation had the unintended side effect of wiping out user/postgres-provided ERROR detail lines, including those generated from pl/pgsql statements.

PR brings our use of pg_re_throw() back, preserving the actual Postgres ERROR as given, doesn't sneak a backtrace into caught Postgres ERRORs, adds a test around this (now known to be expected) behavior, and tidies up a few comments.

@eeeebbbbrrrr

Copy link
Copy Markdown
Contributor Author

no good deed goes unpunished

@eeeebbbbrrrr eeeebbbbrrrr changed the title Effectively revert #2262 Restore ERROR detail tracking through error handling Jul 30, 2026
@eeeebbbbrrrr eeeebbbbrrrr changed the title Restore ERROR detail tracking through error handling Restore ERROR detail preservation through error handling Jul 30, 2026
@eeeebbbbrrrr
eeeebbbbrrrr force-pushed the pg-rethrow-error-fix branch from 1e6d3bc to cb6f9da Compare July 30, 2026 13:39
@eeeebbbbrrrr eeeebbbbrrrr added the mergable This PR can be merged label Jul 30, 2026
@eeeebbbbrrrr
eeeebbbbrrrr merged commit c91d43a into develop Jul 30, 2026
15 of 16 checks passed
eeeebbbbrrrr added a commit that referenced this pull request Jul 30, 2026
Welcome to pgrx v0.19.2. This brings Postgres 19beta2 support, an
important fix for retaining ERROR detail messages when a pgrx extension
catches and rethrows a Postgres-originated ERROR, more header bindings,
and bugfixes.

As always run `cargo install cargo-pgrx --version 0.19.2 --locked` and
run `cargo pgrx upgrade` to fixup your extension crates.

# New Features

* support pg19beta2 by @eeeebbbbrrrr in
#2362
* make Array<&str> serializable via per-type Serialize impls by
@isdaniel in #2322
* Support multiple `cargo pgrx test` filters by @eeeebbbbrrrr in
#2345
* implement DatumPass, Element and Scalar for Uuid by @ibotty in
#2358
* Safe casting of PgNode values with bindgen tag discovery by @cbandy in
#2347

# Bug Fixes and Cleanup

* Restore ERROR detail preservation through error handling by
@eeeebbbbrrrr in #2361
* Refactor dedup BoxRet + SqlTranslatable boilerplate via existing
macros by @isdaniel in
#2349
* Add missing unsafe on GUC hook registration by @cbandy in
#2348
* fix(pgrx-tests): respect configured PostgreSQL GUCs by @0xPoe in
#2337
* fix: make_test_name() now handles filenames with multiple dots by
@CyberCabano in #2352
* Fix incorrect mutability in GUC assign hook macro by @cbandy in
#2356

# New Headers

* Add missing `pg_statistic_ext` includes for pg18 and pg19. by
@isdaniel in #2338
* add `catalog/pg_auth_members.h `by @eeeebbbbrrrr in
#2340
* Add `utils/datum.h` bindings + generic_agg example by @isdaniel in
#2341
* Add `commands/async.h` (LISTEN/NOTIFY) bindings by @isdaniel in
#2344
* Add additional executor node headers by @eeeebbbbrrrr in
#2353

# Administrative

* Serialize env-mutating framework tests to fix flaky Windows CI by
@eeeebbbbrrrr in #2342
* Fix `semicolon_in_expressions_from_macros` errors on nightly by
@ChronicallyJD in #2360
* Fix docs.rs rustdoc emit flag by @eeeebbbbrrrr in
#2363

## New Contributors

* @0xPoe made their first contribution in
#2337
* @CyberCabano made their first contribution in
#2352
* @ibotty made their first contribution in
#2358

**Full Changelog**:
v0.19.1...v0.19.2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

mergable This PR can be merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant