Skip to content

Conversation

@h0lybyte
Copy link
Member

Summary

  • Cherry-picks 12 upstream commits for multi-version extension support (wave 2)
  • Extensions converted to multi-version: pgmq, pg_jsonschema, wrappers, plpgsql_check, pg_repack, pgroonga, pg_hashids, plv8, vault, pgaudit
  • Includes pgmq bugfixes (missing helper function, drop_queue replacement)

Upstream commits

Fork customizations preserved

  • kilobase.nix and pg_failover_slots.nix in extension lists
  • buildPgrxExtension_0_15_0 in overlays
  • pgrx 0.15.0 entry in cargo-pgrx/versions.json (alongside new upstream 0.16.0)
  • Standard GitHub Actions runners (no Blacksmith)

Batch 5 of 14 — upstream catch-up series

🤖 Generated with Claude Code

jfroche and others added 12 commits February 11, 2026 16:12
* feat: support multiple versions of the pgmq extension

Build multiple versions of the pgmq extension on different PostgreSQL versions.
Add test for the extensions and their upgrade on PostgreSQL 15 and 17.

* chore: bump suffix to test

* chore: bump version to release

---------

Co-authored-by: Sam Rose <[email protected]>
…1825)

pg_regress tests are failing because the helper function
pgmq._extension_exists() is missing in the 1.5.0 to 1.5.1 migration script.
This change adds the missing function to the migration script.
…ase#1757)

* feat: multiple versions for the pg_jsonschema extension

Build multiple versions of the pg_jsonschema extension to on different PostgreSQL versions.
Add test for the extensions and their upgrade on PostgreSQL 15 and 17.

* fix: centralize bindgen hook override for pgrx extensions

Move the bindgen hook fix for ARM NEON vector ABI issues from
pg_graphql to mkPgrxExtension, making it available to all pgrx-based
extensions. This fix applies to pgrx versions 0.6.1 through 0.11.2
when building on aarch64-linux.

* fix: missing dependency on macOS for pg_jsonschema

* chore: bump to release

---------

Co-authored-by: Sam Rose <[email protected]>
* fix(pgmq): replace drop_queue function if exists

We introduced a patch to override pgmq.drop_queue(TEXT) to conditionally
drop objects only if they are part of the extension in `ansible/ansible/files/postgresql_extension_custom_scripts/pgmq/after-create.sql`
. This script might have been installed on installations with existing 1.4.4 extensions.

When the user tries to upgrade pgmq from 1.4.4 to 1.5.1, the upgrade
process will fail because the upgrade script doesn't expect
`pgmq.drop_queue(TEXT)` to exist.

This change introduce the a patch to the pgmq extension to use
`CREATE OR REPLACE FUNCTION` instead of `CREATE FUNCTION` for
`pgmq.drop_queue(TEXT)` in the upgrade script from 1.4.5 to 1.5.0.

* feat: test that the pgmq extension works well with the after create script

We create a new custom nixos test for the pgmq extension to test that the extension works
well with the after-create.sql script present in
`ansible/files/postgresql_extension_custom_scripts/pgmq/after-create.sql`.

* chore: bump versions to release post-rebase

---------

Co-authored-by: Sam Rose <[email protected]>
* feat(wrappers): add versions 0.4.5, 0.4.6, and 0.5.0

* feat(wrappers): add versions 0.4.3, 0.4.4, 0.5.5

* feat(wrappers): add versions 0.3.0, 0.4.1, 0.4.2

* chore: add release suffix for testing

* chore: bump version for release

---------

Co-authored-by: Sam Rose <[email protected]>
…ase#1684)

* feat: support multiple versions of the plpgsql_check extension

Build multiple versions of the plpgsql_check extension on different PostgreSQL versions.
Add test for the extensions and their upgrade on PostgreSQL 15 and 17.

* tests: refactor to use the default nixos tests

* fix(plpgsql-check): add missing upgrade path files between versions

Generate empty SQL files for version-to-version upgrade paths to satisfy
PostgreSQL extension upgrade requirements.

* feat: requires switch version script due to shared_preload

* fix: test with plpgsql_check extension

---------

Co-authored-by: Sam Rose <[email protected]>
…1688)

* feat: support multiple versions of the pg_repack extension

Build multiple versions of the pg_repack extension on different PostgreSQL versions.
Add test for the extensions and their upgrade on PostgreSQL 15 and 17.

* chore: bump to test

* tests: basic test for repack

* chore: bump to release

---------

Co-authored-by: Sam Rose <[email protected]>
)

* feat: support multiple versions of the pgroonga extension

Build multiple versions of the pgroonga extension on different PostgreSQL versions.
Add test for the extensions and their upgrade on PostgreSQL 15 and 17.

* refactor(nix): make sure ext contains only extensions

Moved sfcgal and mecab-naist-jdic from nix/ext to nix/packages.

* feat: resolve a few issues with tests and integration with tooling

* fix: make sure that docker image has full/correct groonga/pgroonga handling

* chore: bump version to release

---------

Co-authored-by: Sam Rose <[email protected]>
…#1755)

* feat: multiple versions for the pg_hashids extension

Build multiple versions of the pg_hashids extension on different PostgreSQL versions.
Add test for the extensions and their upgrade on PostgreSQL 15 and 17.

* feat: use default nixos extension test

And run pg_regress tests for pgtap as part of the unified extension tests

* chore: bump version to release

---------

Co-authored-by: Sam Rose <[email protected]>
* feat: support multiple versions of the plv8 extension

Build multiple versions of the plv8 extension on different PostgreSQL versions.
Add test for the extensions and their upgrade on PostgreSQL 15 and 17.

* Fix coffeejs & livescript extensions

* Avoid upgrade issue

Port plv8/plv8#552 on version 3.1.x

Upgrade process between 3.1.4 and 3.1.5 fails with a segfault when
running ALTER EXTENSION plv8 UPDATE TO '3.1.5'.

To avoid relying on the upgrade code, we replace the upgrade process by
dropping the extension first and then install the new version.

* feat: rebase nixos tests

Use extension test library
Test postgresql 15 only
Add pg_regress tests

* fix: remove plv8 from postgres 17 regress tests

* chore: bump 1 more to get in line behind wrappers update

---------

Co-authored-by: Sam Rose <[email protected]>
* feat: multiple versions for the vault extension

Build multiple versions of the vault extension on different PostgreSQL versions.
Add test for the extensions and their upgrade on PostgreSQL 15 and 17.

* fix: nixos tests for pg_repack, pgroonga, and plpgsql_check to use the supabase_admin user

We switched to using the supabase_admin user for our Postgres tests instead of the default postgres user.
This change updates the authentication methods and user management in the NixOS test configurations for the pg_repack, pgroonga, and plpgsql_check extensions.

* fix: nixos test for plv8 extension to use the supabase_admin user

We switched to using the supabase_admin user for our Postgres tests instead of the default postgres user.
This change updates the authentication methods and user management in the NixOS test configurations for the plv8 extension.

* chore: bump one more

---------

Co-authored-by: Sam Rose <[email protected]>
* feat: multiple versions for the pgaudit extension

Build multiple versions of the pgaudit extension on different PostgreSQL versions.
Add test for the extensions and their upgrade on PostgreSQL 15 and 17.

* chore: add release suffix for testing

* feat: include migrations on newer version, for all previous

* fix: postgres integration tests

* fix: strip suffix on passthru

* fix: just use the the name

* fix: try without list

* Fix pgaudit upgrade

* fix: migration handling

---------

Co-authored-by: Sam Rose <[email protected]>
@h0lybyte h0lybyte closed this Feb 11, 2026
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.

2 participants