Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .asf.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,10 @@ github:
required_pull_request_reviews:
required_approving_review_count: 2

PG17:
required_pull_request_reviews:
required_approving_review_count: 2

PG16:
required_pull_request_reviews:
required_approving_review_count: 2
Expand Down
3 changes: 3 additions & 0 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,8 @@ PG14:
PG15:
- base-branch: 'PG15'

PG17:
- base-branch: 'PG17'

master:
- base-branch: 'master'
4 changes: 2 additions & 2 deletions .github/workflows/go-driver.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ name: Go Driver Tests

on:
push:
branches: [ "master" ]
branches: [ "PG17_prepare" ]

pull_request:
branches: [ "master" ]
branches: [ "PG17_prepare" ]

jobs:
build:
Expand Down
41 changes: 23 additions & 18 deletions .github/workflows/installcheck.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,57 +2,62 @@ name: Build / Regression

on:
push:
branches: [ "master" ]
branches: [ "PG17_prepare" ]
pull_request:
branches: [ "master" ]
branches: [ "PG17_prepare" ]

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Get latest commit id of PostgreSQL 16
- name: Get latest commit id of PostgreSQL 17
run: |
echo "PG_COMMIT_HASH=$(git ls-remote git://git.postgresql.org/git/postgresql.git refs/heads/REL_16_STABLE | awk '{print $1}')" >> $GITHUB_ENV
echo "PG_COMMIT_HASH=$(git ls-remote git://git.postgresql.org/git/postgresql.git refs/heads/REL_17_STABLE | awk '{print $1}')" >> $GITHUB_ENV

- name: Cache PostgreSQL 16
- name: Cache PostgreSQL 17
uses: actions/cache@v3
id: pg16cache
id: pg17cache
with:
path: ~/pg16
key: ${{ runner.os }}-v1-pg16-${{ env.PG_COMMIT_HASH }}
path: ~/pg17
key: ${{ runner.os }}-v1-pg17-${{ env.PG_COMMIT_HASH }}

- name: Install PostgreSQL 16 and some extensions
if: steps.pg16cache.outputs.cache-hit != 'true'
- name: Install dependencies
run: |
git clone --depth 1 --branch REL_16_STABLE git://git.postgresql.org/git/postgresql.git ~/pg16source
cd ~/pg16source
./configure --prefix=$HOME/pg16 CFLAGS="-std=gnu99 -ggdb -O0" --enable-cassert
sudo apt-get update
sudo apt-get install -y build-essential libreadline-dev zlib1g-dev flex bison

- name: Install PostgreSQL 17 and some extensions
if: steps.pg17cache.outputs.cache-hit != 'true'
run: |
git clone --depth 1 --branch REL_17_STABLE git://git.postgresql.org/git/postgresql.git ~/pg17source
cd ~/pg17source
./configure --prefix=$HOME/pg17 CFLAGS="-std=gnu99 -ggdb -O0" --enable-cassert
make install -j$(nproc) > /dev/null
cd contrib
cd fuzzystrmatch
make PG_CONFIG=$HOME/pg16/bin/pg_config install -j$(nproc) > /dev/null
make PG_CONFIG=$HOME/pg17/bin/pg_config install -j$(nproc) > /dev/null
cd ../pg_trgm
make PG_CONFIG=$HOME/pg16/bin/pg_config install -j$(nproc) > /dev/null
make PG_CONFIG=$HOME/pg17/bin/pg_config install -j$(nproc) > /dev/null

- uses: actions/checkout@v3

- name: Build AGE
id: build
run: |
make PG_CONFIG=$HOME/pg16/bin/pg_config install -j$(nproc)
make PG_CONFIG=$HOME/pg17/bin/pg_config install -j$(nproc)

- name: Pull and build pgvector
id: pgvector
run: |
git clone https://github.com/pgvector/pgvector.git
cd pgvector
make PG_CONFIG=$HOME/pg16/bin/pg_config install -j$(nproc) > /dev/null
make PG_CONFIG=$HOME/pg17/bin/pg_config install -j$(nproc) > /dev/null

- name: Regression tests
id: regression_tests
run: |
make PG_CONFIG=$HOME/pg16/bin/pg_config installcheck EXTRA_TESTS="pgvector fuzzystrmatch pg_trgm"
make PG_CONFIG=$HOME/pg17/bin/pg_config installcheck EXTRA_TESTS="pgvector fuzzystrmatch pg_trgm"
continue-on-error: true

- name: Dump regression test errors
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/jdbc-driver.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ name: JDBC Driver Tests

on:
push:
branches: [ "master" ]
branches: [ "PG17_prepare" ]

pull_request:
branches: [ "master" ]
branches: [ "PG17_prepare" ]

jobs:
build:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/nodejs-driver.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ name: Nodejs Driver Tests

on:
push:
branches: [ "master" ]
branches: [ "PG17_prepare" ]

pull_request:
branches: [ "master" ]
branches: [ "PG17_prepare" ]

jobs:
build:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/python-driver.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ name: Python Driver Tests

on:
push:
branches: [ "master" ]
branches: [ "PG17_prepare" ]

pull_request:
branches: [ "master" ]
branches: [ "PG17_prepare" ]

