Skip to content

Commit 141e7da

Browse files
michelpdragarciasweatybridge
authored
add Trusted Language Extensions (#405)
* add flex, fix copy pasta. * chore: pg_tle in Docker (#542) * chore: set pg_tle as 29th extension * chore: place pg_tle in vars.yml * chore: add pg_tle to Dockerfile * chore: bump version * chore: new line * chore: add test for pg_tle * fix: remove specified schema * chore: update sql test formatting --------- Co-authored-by: Han Qiao <[email protected]> * chore: update release checksum * Update ansible/Dockerfile * fix: reinstate pg_tle in docker (#556) * fix: reinstate pg_tle in Dockerfile * fix * fix: put back flex --------- Co-authored-by: dragarcia <[email protected]> Co-authored-by: Han Qiao <[email protected]>
1 parent 65b709f commit 141e7da

File tree

8 files changed

+45
-2
lines changed

8 files changed

+45
-2
lines changed

Dockerfile

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ ARG wrappers_release=0.1.7
3434
ARG hypopg_release=1.3.1
3535
ARG pg_repack_release=1.4.8
3636
ARG pgvector_release=0.4.0
37+
ARG pg_tle_release=1.0.1
3738

3839
FROM postgres:${postgresql_release} as base
3940
# Redeclare args for use in subsequent stages
@@ -692,6 +693,27 @@ RUN --mount=type=cache,target=/ccache,from=public.ecr.aws/supabase/postgres:ccac
692693
# Create debian package
693694
RUN checkinstall -D --install=no --fstrans=no --backup=no --pakdir=/tmp --nodoc
694695

696+
####################
697+
# 29-pg_tle.yml
698+
####################
699+
FROM ccache as pg_tle
700+
ARG pg_tle_release
701+
ARG pg_tle_release_checksum
702+
ADD --checksum=${pg_tle_release_checksum} \
703+
"https://github.com/aws/pg_tle/archive/refs/tags/v${pg_tle_release}.tar.gz" \
704+
/tmp/pg_tle.tar.gz
705+
RUN tar -xvf /tmp/pg_tle.tar.gz -C /tmp && \
706+
rm -rf /tmp/pg_tle.tar.gz
707+
RUN apt-get update && apt-get install -y --no-install-recommends \
708+
flex \
709+
&& rm -rf /var/lib/apt/lists/*
710+
# Build from source
711+
WORKDIR /tmp/pg_tle-${pg_tle_release}
712+
RUN --mount=type=cache,target=/ccache,from=public.ecr.aws/supabase/postgres:ccache \
713+
make -j$(nproc)
714+
# Create debian package
715+
RUN checkinstall -D --install=no --fstrans=no --backup=no --pakdir=/tmp --nodoc
716+
695717
####################
696718
# Collect extension packages
697719
####################
@@ -723,6 +745,7 @@ COPY --from=wrappers /tmp/*.deb /tmp/
723745
COPY --from=hypopg /tmp/*.deb /tmp/
724746
COPY --from=pg_repack /tmp/*.deb /tmp/
725747
COPY --from=pgvector /tmp/*.deb /tmp/
748+
COPY --from=pg_tle /tmp/*.deb /tmp/
726749

727750
####################
728751
# Build final image

ansible/files/postgresql_config/postgresql.conf.j2

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -688,7 +688,7 @@ default_text_search_config = 'pg_catalog.english'
688688
#local_preload_libraries = ''
689689
#session_preload_libraries = ''
690690

691-
shared_preload_libraries = 'pg_stat_statements, pg_stat_monitor, pgaudit, plpgsql, plpgsql_check, pg_cron, pg_net, pgsodium, timescaledb, auto_explain' # (change requires restart)
691+
shared_preload_libraries = 'pg_stat_statements, pg_stat_monitor, pgaudit, plpgsql, plpgsql_check, pg_cron, pg_net, pgsodium, timescaledb, auto_explain, pg_tle' # (change requires restart)
692692
jit_provider = 'llvmjit' # JIT library to use
693693

694694
# - Other Defaults -
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# pg_tle
2+
- name: pg_tle - download
3+
git:
4+
repo: https://github.com/aws/pg_tle.git
5+
dest: /tmp/pg_tle
6+
version: v{{ pg_tle_release }}
7+
8+
- name: pg_tle - install
9+
make:
10+
chdir: /tmp/pg_tle
11+
target: install
12+
become: yes

ansible/tasks/setup-extensions.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,9 @@
8282
- name: Install pgvector
8383
import_tasks: tasks/postgres-extensions/28-pgvector.yml
8484

85+
- name: Install Trusted Language Extensions
86+
import_tasks: tasks/postgres-extensions/29-pg_tle.yml
87+
8588
- name: Verify async task status
8689
import_tasks: tasks/postgres-extensions/99-finish_async_tasks.yml
8790
when: async_mode

ansible/vars.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,3 +131,6 @@ pg_repack_release_checksum: sha256:18b4d871c1abf78cf0b1b1fe6081d435d183a8dc5eb97
131131

132132
pgvector_release: "0.4.0"
133133
pgvector_release_checksum: sha256:b76cf84ddad452cc880a6c8c661d137ddd8679c000a16332f4f03ecf6e10bcc8
134+
135+
pg_tle_release: "1.0.1"
136+
pg_tle_release_checksum: sha256:c536b818ffcda478c2ea67d2cd30c70cab1fecdc3dd8146a5411377ba5f12950

common.vars.pkr.hcl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
postgres-version = "15.1.0.44"
1+
postgres-version = "15.1.0.45"
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
create extension if not exists pg_tle;

migrations/tests/extensions/test.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,4 @@
2727
\ir 26-hypopg.sql
2828
\ir 27-pg_repack.sql
2929
\ir 28-pgvector.sql
30+
\ir 29-pg_tle.sql

0 commit comments

Comments
 (0)