Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Rust crate pgrx-tests to ~0.11.0 #3

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

renovate[bot]
Copy link

@renovate renovate bot commented Jun 2, 2023

Mend Renovate

This PR contains the following updates:

Package Type Update Change
pgrx-tests dev-dependencies minor ~0.9.1 -> ~0.11.0

Release Notes

pgcentralfoundation/pgrx (pgrx-tests)

v0.11.4

Compare Source

Welcome to pgrx v0.11.4!

This is a minor release to add some additional functionality to cargo-pgrx to enable running tests in atypical CI configurations and the ability to turn off its colored output via the NO_COLOR environment variable. This minor release also includes a small change that should measurably improve compilation times for all extensions.

To update to this this, please run cargo install cargo-pgrx --version 0.11.4 --locked and ensure to update your extension's Cargo.toml file to use pgrx v0.11.4.

What Changed

cargo-pgrx changes

PR #​1652 was cherry-picked into this release to include the new --runas and --pgdata arguments to cargo pgrx test. --runas uses the system sudo command to run the temporary Postgres cluster process as the specified user, and uses --pgdata as the location where the cluster's PGDATA directory should be initialized.

cargo-pgrx now understands the NO_COLOR and FORCE_COLOR environment variables supported by the upstream dependency it uses for generated colored output. See https://crates.io/crates/owo-colors for details. This is from PR #​1664

Compilation Times

pgrx generates a (very large) set of Rust bindings that represent the "rust version" of all the internal Postgres symbols (functions, globals, etc). In the case of functions, pgrx also generates wrapper functions so it can instrument calls with the proper guard rails. It turns out, simply annotating these wrapper functions with #[inline] drastically improves compilation time as it allows the rust compiler to defer their compilation until the very end. Which ultimately means only the functions used by an extension get compiled -- the others are DCE'd. This came from PR #​1616.

Thanks!

Thanks to @​usamoi for improving our compilation times, and shout out to @​theory for his first contribution!

Full Changelog: pgcentralfoundation/pgrx@v0.11.3...v0.11.4

v0.11.3

Compare Source

The pgrx 0.11.3 release addresses several UB risks of pgrx, updates its dependencies to address possible security risks on a few points, and includes considerable numbers of additional headers in the release. It should also now be easier to actually use cargo-pgrx on a mildly more interesting network configuration, though you may need to specify --no-default-features with either --features native-tls or --features rustls when you cargo install cargo-pgrx.

New Bindings!

New bindings added thanks to

"...wait, that's UB?"

Two UB fixes!

Ergonomics

Less transport-level security problems in cargo-pgrx

Together these should mean it's possible to actually use cargo-pgrx on whatever your network configuration is, but you might have to use cargo install --no-default-features --features native-tls to install with native-tls (which, on Linux, means OpenSSL). By default, you will use rustls.

Many tiny dependency updates

These address some largely-hypothetical security risks, but one is particularly important: the bindgen update means we now should be compatible with some aarch64 builds that might have failed.

Full Changelog: pgcentralfoundation/pgrx@v0.11.2...v0.11.3

v0.11.2

Compare Source

pgrx v0.11.2 is a minor release which

As usual, cargo install cargo-pgrx --version 0.11.2 --locked and be on your merry way!

Thanks everyone!

Full Changelog: pgcentralfoundation/pgrx@v0.11.1...v0.11.2

v0.11.1

Compare Source

Hello. Welcome to pgrx v0.11.1, a bugfix release that hopefully addresses a very annoying persistent problem for users, especially ones that were trying to use pgrx with Postgres 16! My (@​workingjubilee)'s changes in b992f55 now steer bindgen towards including the exact compiler-header directory that we require, instead of relying on clang-sys to guess the right directory in ways that can go horribly wrong. Unfortunately, this may make our build step more brittle in certain cases. Please report issues as they arise, so that we can continue to refine our build system, and eventually fix this in bindgen proper!

This new behavior can still be disabled by setting PGRX_BINDGEN_NO_DETECT_INCLUDES, as it is still a form of autodetecting includes, but if this release fixes your build that was previously relying on that or any other easily-removed hack, please let us know!

Also, thanks to @​LuminousMonkey, you can now use pgrx on illumos, an operating system descended from Solaris, with no changes to your source code!

Full Changelog: pgcentralfoundation/pgrx@v0.11.0...v0.11.1

v0.11.0

Compare Source

Welcome to pgrx v0.11.0. It's a new "major" release with some new features, a faster "build.rs", and some bugfixes.

As always, please update by running cargo install cargo-pgrx --version 0.11.0 --locked and update your extension crate Cargo.toml files accordingly.

What's Changed

Faster Buildings

