Skip to content

Conversation

@jfroche
Copy link
Collaborator

@jfroche jfroche commented Aug 14, 2025

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.

Make sure we build cargo extension and cargo-pgrx with the specified Rust version.

Copy link
Contributor

@jchancojr jchancojr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

Copy link
Collaborator

@samrose samrose left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need to finish rebase and testing

@samrose samrose force-pushed the multi-version-ext/pg_graphql branch from 1e4a0a9 to 5845593 Compare October 3, 2025 17:50
samrose and others added 8 commits October 3, 2025 15:18
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.
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.
pg_graphql 1.5.4 uses pgrx 0.11.3 which fixed the ABI issues on aarch64-linux.
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.
@samrose samrose self-requested a review October 6, 2025 16:50
Copy link
Collaborator

@samrose samrose left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

passing all tests

@samrose samrose merged commit d584651 into develop Oct 6, 2025
14 checks passed
@samrose samrose deleted the multi-version-ext/pg_graphql branch October 6, 2025 18:58
hunleyd added a commit that referenced this pull request Oct 7, 2025
…leanups

* 'develop' of github.com:supabase/postgres:
  feat: support multiple versions of the pgrouting extension (#1687)
  refactor(ansible): bring our ansible up to modern ansible-lint standards (#1819)
  feat: support multiple versions of the pg-graphql extension (#1761)
hunleyd added a commit that referenced this pull request Oct 14, 2025
* origin/develop:
  fix(nix): remove '%' character from Nix trusted-public-keys configuration (#1840)
  chore: systemd hardening (#1837)
  Revert "refactor(postgresq): switch to 'include_dir' and then rename conf files to ensure ordering" (#1835)
  refactor(ansible): bring our ansible up to modern ansible-lint standards (#1821)
  fix(pgmq): replace drop_queue function if exists (#1828)
  refactor(postgresq): switch to 'include_dir' and then renames conf files to ensure ordering (#1820)
  feat: support multiple versions of the pg_jsonschema extension (#1757)
  feat: bump auth to v2.180.0 (#1829)
  feat: update supautils confs w/ new tables
  feat(migrations): predefined role grants (#1815)
  feat: run pg_regress tests after installing the last version of the extension (#1826)
  fix(pgmq): add missing helper function in migration script (#1825)
  feat: support multiple versions of the pgmq extension (#1668)
  feat: run pg_regress during extension tests (#1812)
  feat: support multiple versions of the pgrouting extension (#1687)
  refactor(ansible): bring our ansible up to modern ansible-lint standards (#1819)
  feat: support multiple versions of the pg-graphql extension (#1761)
encima pushed a commit that referenced this pull request Oct 28, 2025
* 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]>
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.

5 participants