Repository navigation
feat: Add 78 extensions, matching what pglayers ships - #20
Merged
Merged
Conversation
Brings the image from 4 to 82 tested extensions (plus contrib), covering everything pglayers includes except plv8, pg_lake and pg_durable. - extensions/pgdg.txt: 57 extensions from PGDG apt, pinned, with per-major lines where versions differ (age, pgaudit, pg_hint_plan, timescaledb) or the package doesn't exist for every major (documentdb 15+, pg_textsearch 17+). pgvector now comes from PGDG (0.8.2 -> 0.8.7). - Prebuilt release packages (fetch-deb): anon, pg_graphql, pg_jsonschema, pgvectorscale, wrappers. - Copied from the authors' images: pg_duckdb, pg_clickhouse, re2. - Built from source (pgxs-build): pgmq, pg_bigm, pg_hashids, pg_incremental (15+), pg_net, pg_stat_monitor, pgsodium (with a static libsodium 1.0.22), temporal_tables, pgjwt, postgres_protobuf. - /usr/share/postgres-extensor/extensions.txt lists every extension and version; per-extension labels are gone. - tests/run.sh: assert_true() helper, and optional server.conf, pg-versions, database and isolated files per extension. pg_show_plans runs isolated: preloaded with timescaledb it segfaults on hypertable inserts. - Renovate tracks pgdg.txt (deb datasource, one weekly grouped PR). - Release notes become one row per extension, one column per major. - Docs: full list in .docs/included-extensions(.es).md, new guide for adding extensions, README comparison now includes pglayers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QTN7At86i5TYDmozENSNv8
CI caught an intermittent abort on PG 17: with anon preloaded, DuckDB
calls anon's pgrx hooks from its worker threads and pgrx panics
("postgres FFI may not be called from multiple threads"). Reproduced
locally (1 in 6 runs with every preload, 0 in 12 with pg_duckdb alone).
- pg_duckdb runs on its own server; the conflict is documented.
- run.sh waits for PostgreSQL to recover after a failing test instead of
aborting, so the remaining tests still run and report.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QTN7At86i5TYDmozENSNv8
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Brings the image from 4 to 82 tested extensions (plus contrib). It covers everything pglayers ships except 3 that don't fit (see below).
extensions/pgdg.txt(57)Not included
Per-major availability
SKIPon older majors.Two incompatibilities found by the tests. Both are documented in
.docs/included-extensions.md, and the affected extensions are tested on their own server (isolated):Other changes
/usr/share/postgres-extensor/extensions.txt, which lists every extension and its version.tests/run.sh:assert_true()helper;server.conf,pg-versions,databaseandisolatedfiles per extension;extensions/pgdg.txtthrough the PGDG apt index, as one grouped weekly PR. A local dry-run resolves all 83 entries..docs/included-extensions(.es).md, with preload requirements and caveats;Trade-off
Images grow from about 960 MB to about 1.55 GB, against 650 MB for the official one. That is the cost of bundling DuckDB, TimescaleDB, pgRouting/Boost and the rest. Nothing is preloaded or enabled by default, so the runtime behavior stays identical to the official image.
Testing
Local, amd64:
shellcheck and actionlint pass. This PR's CI covers arm64.
🤖 Generated with Claude Code
https://claude.ai/code/session_01QTN7At86i5TYDmozENSNv8