@​workingjubilee did some work to improve build times. As measured on their computer against cargo check, it's roughly a quarter faster. In doing so, the generated "bindings.rs" files look a little different and our "build.rs" has been cleaned up a bit.

Pure Rust implementation for PgList

@​workingjubilee did a tremendous amount of work creating a proper wrapper around Postgres' internal List type, called PgList.

Some background here is that we intend to add the "dynamic function call" work (see below) to PL/Rust. In doing that work, use of Postgres' List type is pretty important and pgrx' existing implementation was a) mostly in the cshim, and b) just not very-good-and-sound. Considering (b) and also that PL/Rust isn't able to use anything from pgrx' chsim (a), @​workingjubilee set out to make a proper Rust wrapper/implementation of Postgres' List type.

Note: As part of this, NodeTag is now a proper enum, which requires a small migration which is mostly satisfied by a regex-based find-replace of NodeTag_T_[A-Za-z]* with NodeTag::T_$1.

More Bindings

We've added more Postgres internals headers to the pgrx-pg-sys crate:

Dynamic Function Calling

pgrx now allows calling any SQL-defined function (ie, via CREATE FUNCTION) in a (mostly) Rusty way with the new dynamic function calling support. Some documentation around this feature can be found in the sources, here and in the unit tests.

As mentioned above, this feature will be exposed in PL/Rust soon. However, it's still an extremely powerful feature for pure pgrx extensions as it allows calling another function directly, with runtime type safety checks, without incurring any Spi overhead.

cargo pgrx install --sudo

Sometimes cargo-pgrx install can be tough to work with if targeting a package manager-managed Postgres installation as the various extension directories are owned by root. cargo pgrx install --sudo fixes that by copying the files as root. The build, which is typically done as a regular user, is still run by that user -- only the file copying is run with sudo.

Miscellaneous Work

Thanks!

Thanks to all the contributors! We appreciate the PRs and testing. And we especially like hearing about what you're building with pgrx.

Full Changelog: pgcentralfoundation/pgrx@v0.10.2...v0.11.0

v0.10.2

Compare Source

Welcome to pgrx v0.10.2!

In pgrx v0.10.0, as part of a refactoring step in order to make refactoring easier in the future, without things like losing track of random functions, we... omitted a few functions! These depended on the cshim, but were not direct bindings, themselves. Oops. They're back now in pgrx::pg_sys.

cargo pgrx works now for Postgres 16 on macOS

Installing extensions on macOS for Postgres 16 had problems due to recent changes to Postgres defaults. We have fixed this and expanded our test coverage for macOS to reduce the odds of this happening in the future, thanks to @​bayandin in https://github.com/pgcentralfoundation/pgrx/pull/1300

composites compose better

There were some problems with composite types and arrays, and specifically arrays of composite types in composite types. These are the sorts of things that cause edge cases in PgHeapTuple. They should now be appropriately supported, however, thanks to @​eeeebbbbrrrr in https://github.com/pgcentralfoundation/pgrx/pull/1303

#[pg_schema] will enable your bad ideas

The following should now work appropriately:

