Skip to content

Commit 66be9e0

Browse files
authored
add postgresql-hll extension (#127)
Signed-off-by: Piyush Raj <[email protected]>
1 parent c3beb05 commit 66be9e0

File tree

7 files changed

+70
-3
lines changed

7 files changed

+70
-3
lines changed

.github/workflows/smoke-test.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,10 @@ jobs:
6565
psql -c "INSERT INTO test_geometry_table (geom) VALUES (ST_GeomFromText('POINT(0 0)', 4326));"
6666
psql -c "SELECT * FROM test_geometry_table;"
6767
68+
echo "Test HyperLogLog Extension"
69+
psql -c "CREATE EXTENSION hll;"
70+
psql -c "select hll_hash_text('hello world');"
71+
6872
echo "Test Citus Extension"
6973
psql -c "CREATE EXTENSION citus;"
7074
psql -c "SELECT * FROM citus_version();"

Dockerfile

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -292,4 +292,30 @@ RUN set -eux \
292292
# clean
293293
&& cd / \
294294
&& rm -rf /tmp/pg_auto_failove-${PG_AUTO_FAILOVER_VERSION} /tmp/pg_auto_failove-${PG_AUTO_FAILOVER_VERSION}.zip \
295-
&& apk del .pg_auto_failover-build-deps
295+
&& apk del .pg_auto_failover-build-deps
296+
297+
## Adding postgresql-hll
298+
ARG POSTGRES_HLL_VERSION
299+
RUN set -eux \
300+
&& apk add --no-cache --virtual .postgresql-hll-build-deps \
301+
openssl-dev \
302+
zstd-dev \
303+
lz4-dev \
304+
zlib-dev \
305+
make \
306+
git \
307+
clang15 \
308+
gawk \
309+
llvm15 \
310+
g++ \
311+
musl-dev \
312+
# build postgresql-hll
313+
&& wget -O /tmp/postgresql-hll-${POSTGRES_HLL_VERSION}.zip "https://github.com/citusdata/postgresql-hll/archive/refs/tags/v${POSTGRES_HLL_VERSION}.zip" \
314+
&& unzip /tmp/postgresql-hll-${POSTGRES_HLL_VERSION}.zip -d /tmp \
315+
&& cd /tmp/postgresql-hll-${POSTGRES_HLL_VERSION} \
316+
&& make \
317+
&& make install \
318+
# clean
319+
&& cd / \
320+
&& rm -rf /tmp/postgresql-hll-${POSTGRES_HLL_VERSION} /tmp/postgresql-hll-${POSTGRES_HLL_VERSION}.zip \
321+
&& apk del .postgresql-hll-build-deps

Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ POSTGIS_VERSION=3.4.2
1010
CITUS_VERSION=12.1.0
1111
PG_REPACK_VERSION=1.5.0
1212
PG_AUTO_FAILOVER_VERSION=2.1
13+
POSTGRES_HLL_VERSION=2.18
1314
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 = !!')
1415
PREV_TS_IMAGE="timescale/timescaledb:$(PREV_TS_VERSION)-pg$(PG_VER_NUMBER)$(PREV_EXTRA)"
1516
PREV_IMAGE=$(shell if docker pull $(PREV_TS_IMAGE) >/dev/null; then echo "$(PREV_TS_IMAGE)"; else echo "postgres:$(PG_VER_NUMBER)-alpine"; fi )
@@ -35,6 +36,7 @@ DOCKER_BUILD_ARGS = --build-arg TS_VERSION=$(TS_VERSION) \
3536
--build-arg PG_CRON_VERSION=$(PG_CRON_VERSION) \
3637
--build-arg PG_REPACK_VERSION=$(PG_REPACK_VERSION)\
3738
--build-arg POSTGIS_VERSION=$(POSTGIS_VERSION) \
39+
--build-arg POSTGRES_HLL_VERSION=$(POSTGRES_HLL_VERSION)\
3840
--build-arg CITUS_VERSION=$(CITUS_VERSION) \
3941
--build-arg PG_AUTO_FAILOVER_VERSION=$(PG_AUTO_FAILOVER_VERSION)
4042

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
- [x] [TimescaleDB](https://github.com/timescale/timescaledb)
88
- [x] [PgCron](https://github.com/citusdata/pg_cron)
99
- [x] [PostGIS](https://postgis.net)
10+
- [x] [postgresql-hll](https://github.com/citusdata/postgresql-hll)
1011
- [x] [Citus](https://www.citusdata.com/)
1112
- [x] [Pg Repack](https://github.com/reorg/pg_repack)
1213
- [x] [PgAutoFailover](https://github.com/hapostgres/pg_auto_failover)

bitnami/Dockerfile

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,38 @@ RUN apt-get update \
307307
/tmp/* \
308308
/var/tmp/*
309309

310+
## Adding postgresql-hll
311+
ARG POSTGRES_HLL_VERSION
312+
RUN apt-get update \
313+
&& apt-get install -y unzip \
314+
build-essential \
315+
liblz4-dev \
316+
zlib1g-dev \
317+
libedit-dev \
318+
libssl-dev \
319+
wget \
320+
# build postgresql-hll
321+
&& wget -O /tmp/postgresql-hll-${POSTGRES_HLL_VERSION}.zip "https://github.com/citusdata/postgresql-hll/archive/refs/tags/v${POSTGRES_HLL_VERSION}.zip" \
322+
&& unzip /tmp/postgresql-hll-${POSTGRES_HLL_VERSION}.zip -d /tmp \
323+
&& cd /tmp/postgresql-hll-${POSTGRES_HLL_VERSION} \
324+
&& make \
325+
&& make install \
326+
# clean
327+
&& cd / \
328+
&& rm -rf /tmp/postgresql-hll-${POSTGRES_HLL_VERSION} /tmp/postgresql-hll-${POSTGRES_HLL_VERSION}.zip \
329+
&& apt-get autoremove --purge -y \
330+
unzip \
331+
build-essential \
332+
liblz4-dev \
333+
libedit-dev \
334+
libssl-dev \
335+
wget \
336+
&& apt-get clean -y \
337+
&& rm -rf \
338+
/var/lib/apt/lists/* \
339+
/tmp/* \
340+
/var/tmp/*
341+
310342
USER 1001
311343

312344
ENTRYPOINT [ "/opt/bitnami/scripts/postgresql/timescaledb-bitnami-entrypoint.sh" ]

bitnami/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ TS_VERSION=2.13.0
1010
POSTGIS_VERSION=3.4.2
1111
CITUS_VERSION=12.1.0
1212
PG_REPACK_VERSION=1.5.0
13+
POSTGRES_HLL_VERSION=2.18
1314
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 = !!')
1415
PREV_TS_IMAGE="timescale/timescaledb:$(PREV_TS_VERSION)-pg$(PG_VER_NUMBER)-bitnami"
1516
PREV_IMAGE=$(shell if docker pull $(PREV_TS_IMAGE) >/dev/null; then echo "$(PREV_TS_IMAGE)"; else echo "bitnami/postgresql:$(PG_VER_NUMBER)"; fi )
@@ -32,6 +33,7 @@ DOCKER_BUILD_ARGS = --build-arg PG_VERSION=$(PG_VER_NUMBER) \
3233
--build-arg PG_CRON_VERSION=$(PG_CRON_VERSION) \
3334
--build-arg PG_REPACK_VERSION=$(PG_REPACK_VERSION) \
3435
--build-arg POSTGIS_VERSION=$(POSTGIS_VERSION) \
36+
--build-arg POSTGRES_HLL_VERSION=$(POSTGRES_HLL_VERSION)\
3537
--build-arg CITUS_VERSION=$(CITUS_VERSION) \
3638
--build-arg PG_AUTO_FAILOVER_VERSION=$(PG_AUTO_FAILOVER_VERSION)
3739

bitnami/timescaledb-bitnami-entrypoint.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
# shared preload list, or else it gets overwritten.
55
if [ -z "$POSTGRESQL_SHARED_PRELOAD_LIBRARIES" ]
66
then
7-
POSTGRESQL_SHARED_PRELOAD_LIBRARIES="citus,timescaledb,pg_cron,pgautofailover"
7+
POSTGRESQL_SHARED_PRELOAD_LIBRARIES="citus,timescaledb,pg_cron,pgautofailover,hll"
88
else
9-
POSTGRESQL_SHARED_PRELOAD_LIBRARIES="citus,timescaledb,pg_cron,pgautofailover,$POSTGRESQL_SHARED_PRELOAD_LIBRARIES"
9+
POSTGRESQL_SHARED_PRELOAD_LIBRARIES="citus,timescaledb,pg_cron,pgautofailover,hll,$POSTGRESQL_SHARED_PRELOAD_LIBRARIES"
1010
fi
1111
export POSTGRESQL_SHARED_PRELOAD_LIBRARIES
1212

0 commit comments

Comments
 (0)