Releases: pgcentralfoundation/pgrx
v0.2.0-beta.4
This is pgx v0.2.0-beta.4. It resolves issue #270.
v0.2.0-beta.3
This is pgx v0.2.0-beta.3. It fixes a few issues reported during beta2.
Fixed Issues
v0.2.0-beta.2
This is pgx v0.2.0-beta.2. As the second beta in the 0.2.0 series, it adds a few small features and a handful of bugfixes.
If upgrading from the 0.1.x series, please see the release notes for beta1 (https://github.com/zombodb/pgx/releases/tag/v0.2.0-beta.1).
New Features
- PostgreSQL v14 support (#245)
Bug Fixes
-
Resolve undefined behavior around exported function symbols (#241)
- As a result there is now
pgx::direct_function_call()andpgx::direct_pg_extern_function_call()for dynamically calling internal Postgres functions and functions you declare as#[pg_extern].
- As a result there is now
-
Fix up Darwin linking issues (#244)
-
Resolve issues with sql entity graph generation (#236, #260)
Thanks!
Thanks to everyone that contributed testing and issue reports during this beta. Most especially @rustprooflabs!
v0.1.25
This is a follow-up to v0.1.24 that resolves safely issues around trapping Rust panics and Postgres ERRORs across FFI boundaries.
This will be the last release in the 0.1.x series (and this time we mean it!), and the previous v0.1.23/v0.1.24 releases will be yanked from crates.io.
v0.1.24
This is pgx v0.1.24. It is a follow-up to the v0.1.23 release which inadvertently broke shared memory support. This release fixes that.
Also note that this will be the last release in the 0.1.x series, as we are finalizing a v0.2.0 release which brings some breaking changes along with PostgreSQL 14 support.
v0.1.23
v0.2.0-beta.1
Features
- The
pgxSQL generation system has been rewritten! It now uses the proc macro system and has several breaking changes. Please refer to the migration guide below. (#165, #197) - The PostgreSQL
uuidtype is now supported! (#172) cargo pgx testnow accepts an optional testname.cargo pgx test specific::pathworks just likecargo test! (#186)pgx-pg-sysnow suggests you installrustfmtif you don't have it. (#193)cargo pgx schemawill now emit informational messages if extensionCargo.tomlsettings are not what is expected. (#209)cargo pgx testnow has a--workspaceargument matching the equivalent oncargo test. (#169)
Other changes
- fix: Marked several functions as unsafe as they had undefined behavior when passed invalid pointers. (#210, #216, #217, #223, #224, #226)
- Type
oids don't need to be looked up in functions that don't use them. (#168) - Added an aggregate example. (#187)
- Updated many of our dependencies. (#191)
- More documentation has been added to several macros and SQL generation related types. (#192, #158, #219)
- An
articles/directory now exists in the repo and includes links to different articles written aboutpgx. (#198) - Document our MSRV (#157)
- Fixed an accidental circular dependency in 0.2.0-beta.0 (unpublished).
Migration Guide
-
Update your
cargo-pgx:cargo install --force cargo-pgx --version 0.2.0-beta.0 -
In your
Cargo.toml, setcrate-typeto include"rlib"andprofile.dev.ltoto be"thin":[lib] crate-type = ["cdylib", "rlib"] [profile.dev] lto = "thin"
-
Tell
cargo-pgxto force update your.cargo/andsrc/binfiles it needs:cargo pgx schema -f -
Remove any
sql/*.generated.sqlfiles, as well as theload-order.txt. -
For each
sql/*.sqlremaining, insertextension_sql_file!("../sql/that_file.sql");into yoursrc/lib.rs -
If the files depend on entities which already exist, you might need to set a
requiresattribute:extension_sql_file!("../sql/that_file.sql", requires = [ dogs::parts::Floof, some_fn, ]);
-
For any
mod floof { fn boop() { todo!() } }style blocks you were using to infer schema name (making that functionfloof.boop), decorate the schema with#[pg_schema]:#[pg_schema] mod floof { fn boop() { todo!() } }
-
For any functions have a custom
sqlblock for (like below), update that to usepgxsqlnow:/// ```sql <-- Change this to `pgxsql` /// CREATE OR REPLACE FUNCTION .... /// ``` #[pg_extern] fn dot_dot_dot() { todo!() }
-
Run
cargo pgx schemaagain!
If you have any trouble, try running cargo pgx schema -v and investigating the output. We made sure to update the cargo doc output of pgx with updated usage for the various macros and derives, they might have some advice, too.
You can ask us questions via issues here or Discord if you get stuck.
Thanks!
Thanks to @JLockerman (from @timescale) & @kpumuk for contributions! Also thanks to our early testers @rustprooflabs and @comdiv.
v0.1.22
v0.1.21
pgx v0.1.21 is a minor feature release with the following features:
Changes
- aarch64 support was added (#127)
- add Nix flake (#124)
cargo-pgx pgx initdoesinitdb(#123)- Improve handling of feature flags (#118)
- Allow overriding function names and returning schema-qualified type (#117)
- update dependencies (#122).
- (docs) Add caveat about reconnecting after updating extension (#116)
Other Changes
- (
cargo-pgx) on init, lazy fetch version list (#119)
To upgrade, please run:
$ cargo install cargo-pgx --version 0.1.21
Also, make sure to update your Cargo.toml dependencies.
Thanks!
Thanks to @JLockerman from @timescale for the PRs. And of course special thanks to @Hoverbear for her work on this release!
v0.1.20
This is pgx v0.1.20. It is a minor feature release adding Rust bindings for the Postgres headers related to gin and gist indexes.
To upgrade, please run:
$ cargo install cargo-pgx
Also make sure to update your Cargo.toml dependencies.
Sponsor Our Work
Please consider sponsoring us so we can continue building cool things like pgx! Thank you for your consideration!