From a6e8557c8ccf0e6c7f4b109f234f19f5241e67ac Mon Sep 17 00:00:00 2001 From: Sam Rose Date: Fri, 2 Aug 2024 14:24:54 -0400 Subject: [PATCH 1/5] feat: add our updated fork of pg_backtrace --- .../postgresql_config/postgresql.conf.j2 | 2 +- flake.nix | 1 + nix/ext/pg_backtrace.nix | 33 +++++++++++++++++++ nix/tests/postgresql.conf.in | 2 +- nix/tests/prime.sql | 1 + 5 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 nix/ext/pg_backtrace.nix diff --git a/ansible/files/postgresql_config/postgresql.conf.j2 b/ansible/files/postgresql_config/postgresql.conf.j2 index ee16715a6..a9aa4daa1 100644 --- a/ansible/files/postgresql_config/postgresql.conf.j2 +++ b/ansible/files/postgresql_config/postgresql.conf.j2 @@ -688,7 +688,7 @@ default_text_search_config = 'pg_catalog.english' #local_preload_libraries = '' #session_preload_libraries = '' -shared_preload_libraries = 'pg_stat_statements, pg_stat_monitor, pgaudit, plpgsql, plpgsql_check, pg_cron, pg_net, pgsodium, timescaledb, auto_explain, pg_tle, plan_filter' # (change requires restart) +shared_preload_libraries = 'pg_stat_statements, pg_stat_monitor, pgaudit, plpgsql, plpgsql_check, pg_cron, pg_net, pgsodium, timescaledb, auto_explain, pg_tle, plan_filter, pg_backtrace' # (change requires restart) jit_provider = 'llvmjit' # JIT library to use # - Other Defaults - diff --git a/flake.nix b/flake.nix index 5fb3dc0c9..4cd1992f2 100644 --- a/flake.nix +++ b/flake.nix @@ -102,6 +102,7 @@ ./nix/ext/postgis.nix ./nix/ext/pgrouting.nix ./nix/ext/pgtap.nix + ./nix/ext/pg_backtrace.nix ./nix/ext/pg_cron.nix ./nix/ext/pgsql-http.nix ./nix/ext/pg_plan_filter.nix diff --git a/nix/ext/pg_backtrace.nix b/nix/ext/pg_backtrace.nix new file mode 100644 index 000000000..c7cade89d --- /dev/null +++ b/nix/ext/pg_backtrace.nix @@ -0,0 +1,33 @@ +{ lib, stdenv, fetchFromGitHub, postgresql }: + +stdenv.mkDerivation rec { + pname = "pg_backtrace"; + version = "1.0"; + + buildInputs = [ postgresql ]; + + src = fetchFromGitHub { + owner = "pashkinelfe"; + repo = pname; + rev = "fddeeb4ae0a8aa8993336463ef0d5fcd5b4b7cfd"; + hash = "sha256-o3bgPckh5KMHBgSiEmhmFSibbJzeIPOUTNyeLVh6Pkk="; + }; + + makeFlags = [ "USE_PGXS=1" ]; + + installPhase = '' + mkdir -p $out/{lib,share/postgresql/extension} + + cp *.so $out/lib + cp *.sql $out/share/postgresql/extension + cp *.control $out/share/postgresql/extension + ''; + + meta = with lib; { + description = "Updated fork of pg_backtrace"; + homepage = "https://github.com/pashkinelfe/pg_backtrace"; + maintainers = with maintainers; [ samrose ]; + platforms = postgresql.meta.platforms; + license = licenses.postgresql; + }; +} diff --git a/nix/tests/postgresql.conf.in b/nix/tests/postgresql.conf.in index 7f4b51022..d2d667b9a 100644 --- a/nix/tests/postgresql.conf.in +++ b/nix/tests/postgresql.conf.in @@ -718,7 +718,7 @@ default_text_search_config = 'pg_catalog.english' #local_preload_libraries = '' #session_preload_libraries = '' -shared_preload_libraries = 'pg_stat_statements, pg_stat_monitor, pgaudit, plpgsql, plpgsql_check, pg_cron, pg_net, pgsodium, timescaledb, auto_explain, pg_tle, plan_filter' # (change requires restart) +shared_preload_libraries = 'pg_stat_statements, pg_stat_monitor, pgaudit, plpgsql, plpgsql_check, pg_cron, pg_net, pgsodium, timescaledb, auto_explain, pg_tle, plan_filter, pg_backtrace' # (change requires restart) jit_provider = 'llvmjit' # JIT library to use diff --git a/nix/tests/prime.sql b/nix/tests/prime.sql index a7c6d9e2f..23101262b 100644 --- a/nix/tests/prime.sql +++ b/nix/tests/prime.sql @@ -99,3 +99,4 @@ create extension xml2; +CREATE EXTENSION IF NOT EXISTS pg_backtrace; From 5c8032c4e1876a5f99a1aea2fd801483bbfd55b1 Mon Sep 17 00:00:00 2001 From: Pavel Borisov Date: Wed, 7 Aug 2024 19:57:34 +0400 Subject: [PATCH 2/5] Fix nix tests + use version 1.1 --- nix/ext/pg_backtrace.nix | 6 +++--- nix/tests/expected/extensions_sql_interface.out | 6 ++++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/nix/ext/pg_backtrace.nix b/nix/ext/pg_backtrace.nix index c7cade89d..b0169124c 100644 --- a/nix/ext/pg_backtrace.nix +++ b/nix/ext/pg_backtrace.nix @@ -2,15 +2,15 @@ stdenv.mkDerivation rec { pname = "pg_backtrace"; - version = "1.0"; + version = "1.1"; buildInputs = [ postgresql ]; src = fetchFromGitHub { owner = "pashkinelfe"; repo = pname; - rev = "fddeeb4ae0a8aa8993336463ef0d5fcd5b4b7cfd"; - hash = "sha256-o3bgPckh5KMHBgSiEmhmFSibbJzeIPOUTNyeLVh6Pkk="; + rev = "d100bac815a7365e199263f5b3741baf71b14c70"; + hash = "sha256-IVCL4r4oj1Ams03D8y+XCFkckPFER/W9tQ68GkWQQMY="; }; makeFlags = [ "USE_PGXS=1" ]; diff --git a/nix/tests/expected/extensions_sql_interface.out b/nix/tests/expected/extensions_sql_interface.out index 43ec69966..2f4c8385e 100644 --- a/nix/tests/expected/extensions_sql_interface.out +++ b/nix/tests/expected/extensions_sql_interface.out @@ -72,6 +72,7 @@ order by moddatetime | t old_snapshot | t pageinspect | t + pg_backtrace | t pg_buffercache | t pg_freespacemap | t pg_graphql | f @@ -120,7 +121,7 @@ order by vector | t wrappers | f xml2 | f -(77 rows) +(78 rows) /* @@ -1100,6 +1101,7 @@ order by pageinspect | public | page_header | page bytea, OUT lsn pg_lsn, OUT checksum smallint, OUT flags smallint, OUT lower integer, OUT upper integer, OUT special integer, OUT pagesize integer, OUT version smallint, OUT prune_xid xid | record pageinspect | public | tuple_data_split | rel_oid oid, t_data bytea, t_infomask integer, t_infomask2 integer, t_bits text | bytea[] pageinspect | public | tuple_data_split | rel_oid oid, t_data bytea, t_infomask integer, t_infomask2 integer, t_bits text, do_detoast boolean | bytea[] + pg_backtrace | public | pg_backtrace_init | | void pg_buffercache | public | pg_buffercache_pages | | SETOF record pg_freespacemap | public | pg_freespace | regclass, bigint | smallint pg_freespacemap | public | pg_freespace | rel regclass, OUT blkno bigint, OUT avail smallint | SETOF record @@ -5090,7 +5092,7 @@ order by xml2 | public | xpath_table | text, text, text, text, text | SETOF record xml2 | public | xslt_process | text, text | text xml2 | public | xslt_process | text, text, text | text -(4940 rows) +(4941 rows) /* From 2a2d157a2e716a695fceb1c7e867a1838e8e7d0e Mon Sep 17 00:00:00 2001 From: samrose Date: Wed, 7 Aug 2024 19:01:50 +0000 Subject: [PATCH 3/5] test: use postgres release version for docker tag (#1099) * test: use postgres release version for docker tag * fix: ref the var correct * fix: use correct Dockerfile --------- Co-authored-by: Sam Rose --- .github/workflows/test.yml | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f2de89a82..be9c9a72d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,6 +23,10 @@ jobs: POSTGRES_PASSWORD: password steps: - uses: actions/checkout@v3 + - id: settings + # Remove spaces and quotes to get the raw version string + run: sed -r 's/(\s|\")+//g' common-nix.vars.pkr.hcl >> $GITHUB_OUTPUT + - id: args uses: mikefarah/yq@master with: @@ -36,14 +40,15 @@ jobs: with: load: true context: . + file: "Dockerfile-156" target: production build-args: | ${{ steps.args.outputs.result }} - tags: supabase/postgres:latest + tags: supabase/postgres:${{ steps.settings.outputs.postgres-version }} cache-from: | - type=gha,scope=${{ github.ref_name }}-latest-${{ matrix.arch }} - type=gha,scope=${{ github.base_ref }}-latest-${{ matrix.arch }} - cache-to: type=gha,mode=max,scope=${{ github.ref_name }}-latest-${{ matrix.arch }} + type=gha,scope=${{ github.ref_name }}-${{ steps.settings.outputs.postgres-version }}-${{ matrix.arch }} + type=gha,scope=${{ github.base_ref }}-${{ steps.settings.outputs.postgres-version }}-${{ matrix.arch }} + cache-to: type=gha,mode=max,scope=${{ github.ref_name }}-${{ steps.settings.outputs.postgres-version }}-${{ matrix.arch }} - name: Start Postgres run: | @@ -51,8 +56,7 @@ jobs: -e POSTGRES_PASSWORD=${{ env.POSTGRES_PASSWORD }} \ -p ${{ env.POSTGRES_PORT }}:5432 \ --name supabase_postgres \ - -d supabase/postgres:latest - + -d supabase/postgres:${{ steps.settings.outputs.postgres-version }} - name: Install psql run: | sudo apt update From 42b4047de2ce7596b82614f06ff9e9de07f5c8fd Mon Sep 17 00:00:00 2001 From: Pavel Borisov <63344111+pashkinelfe@users.noreply.github.com> Date: Thu, 8 Aug 2024 13:17:36 +0400 Subject: [PATCH 4/5] Update common.vars.pkr.hcl --- common.vars.pkr.hcl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common.vars.pkr.hcl b/common.vars.pkr.hcl index 93db8ecd9..9246d05ae 100644 --- a/common.vars.pkr.hcl +++ b/common.vars.pkr.hcl @@ -1 +1 @@ -postgres-version = "15.1.1.86" +postgres-version = "15.1.1.88" From 1cda640d190543c4d8472b83c44cfc1e91b34738 Mon Sep 17 00:00:00 2001 From: Pavel Borisov <63344111+pashkinelfe@users.noreply.github.com> Date: Thu, 8 Aug 2024 13:18:42 +0400 Subject: [PATCH 5/5] Update common-nix.vars.pkr.hcl --- common-nix.vars.pkr.hcl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common-nix.vars.pkr.hcl b/common-nix.vars.pkr.hcl index 04eb9d52f..a08f56a2b 100644 --- a/common-nix.vars.pkr.hcl +++ b/common-nix.vars.pkr.hcl @@ -1 +1 @@ -postgres-version = "15.6.1.104" +postgres-version = "15.6.1.106"