Skip to content

Commit cdfccfc

Browse files
committed
add postgresql-hll extension
Signed-off-by: Piyush Raj <piyushraj92739@gmail.com>
1 parent 2bcc905 commit cdfccfc

7 files changed

Lines changed: 72 additions & 5 deletions

File tree

.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
break
6973
fi
7074
sleep 1

Dockerfile

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,4 +200,30 @@ RUN set -eux \
200200
# clean
201201
&& cd / \
202202
&& rm -rf /usr/src/postgis \
203-
&& apk del .fetch-deps .build-deps
203+
&& apk del .fetch-deps .build-deps
204+
205+
## Adding postgresql-hll
206+
ARG POSTGRES_HLL_VERSION
207+
RUN set -eux \
208+
&& apk add --no-cache --virtual .postgresql-hll-build-deps \
209+
openssl-dev \
210+
zstd-dev \
211+
lz4-dev \
212+
zlib-dev \
213+
make \
214+
git \
215+
clang15 \
216+
gawk \
217+
llvm15 \
218+
g++ \
219+
musl-dev \
220+
# build postgresql-hll
221+
&& wget -O /tmp/postgresql-hll-${POSTGRES_HLL_VERSION}.zip "https://github.com/citusdata/postgresql-hll/archive/refs/tags/v${POSTGRES_HLL_VERSION}.zip" \
222+
&& unzip /tmp/postgresql-hll-${POSTGRES_HLL_VERSION}.zip -d /tmp \
223+
&& cd /tmp/postgresql-hll-${POSTGRES_HLL_VERSION} \
224+
&& make \
225+
&& make install \
226+
# clean
227+
&& cd / \
228+
&& rm -rf /tmp/postgresql-hll-${POSTGRES_HLL_VERSION} /tmp/postgresql-hll-${POSTGRES_HLL_VERSION}.zip \
229+
&& apk del .postgresql-hll-build-deps

Makefile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ PG_VER_NUMBER=$(shell echo $(PG_VER) | cut -c3-)
77
TS_VERSION=2.13.0
88
PG_CRON_VERSION=v1.6.0
99
POSTGIS_VERSION=3.4.1
10+
POSTGRES_HLL_VERSION=2.18
1011
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 = !!')
1112
PREV_TS_IMAGE="timescale/timescaledb:$(PREV_TS_VERSION)-pg$(PG_VER_NUMBER)$(PREV_EXTRA)"
1213
PREV_IMAGE=$(shell if docker pull $(PREV_TS_IMAGE) >/dev/null; then echo "$(PREV_TS_IMAGE)"; else echo "postgres:$(PG_VER_NUMBER)-alpine"; fi )
@@ -30,7 +31,8 @@ DOCKER_BUILD_ARGS = --build-arg TS_VERSION=$(TS_VERSION) \
3031
--build-arg PG_VERSION=$(PG_VER_NUMBER) \
3132
--build-arg PREV_IMAGE=$(PREV_IMAGE) \
3233
--build-arg PG_CRON_VERSION=$(PG_CRON_VERSION) \
33-
--build-arg POSTGIS_VERSION=$(POSTGIS_VERSION)
34+
--build-arg POSTGIS_VERSION=$(POSTGIS_VERSION) \
35+
--build-arg POSTGRES_HLL_VERSION=$(POSTGRES_HLL_VERSION)
3436

3537

3638
default: image

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
- [x] [PgVector](https://github.com/pgvector/pgvector)
77
- [x] [TimescaleDB](https://github.com/timescale/timescaledb)
88
- [x] [PgCron ](https://github.com/citusdata/pg_cron)
9+
- [x] [postgresql-hll](https://github.com/citusdata/postgresql-hll)
910
- [ ] [Citus](https://www.citusdata.com/)
1011

1112
## Releases

bitnami/Dockerfile

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,38 @@ RUN set -eux \
208208
/tmp/* \
209209
/var/tmp/*
210210

211+
## Adding postgresql-hll
212+
ARG POSTGRES_HLL_VERSION
213+
RUN apt-get update \
214+
&& apt-get install -y unzip \
215+
build-essential \
216+
liblz4-dev \
217+
zlib1g-dev \
218+
libedit-dev \
219+
libssl-dev \
220+
wget \
221+
# build postgresql-hll
222+
&& wget -O /tmp/postgresql-hll-${POSTGRES_HLL_VERSION}.zip "https://github.com/citusdata/postgresql-hll/archive/refs/tags/v${POSTGRES_HLL_VERSION}.zip" \
223+
&& unzip /tmp/postgresql-hll-${POSTGRES_HLL_VERSION}.zip -d /tmp \
224+
&& cd /tmp/postgresql-hll-${POSTGRES_HLL_VERSION} \
225+
&& make \
226+
&& make install \
227+
# clean
228+
&& cd / \
229+
&& rm -rf /tmp/postgresql-hll-${POSTGRES_HLL_VERSION} /tmp/postgresql-hll-${POSTGRES_HLL_VERSION}.zip \
230+
&& apt-get autoremove --purge -y \
231+
unzip \
232+
build-essential \
233+
liblz4-dev \
234+
libedit-dev \
235+
libssl-dev \
236+
wget \
237+
&& apt-get clean -y \
238+
&& rm -rf \
239+
/var/lib/apt/lists/* \
240+
/tmp/* \
241+
/var/tmp/*
242+
211243
USER 1001
212244

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

bitnami/Makefile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ PG_VER_NUMBER=$(shell echo $(PG_VER) | cut -c3-)
77
PG_CRON_VERSION=v1.6.0
88
TS_VERSION=2.13.0
99
POSTGIS_VERSION=3.4.1
10+
POSTGRES_HLL_VERSION=2.18
1011
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 = !!')
1112
PREV_TS_IMAGE="timescale/timescaledb:$(PREV_TS_VERSION)-pg$(PG_VER_NUMBER)-bitnami"
1213
PREV_IMAGE=$(shell if docker pull $(PREV_TS_IMAGE) >/dev/null; then echo "$(PREV_TS_IMAGE)"; else echo "bitnami/postgresql:$(PG_VER_NUMBER)"; fi )
@@ -27,7 +28,8 @@ DOCKER_BUILD_ARGS = --build-arg PG_VERSION=$(PG_VER_NUMBER) \
2728
--build-arg TS_VERSION=$(TS_VERSION) \
2829
--build-arg PREV_IMAGE=$(PREV_IMAGE) \
2930
--build-arg PG_CRON_VERSION=$(PG_CRON_VERSION) \
30-
--build-arg POSTGIS_VERSION=$(POSTGIS_VERSION)
31+
--build-arg POSTGIS_VERSION=$(POSTGIS_VERSION) \
32+
--build-arg POSTGRES_HLL_VERSION=$(POSTGRES_HLL_VERSION)
3133

3234

3335
default: image

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="timescaledb,pg_cron"
7+
POSTGRESQL_SHARED_PRELOAD_LIBRARIES="timescaledb,pg_cron,hll"
88
else
9-
POSTGRESQL_SHARED_PRELOAD_LIBRARIES="$POSTGRESQL_SHARED_PRELOAD_LIBRARIES,timescaledb,pg_cron"
9+
POSTGRESQL_SHARED_PRELOAD_LIBRARIES="$POSTGRESQL_SHARED_PRELOAD_LIBRARIES,timescaledb,pg_cron,hll"
1010
fi
1111
export POSTGRESQL_SHARED_PRELOAD_LIBRARIES
1212

0 commit comments

Comments
 (0)