Releases: pgcentralfoundation/pgrx
v0.1.11
This is pgx
v0.1.10. It is a minor release that adds teaches cargo-pgx
's schema generator how to do some special token replacement.
To upgrade, please ensure to run:
$ cargo install cargo-pgx
And don't forget to update your own Cargo.toml
dependency versions.
The two tokens cargo-pgx
now knows how to replace are:
- `@DEFAULT_VERSION@`: this will come from the `default_version` property in the extension's `.control` file
- `@GIT_HASH@`: This is determined by running `git rev-parse head`
Please Sponsor Our Work
While a labor of love, pgx
development is not without cost. Please consider sponsoring our work to offset those costs. All sponsorship tiers are appreciated.
v0.1.10
-- revoked
v0.1.9
This is pgx
v0.1.9. It is a minor release that adds a function wrapper around Postgres heap_getattr
macro.
To upgrade, please ensure to run:
$ cargo install cargo-pgx
And don't forget to update your own Cargo.toml
dependency versions.
New Macros as Rust functions
pgx::heap_getattr_raw()
, which wraps theheap_getattr
macro
Please Sponsor Our Work
While a labor of love, pgx
development is not without cost. Please consider sponsoring our work to offset those costs. All sponsorship tiers are appreciated.
v0.1.8
This is pgx
v0.1.8. It is a minor release that adds a few more Postgres header bindings and ports a few Postgres macros.
To upgrade, please ensure to run:
$ cargo install cargo-pgx
And don't forget to update your own Cargo.toml
dependency versions.
New Postgres Headers
- added
pg_config.h
- added
access/heapam.h
- added
storage/bufmgr.h
New Macros as Rust functions
pg_sys::HeapTupleHeaderIsHeapOnly
pg_sys::HeapTupleHeaderIsHotUpdated
pg_sys::HeapTupleHeaderXminInvalid
pg_sys::BufferGetPage
pg_sys::BufferGetBlock
pg_sys::BufferIsLocal
Please Sponsor Our Work
While a labor of love, pgx
development is not without cost. Please consider sponsoring our work to offset those costs. All sponsorship tiers are appreciated.
v0.1.7
This is pgx
v0.1.7. It is a minor release that fixes a few edge-case bugs with cargo-pgx
and also adds a few more Postgres header bindings.
To upgrade, please run:
$ cargo install cargo-pgx
And don't forget to update your own Cargo.toml
dependency versions.
Bugs Fixed:
- Issue #67: Provide better error messages when an extension name doesn't contain valid characters
- Issue #68: Provide better error messages when the
./sql
directory can't be found
New Postgres Headers
- added
commands/comment.h
- added
rewrite/rewriteHandler.h
Please Sponsor Our Work
While a labor of love, pgx
development is not without cost. Please consider sponsoring our work to offset those costs. All sponsorship tiers are appreciated.
Also, feel free to join our Discord: https://discord.gg/QN2AmFV
v0.1.6
This is pgx
v0.1.6. It's a minor release that adds a few more Postgres header files to its bindings.
It also improves the SpiHeapTupleData
type so that it can be indexed by field name or field number.
As always, make sure to update cargo-pgx
via:
$ cargo install cargo-pgx
Please Sponsor Our Work
Developing pgx
is quite a lot of work. We appreciate your sponsorships to help keep us motivated and moving pgx
forward.
v0.1.5
This is pgx
v0.1.5. It is a minor release to fix some bugs and performance issues.
As always, in addition to updating your Cargo.toml versions, please make sure to run the following to upgrade to this version:
$ cargo install cargo-pgx
Changes
- bf990c1: The input/output functions for custom types are now marked
PARALLEL SAFE
- Issue #58:
pgx
no longer sets asearch_path
for all created functions. If your function needs a search_path, there's a new#[search_path(...)]
macro you can apply to that function. It's applicable to#[pg_extern]
,#[pg_operator]
and#[pg_test]
- 8549258: Fix a few memory leaks related to converting
jsonb
Datums - 8549258: Add a new variant to
PgMemoryContexts
along with a few other helper functions
Sponsor Our Work
Please consider sponsoring pgx
' development by clicking here. We greatly appreciate it!
v0.1.4
This is pgx
v0.1.4. It's a follow-up to v0.1.3 so that the docs build on docs.rs and that cargo pgx test
correctly works.
This is somewhat of a breaking release in that it requires you to update your Cargo.toml
files to define more features, and it also might necessitate some minor API changes within your code.
To upgrade, you need to run:
$ cargo install cargo-pgx
If you want Postgres 13 support, you'll then want to run:
$ cargo pgx init
New Features
- Now also supports
Postgres v13
cargo-pgx
and the build system have been updated to not require multiple versions of Postgres be downloaded/managed. If you only need support for one or more specific versions of Postgres, you can specify those versions tocargo pgx init
(see the cargo-pgx docs)- a new trait
pgx::pg_sys::AsPgCStr
has been added to make it easy to convert&str
andString
types topalloc'd
char *
s.
Breaking Changes
- For any extensions you might have that used earlier versions of
pgx
, you'll need to update the[features]
section in theirCargo.toml
file to include the following:
[features]
default = [ "pg12" ] # or whatever you'd prefer for your extension
pg10 = [ "pgx/pg10", "pgx-tests/pg10" ]
pg11 = [ "pgx/pg11", "pgx-tests/pg11" ]
pg12 = [ "pgx/pg12", "pgx-tests/pg12" ]
pg13 = [ "pgx/pg13", "pgx-tests/pg13" ]
pg_test = [ ]
Basically, the change here is that that pgx-tests
crate now requires a Postgres version feature flag. This is a result of a change to how Postgres 13 describes extension function compatibility via pgx
's pg_module_magic!()
macro.
- If you implement the
pgx::PgHooks
trait, theplanner_hook()
function's second argument is now:query_string: *mut std::os::raw::c_char
. In Postgres <13, this will be a null pointer. In Postgres 13+, this will be a "char *" to the query string being planned.
v0.1.3
This is pgx
v0.1.3. It's a follow-up to v0.1.2 so that the docs build on docs.rs.
This is somewhat of a breaking release in that it requires you to update your Cargo.toml
files to define more features, and it also might necessitate some minor API changes within your code.
To upgrade, you need to run:
$ cargo install cargo-pgx
If you want Postgres 13 support, you'll then want to run:
$ cargo pgx init
New Features
- Now also supports
Postgres v13
cargo-pgx
and the build system have been updated to not require multiple versions of Postgres be downloaded/managed. If you only need support for one or more specific versions of Postgres, you can specify those versions tocargo pgx init
(see the cargo-pgx docs)- a new trait
pgx::pg_sys::AsPgCStr
has been added to make it easy to convert&str
andString
types topalloc'd
char *
s.
Breaking Changes
- For any extensions you might have that used earlier versions of
pgx
, you'll need to update the[features]
section in theirCargo.toml
file to include the following:
[features]
default = [ "pg12" ] # or whatever you'd prefer for your extension
pg10 = [ "pgx/pg10", "pgx-tests/pg10" ]
pg11 = [ "pgx/pg11", "pgx-tests/pg11" ]
pg12 = [ "pgx/pg12", "pgx-tests/pg12" ]
pg13 = [ "pgx/pg13", "pgx-tests/pg13" ]
pg_test = [ ]
Basically, the change here is that that pgx-tests
crate now requires a Postgres version feature flag. This is a result of a change to how Postgres 13 describes extension function compatibility via pgx
's pg_module_magic!()
macro.
- If you implement the
pgx::PgHooks
trait, theplanner_hook()
function's second argument is now:query_string: *mut std::os::raw::c_char
. In Postgres <13, this will be a null pointer. In Postgres 13+, this will be a "char *" to the query string being planned.
v0.1.2
This is pgx
v0.1.2. This is somewhat of a breaking release in that it requires you to update your Cargo.toml
files to define more features, and it also might necessitate some minor API changes within your code.
To upgrade, you need to run:
$ cargo install cargo-pgx
If you want Postgres 13 support, you'll then want to run:
$ cargo pgx init
New Features
- Now also supports
Postgres v13
cargo-pgx
and the build system have been updated to not require multiple versions of Postgres be downloaded/managed. If you only need support for one or more specific versions of Postgres, you can specify those versions tocargo pgx init
(see the cargo-pgx docs)- a new trait
pgx::pg_sys::AsPgCStr
has been added to make it easy to convert&str
andString
types topalloc'd
char *
s.
Breaking Changes
- For any extensions you might have that used earlier versions of
pgx
, you'll need to update the[features]
section in theirCargo.toml
file to include the following:
[features]
default = [ "pg12" ] # or whatever you'd prefer for your extension
pg10 = [ "pgx/pg10", "pgx-tests/pg10" ]
pg11 = [ "pgx/pg11", "pgx-tests/pg11" ]
pg12 = [ "pgx/pg12", "pgx-tests/pg12" ]
pg13 = [ "pgx/pg13", "pgx-tests/pg13" ]
pg_test = [ ]
Basically, the change here is that that pgx-tests
crate now requires a Postgres version feature flag. This is a result of a change to how Postgres 13 describes extension function compatibility via pgx
's pg_module_magic!()
macro.
- If you implement the
pgx::PgHooks
trait, theplanner_hook()
function's second argument is now:query_string: *mut std::os::raw::c_char
. In Postgres <13, this will be a null pointer. In Postgres 13+, this will be a "char *" to the query string being planned.