jobs:
build:
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@
<img src="https://img.shields.io/badge/Release-v1.5.0-FFA500?labelColor=gray&style=flat&link=https://github.com/apache/age/releases"/>
</a>
&nbsp;
<a href="https://www.postgresql.org/docs/16/index.html">
<img src="https://img.shields.io/badge/Version-Postgresql 16-00008B?labelColor=gray&style=flat&link=https://www.postgresql.org/docs/16/index.html"/>
<a href="https://www.postgresql.org/docs/17/index.html">
<img src="https://img.shields.io/badge/Version-Postgresql 17-00008B?labelColor=gray&style=flat&link=https://www.postgresql.org/docs/17/index.html"/>
</a>
&nbsp;
<a href="https://github.com/apache/age/issues">
Expand Down Expand Up @@ -125,7 +125,7 @@ Apache AGE is intended to be simple to install and run. It can be installed with
&nbsp;Install PostgreSQL
</h4>

You will need to install an AGE compatible version of Postgres<a>, for now AGE supports Postgres 11, 12, 13, 14, 15 & 16. Supporting the latest versions is on AGE roadmap.
You will need to install an AGE compatible version of Postgres<a>, for now AGE supports Postgres 11, 12, 13, 14, 15, 16 & 17. Supporting the latest versions is on AGE roadmap.

<h4>
&nbsp;Installation via Package Manager
Expand All @@ -143,7 +143,7 @@ sudo apt install postgresql
&nbsp;Installation From Source Code
</h4>

You can <a href="https://www.postgresql.org/ftp/source/"> download the Postgres </a> source code and install your own instance of Postgres. You can read instructions on how to install from source code for different versions on the <a href="https://www.postgresql.org/docs/16/installation.html">official Postgres Website.</a>
You can <a href="https://www.postgresql.org/ftp/source/"> download the Postgres </a> source code and install your own instance of Postgres. You can read instructions on how to install from source code for different versions on the <a href="https://www.postgresql.org/docs/17/installation.html">official Postgres Website.</a>



Expand All @@ -152,7 +152,7 @@ You can <a href="https://www.postgresql.org/ftp/source/"> download the Postgres

Clone the <a href="https://github.com/apache/age">github repository</a> or download the <a href="https://github.com/apache/age/releases">download an official release.
</a>
Run the pg_config utility and check the version of PostgreSQL. Currently, only PostgreSQL versions 11, 12, 13, 14, 15 & 16 are supported. If you have any other version of Postgres, you will need to install PostgreSQL version 11, 12, 13, 14, 15, or 16.
Run the pg_config utility and check the version of PostgreSQL. Currently, only PostgreSQL versions 11, 12, 13, 14, 15, 16 & 17 are supported. If you have any other version of Postgres, you will need to install PostgreSQL version 11, 12, 13, 14, 15, 16 & 17.
<br>

```bash
Expand Down
12 changes: 6 additions & 6 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@
#

# Build stage: Install necessary development tools for compilation and installation
FROM postgres:16 AS build
FROM postgres:17 AS build

RUN apt-get update \
&& apt-get install -y --no-install-recommends --no-install-suggests \
bison \
build-essential \
flex \
postgresql-server-dev-16
postgresql-server-dev-17

COPY . /age

Expand All @@ -34,7 +34,7 @@ RUN make && make install


# Final stage: Create a final image by copying the files created in the build stage
FROM postgres:16
FROM postgres:17

RUN apt-get update \
&& apt-get install -y --no-install-recommends --no-install-suggests \
Expand All @@ -48,9 +48,9 @@ ENV LANG=en_US.UTF-8
ENV LC_COLLATE=en_US.UTF-8
ENV LC_CTYPE=en_US.UTF-8

COPY --from=build /usr/lib/postgresql/16/lib/age.so /usr/lib/postgresql/16/lib/
COPY --from=build /usr/share/postgresql/16/extension/age--1.5.0.sql /usr/share/postgresql/16/extension/
COPY --from=build /usr/share/postgresql/16/extension/age.control /usr/share/postgresql/16/extension/
COPY --from=build /usr/lib/postgresql/17/lib/age.so /usr/lib/postgresql/17/lib/
COPY --from=build /usr/share/postgresql/17/extension/age--1.5.0.sql /usr/share/postgresql/17/extension/
COPY --from=build /usr/share/postgresql/17/extension/age.control /usr/share/postgresql/17/extension/
COPY docker/docker-entrypoint-initdb.d/00-create-extension-age.sql /docker-entrypoint-initdb.d/00-create-extension-age.sql

CMD ["postgres", "-c", "shared_preload_libraries=age"]
4 changes: 2 additions & 2 deletions docker/Dockerfile.dev
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@
#


FROM postgres:16
FROM postgres:17

RUN apt-get update
RUN apt-get install --assume-yes --no-install-recommends --no-install-suggests \
bison \
build-essential \
flex \
postgresql-server-dev-16 \
postgresql-server-dev-17 \
locales

ENV LANG=en_US.UTF-8
Expand Down
2 changes: 1 addition & 1 deletion drivers/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
version: "3.3"
services:
db:
image: apache/age:dev_snapshot_master
image: apache/age:dev_snapshot_PG17_prepare
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=agens
Expand Down