supabase-postgres.git / summary / log / commit / refs
commit cb95314be360173d305b9a20b2da3ee252fafca4
Author: Pavel Borisov <63344111+pashkinelfe@users.noreply.github.com>
Commit: GitHub <noreply@github.com>
Date: Thu Aug 08 09:20:14 2024 +0000
feat: add our updated fork of pg_backtrace (#1098)
* feat: add our updated fork of pg_backtrace
* Fix nix tests + use version 1.1
* 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 <samuel@supabase.io>
.github/workflows/test.yml | 16 +++++++----
ansible/files/postgresql_config/postgresql.conf.j2 | 2 +-
common-nix.vars.pkr.hcl | 2 +-
common.vars.pkr.hcl | 2 +-
flake.nix | 1 +
nix/ext/pg_backtrace.nix | 33 ++++++++++++++++++++++
nix/tests/expected/extensions_sql_interface.out | 6 ++--
nix/tests/postgresql.conf.in | 2 +-
nix/tests/prime.sql | 1 +
9 files changed, 53 insertions(+), 12 deletions(-)
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index f2de89a8..be9c9a72 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
diff --git a/ansible/files/postgresql_config/postgresql.conf.j2 b/ansible/files/postgresql_config/postgresql.conf.j2
index ee16715a..a9aa4daa 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/common-nix.vars.pkr.hcl b/common-nix.vars.pkr.hcl
index 04eb9d52..a08f56a2 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"
diff --git a/common.vars.pkr.hcl b/common.vars.pkr.hcl
index 93db8ecd..9246d05a 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"
diff --git a/flake.nix b/flake.nix
index 5fb3dc0c..4cd1992f 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 00000000..b0169124
--- /dev/null
+++ b/nix/ext/pg_backtrace.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchFromGitHub, postgresql }:
+
+stdenv.mkDerivation rec {
+ pname = "pg_backtrace";
+ version = "1.1";
+
+ buildInputs = [ postgresql ];
+
+ src = fetchFromGitHub {
+ owner = "pashkinelfe";
+ repo = pname;
+ rev = "d100bac815a7365e199263f5b3741baf71b14c70";
+ hash = "sha256-IVCL4r4oj1Ams03D8y+XCFkckPFER/W9tQ68GkWQQMY=";
+ };
+
+ 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/expected/extensions_sql_interface.out b/nix/tests/expected/extensions_sql_interface.out
index 43ec6996..2f4c8385 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)
/*
diff --git a/nix/tests/postgresql.conf.in b/nix/tests/postgresql.conf.in
index 7f4b5102..d2d667b9 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 a7c6d9e2..23101262 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;
[parent: 570dbb3fa342]