From 6d5535e9f577265323bcd5ab371de658c95c93d6 Mon Sep 17 00:00:00 2001 From: Piyush Raj Date: Sun, 25 Feb 2024 19:05:28 +0530 Subject: [PATCH] add hypopg extension Signed-off-by: Piyush Raj --- .github/workflows/smoke-test.yml | 4 +++ Dockerfile | 38 ++++++++++++++++++++++++- Makefile | 5 ++-- README.md | 2 +- bitnami/Dockerfile | 49 ++++++++++++++++++++++++++++++++ bitnami/Makefile | 4 ++- 6 files changed, 97 insertions(+), 5 deletions(-) diff --git a/.github/workflows/smoke-test.yml b/.github/workflows/smoke-test.yml index ab2105a..98b388b 100644 --- a/.github/workflows/smoke-test.yml +++ b/.github/workflows/smoke-test.yml @@ -95,6 +95,10 @@ jobs: psql -c "CREATE SCHEMA partman;" psql -c "CREATE EXTENSION pg_partman SCHEMA partman;" + echo "Test HypoPG Extension" + psql -c "CREATE EXTENSION hypopg;" + psql -c "CREATE TABLE hypo AS SELECT id, 'line ' || id AS val FROM generate_series(1,10000) id;" + psql -c "EXPLAIN SELECT * FROM hypo WHERE id = 1;" break fi sleep 1 diff --git a/Dockerfile b/Dockerfile index 0476912..7fa4133 100644 --- a/Dockerfile +++ b/Dockerfile @@ -390,4 +390,40 @@ RUN set -e \ && cd / \ && rm /tmp/pg_partman.tar.gz \ && rm -rf /tmp/pg_partman \ - && apk del .pg_partman-deps .pg_partman-build-deps \ No newline at end of file + && apk del .pg_partman-deps .pg_partman-build-deps + + +# Adding hypo_pg +ARG HYPOPG_VERSION + +RUN set -ex \ + && cd /tmp\ + && apk add --no-cache --virtual .hypopg-deps \ + ca-certificates \ + openssl \ + tar \ + && apk add --no-cache --virtual .hypopg-build-deps \ + autoconf \ + automake \ + g++ \ + clang15 \ + llvm15 \ + libtool \ + libxml2-dev \ + make \ + perl \ + && wget -O hypopg.tar.gz "https://github.com/HypoPG/hypopg/archive/refs/tags/${HYPOPG_VERSION}.tar.gz" \ + && mkdir -p /tmp/hypopg \ + && tar \ + --extract \ + --file hypopg.tar.gz \ + --directory /tmp/hypopg \ + --strip-components 1 \ + && cd /tmp/hypopg \ + && make \ + && make install \ + # clean + && cd / \ + && rm /tmp/hypopg.tar.gz \ + && rm -rf /tmp/hypopg \ + && apk del .hypopg-deps .hypopg-build-deps diff --git a/Makefile b/Makefile index 9b79bed..b3937de 100644 --- a/Makefile +++ b/Makefile @@ -13,6 +13,7 @@ PG_AUTO_FAILOVER_VERSION=2.1 POSTGRES_HLL_VERSION=2.18 PG_JOBMON_VERSION=1.4.1 PG_PARTMAN_VERSION=5.0.1 +HYPOPG_VERSION=1.4.0 PREV_TS_VERSION=$(shell wget --quiet -O - https://raw.githubusercontent.com/timescale/timescaledb/${TS_VERSION}/version.config | grep update_from_version | sed -e 's!update_from_version = !!') PREV_TS_IMAGE="timescale/timescaledb:$(PREV_TS_VERSION)-pg$(PG_VER_NUMBER)$(PREV_EXTRA)" PREV_IMAGE=$(shell if docker pull $(PREV_TS_IMAGE) >/dev/null; then echo "$(PREV_TS_IMAGE)"; else echo "postgres:$(PG_VER_NUMBER)-alpine"; fi ) @@ -42,8 +43,8 @@ DOCKER_BUILD_ARGS = --build-arg TS_VERSION=$(TS_VERSION) \ --build-arg PG_AUTO_FAILOVER_VERSION=$(PG_AUTO_FAILOVER_VERSION) \ --build-arg POSTGRES_HLL_VERSION=$(POSTGRES_HLL_VERSION)\ --build-arg PG_JOBMON_VERSION=$(PG_JOBMON_VERSION) \ - --build-arg PG_PARTMAN_VERSION=$(PG_PARTMAN_VERSION) - + --build-arg PG_PARTMAN_VERSION=$(PG_PARTMAN_VERSION) \ + --build-arg HYPOPG_VERSION=$(HYPOPG_VERSION) default: image diff --git a/README.md b/README.md index 31c9885..c19d155 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ - [x] [PgAutoFailover](https://github.com/hapostgres/pg_auto_failover) - [x] [PgJobmon](https://github.com/omniti-labs/pg_jobmon) - [x] [PgPartman](https://github.com/pgpartman/pg_partman) - +- [x] [HypoPG](https://github.com/HypoPG/hypopg) ## Releases - [Versioning Policy](./docs/version-policy.md) diff --git a/bitnami/Dockerfile b/bitnami/Dockerfile index 6537109..6b7786d 100644 --- a/bitnami/Dockerfile +++ b/bitnami/Dockerfile @@ -427,6 +427,55 @@ RUN set -ex \ && rm /tmp/pg_partman.tar.gz \ && rm -rf /tmp/pg_partman +# Adding hypopg +ARG HYPOPG_VERSION + +RUN set -e \ + && cd /tmp\ + && apt-get update \ + && apt-get install -y \ + ca-certificates \ + openssl \ + tar \ + autoconf \ + automake \ + g++ \ + clang \ + llvm \ + libtool \ + libxml2-dev \ + make \ + perl \ + wget \ + && wget -O hypopg.tar.gz "https://github.com/HypoPG/hypopg/archive/refs/tags/${HYPOPG_VERSION}.tar.gz" \ + && mkdir -p /tmp/hypopg \ + && tar \ + --extract \ + --file hypopg.tar.gz \ + --directory /tmp/hypopg \ + --strip-components 1 \ + && cd /tmp/hypopg \ + && make \ + && make install \ + # clean + && cd / \ + && rm /tmp/hypopg.tar.gz \ + && rm -rf /tmp/hypopg \ + && apt-get autoremove --purge -y \ + autoconf \ + automake \ + g++ \ + clang \ + llvm \ + make \ + perl \ + wget \ + && apt-get clean -y \ + && rm -rf \ + /var/lib/apt/lists/* \ + /tmp/* \ + /var/tmp/* + USER 1001 ENTRYPOINT [ "/opt/bitnami/scripts/postgresql/timescaledb-bitnami-entrypoint.sh" ] diff --git a/bitnami/Makefile b/bitnami/Makefile index 70b0d83..0f789df 100644 --- a/bitnami/Makefile +++ b/bitnami/Makefile @@ -13,6 +13,7 @@ PG_REPACK_VERSION=1.5.0 POSTGRES_HLL_VERSION=2.18 PG_JOBMON_VERSION=1.4.1 PG_PARTMAN_VERSION=5.0.1 +HYPOPG_VERSION=1.4.0 PREV_TS_VERSION=$(shell wget --quiet -O - https://raw.githubusercontent.com/timescale/timescaledb/${TS_VERSION}/version.config | grep update_from_version | sed -e 's!update_from_version = !!') PREV_TS_IMAGE="timescale/timescaledb:$(PREV_TS_VERSION)-pg$(PG_VER_NUMBER)-bitnami" PREV_IMAGE=$(shell if docker pull $(PREV_TS_IMAGE) >/dev/null; then echo "$(PREV_TS_IMAGE)"; else echo "bitnami/postgresql:$(PG_VER_NUMBER)"; fi ) @@ -39,7 +40,8 @@ DOCKER_BUILD_ARGS = --build-arg PG_VERSION=$(PG_VER_NUMBER) \ --build-arg PG_AUTO_FAILOVER_VERSION=$(PG_AUTO_FAILOVER_VERSION) \ --build-arg POSTGRES_HLL_VERSION=$(POSTGRES_HLL_VERSION)\ --build-arg PG_JOBMON_VERSION=$(PG_JOBMON_VERSION) \ - --build-arg PG_PARTMAN_VERSION=$(PG_PARTMAN_VERSION) + --build-arg PG_PARTMAN_VERSION=$(PG_PARTMAN_VERSION) \ + --build-arg HYPOPG_VERSION=$(HYPOPG_VERSION) default: image