feat: support multiple versions of the pg-graphql extension (#1761)
* feat(pg_graphql): build multiple versions of the pg_graphql extension
Build multiple versions of the pg_graphql extension on different PostgreSQL versions.
Add test for the extensions and their upgrade on PostgreSQL 15 and 17.
* feat(cargo-pgrx): build extensions with specified Rust version
This change allows developers to target specific Rust versions for
building extensions. It implements support for building cargo extensions
and `cargo-pgrx` using the specified Rust version.
* Build pg_graphql 1.4.2 using pgrx 0.10.2
* Build pg_graphql 1.4.1 using pgrx 0.10.2
* Build pg_graphql 1.2.3 using pgrx 0.9.7
* Build pg_graphql 1.2.2 using pgrx 0.9.5
* Build pg_graphql 1.2.0 using pgx 0.7.1
* Build pg_graphql 1.1.0 using pgx 0.6.1
* Refactoring and build pg_graphql 1.0.2 using pgx 0.6.1
* chore: add release suffix for testing
* fix: conditional for using this linking only with macos
* fix: bindgen
* fix: apply bindgen fix for aarch64 to versions up to 1.5.1
The issue we face when building pg_graphql on aarch64 is:
`Invalid or unknown abi 16 for function "_ZGVnN4vv_atan2f"`
It has been fixed in bindgen 0.11.3.
* chore: use default nixos test to test pg_graphql extension
* fix(pg_graphql): migration script from 1.5.1-mergeless to 1.5.4
Add special case handling for 1.5.1-mergeless to 1.5.4 upgrade path.
Also replace CREATE FUNCTION with CREATE OR REPLACE FUNCTION to prevent conflicts
in migration scripts and the same for event triggers.
* fix: do not apply bindgen fix for version 1.5.4
pg_graphql 1.5.4 uses pgrx 0.11.3 which fixed the ABI issues on aarch64-linux.
* feat: run pg_regress tests during build
We don't recompile the extension using pgx with dev/debug symbols, but
we do run the pg_regress tests to ensure everything is working
correctly.
* chore: bump to release
---------
Co-authored-by: Sam Rose <[email protected]>