#[pgrx::pg_schema]
mod pg_catalog {

It does what you think it does. Since this can affect a global namespace in a way that makes it much easier to conflict with other extensions, it is best to avoid this. However, it is the sort of bad idea that extensions which "take over" the Postgres host to extensively redefine the host's capabilities, like ZomboDB does, may have to resort to in order to accomplish their goal. Thanks to @​eeeebbbbrrrr in https://github.com/pgcentralfoundation/pgrx/pull/1302

Keep the bug reports coming

And thank you for reporting your issues!

v0.10.1

Compare Source

This is pgrx v0.10.1. It includes support for Postgres v16 and since pg16 is now released, cargo pgrx init will now be able to download the latest version.

As always, please install the latest cargo-pgrx with cargo install cargo-pgrx --version 0.10.1 --locked and update your Cargo.toml dependencies.

What's Changed

#​1295: Support the official Postgres v16 release
#​1294: Add WAL recovery header bindings for pg15 and pg16

Full Changelog: pgcentralfoundation/pgrx@v0.10.0...v0.10.1

v0.10.0

Compare Source

This is the final release of v0.10.0. Thanks everyone for the beta testing, pull requests, issues, and patience.

As always, install cargo-pgrx with cargo install cargo-pgrx --locked and update your extension Cargo.toml files to use the 0.10.0 pgrx dependencies.

This release includes support for Postgres 16RC1. Support for the previous betas has been removed. As such, a fresh cargo pgrx init is required.

What's Changed Since v0.10.0-beta.4

New Contributors

Changelog: pgcentralfoundation/pgrx@v0.10.0-beta.4...v0.10.0


v0.10.0's full set of changes throughout the entire beta period are:

New Contributors

Full Changelog: pgcentralfoundation/pgrx@v0.9.8...v0.10.0


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

@renovate renovate bot force-pushed the renovate/pgrx-tests-0.x branch 3 times, most recently from db06da0 to 387c4f3 Compare June 2, 2023 16:48
@nhudson
Copy link
Contributor

nhudson commented Jun 2, 2023

This can't be merged until https://github.com/coredb-io/trunk supports prgx version v0.9.x

@renovate renovate bot force-pushed the renovate/pgrx-tests-0.x branch from 387c4f3 to f098f18 Compare June 2, 2023 17:17
@renovate renovate bot requested a review from nhudson as a code owner June 2, 2023 17:17
@renovate renovate bot changed the title Update Rust crate pgrx-tests to ~0.9.1 Update Rust crate pgrx-tests to ~0.9.1 - autoclosed Jun 2, 2023
@renovate renovate bot closed this Jun 2, 2023
@renovate renovate bot deleted the renovate/pgrx-tests-0.x branch June 2, 2023 19:07
@renovate renovate bot changed the title Update Rust crate pgrx-tests to ~0.9.1 - autoclosed Update Rust crate pgrx-tests to ~0.9.1 Jun 7, 2023
@renovate renovate bot reopened this Jun 7, 2023
@renovate renovate bot restored the renovate/pgrx-tests-0.x branch June 7, 2023 05:55
@renovate renovate bot changed the title Update Rust crate pgrx-tests to ~0.9.1 Update Rust crate pgrx-tests to ~0.9.2 Jun 7, 2023
@renovate renovate bot force-pushed the renovate/pgrx-tests-0.x branch from f098f18 to 4a9a9bc Compare June 7, 2023 05:55
@renovate renovate bot changed the title Update Rust crate pgrx-tests to ~0.9.2 Update Rust crate pgrx-tests to ~0.9.5 Jun 10, 2023
@renovate renovate bot force-pushed the renovate/pgrx-tests-0.x branch from 4a9a9bc to afac0ca Compare June 10, 2023 08:58
@renovate renovate bot changed the title Update Rust crate pgrx-tests to ~0.9.5 Update Rust crate pgrx-tests to ~0.9.7 Jul 1, 2023
@renovate renovate bot force-pushed the renovate/pgrx-tests-0.x branch from afac0ca to bd793d8 Compare July 1, 2023 11:55
@renovate renovate bot changed the title Update Rust crate pgrx-tests to ~0.9.7 Update Rust crate pgrx-tests to ~0.9.8 Jul 14, 2023
@renovate renovate bot force-pushed the renovate/pgrx-tests-0.x branch from bd793d8 to 6726570 Compare July 14, 2023 08:37
@renovate renovate bot changed the title Update Rust crate pgrx-tests to ~0.9.8 Update Rust crate pgrx-tests to ~0.10.0 Sep 6, 2023
@renovate renovate bot changed the title Update Rust crate pgrx-tests to ~0.10.0 Update Rust crate pgrx-tests to ~0.10.1 Sep 15, 2023
@renovate renovate bot changed the title Update Rust crate pgrx-tests to ~0.10.1 Update Rust crate pgrx-tests to ~0.10.2 Sep 20, 2023
@renovate renovate bot changed the title Update Rust crate pgrx-tests to ~0.10.2 Update Rust crate pgrx-tests to ~0.11.0 Oct 12, 2023
@renovate renovate bot changed the title Update Rust crate pgrx-tests to ~0.11.0 Update Rust crate pgrx-tests to ~0.11.1 Nov 28, 2023
@renovate renovate bot changed the title Update Rust crate pgrx-tests to ~0.11.1 Update Rust crate pgrx-tests to ~0.11.2 Dec 6, 2023
@renovate renovate bot changed the title Update Rust crate pgrx-tests to ~0.11.2 Update Rust crate pgrx-tests to ~0.11.3 Jan 30, 2024
@renovate renovate bot force-pushed the renovate/pgrx-tests-0.x branch from acc3f80 to 676bdba Compare April 20, 2024 14:45
@renovate renovate bot changed the title Update Rust crate pgrx-tests to ~0.11.3 Update Rust crate pgrx-tests to ~0.11.4 Apr 20, 2024
@renovate renovate bot changed the title Update Rust crate pgrx-tests to ~0.11.4 Update Rust crate pgrx-tests to ~0.11.0 May 6, 2024
@renovate renovate bot force-pushed the renovate/pgrx-tests-0.x branch from 676bdba to a68fdc9 Compare May 6, 2024 05:58
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.

None yet

1 participant