From 06416344a675ee286e28eda19dccd7b426e7a60e Mon Sep 17 00:00:00 2001 From: Paul Blottiere Date: Wed, 5 Aug 2026 22:50:22 +0200 Subject: [PATCH 1/6] Add PG18 and PG19 in CI --- .../workflows/noble_postgres18_postgis33.yml | 28 +++++++++++++++++++ .../workflows/noble_postgres19_postgis33.yml | 28 +++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 .github/workflows/noble_postgres18_postgis33.yml create mode 100644 .github/workflows/noble_postgres19_postgis33.yml diff --git a/.github/workflows/noble_postgres18_postgis33.yml b/.github/workflows/noble_postgres18_postgis33.yml new file mode 100644 index 00000000..d471dcf6 --- /dev/null +++ b/.github/workflows/noble_postgres18_postgis33.yml @@ -0,0 +1,28 @@ +name: "[ubuntu-24.04] PostgreSQL 17 and PostGIS 3.3" + +on: + push: + branches: + - master + + pull_request: + +jobs: + build: + name: Building and testing + runs-on: ubuntu-24.04 + steps: + - name: Check out repository code + uses: actions/checkout@v2 + - name: Install PostgreSQL and PostGIS + env: + POSTGRESQL_VERSION: 18 + POSTGIS_VERSION: 3 + run: .github/scripts/postgresql_postgis.sh + - name: Install and check PgPointCloud + run: .github/scripts/pgpointcloud.sh + - name: Error + if: ${{ failure() }} + run: cat pgsql/regression.diffs + - name: Dump and restore tests + run: .github/scripts/test_dump_restore.sh diff --git a/.github/workflows/noble_postgres19_postgis33.yml b/.github/workflows/noble_postgres19_postgis33.yml new file mode 100644 index 00000000..f138c3a3 --- /dev/null +++ b/.github/workflows/noble_postgres19_postgis33.yml @@ -0,0 +1,28 @@ +name: "[ubuntu-24.04] PostgreSQL 17 and PostGIS 3.3" + +on: + push: + branches: + - master + + pull_request: + +jobs: + build: + name: Building and testing + runs-on: ubuntu-24.04 + steps: + - name: Check out repository code + uses: actions/checkout@v2 + - name: Install PostgreSQL and PostGIS + env: + POSTGRESQL_VERSION: 19 + POSTGIS_VERSION: 3 + run: .github/scripts/postgresql_postgis.sh + - name: Install and check PgPointCloud + run: .github/scripts/pgpointcloud.sh + - name: Error + if: ${{ failure() }} + run: cat pgsql/regression.diffs + - name: Dump and restore tests + run: .github/scripts/test_dump_restore.sh From 32da2ae0f1efff3a64cf98b41c325023b6eed1b0 Mon Sep 17 00:00:00 2001 From: Blottiere Paul Date: Wed, 5 Aug 2026 23:13:48 +0200 Subject: [PATCH 2/6] Properly name new jobs --- .github/workflows/noble_postgres18_postgis33.yml | 2 +- .github/workflows/noble_postgres19_postgis33.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/noble_postgres18_postgis33.yml b/.github/workflows/noble_postgres18_postgis33.yml index d471dcf6..eb0efe2b 100644 --- a/.github/workflows/noble_postgres18_postgis33.yml +++ b/.github/workflows/noble_postgres18_postgis33.yml @@ -1,4 +1,4 @@ -name: "[ubuntu-24.04] PostgreSQL 17 and PostGIS 3.3" +name: "[ubuntu-24.04] PostgreSQL 18 and PostGIS 3.3" on: push: diff --git a/.github/workflows/noble_postgres19_postgis33.yml b/.github/workflows/noble_postgres19_postgis33.yml index f138c3a3..80614718 100644 --- a/.github/workflows/noble_postgres19_postgis33.yml +++ b/.github/workflows/noble_postgres19_postgis33.yml @@ -1,4 +1,4 @@ -name: "[ubuntu-24.04] PostgreSQL 17 and PostGIS 3.3" +name: "[ubuntu-24.04] PostgreSQL 19 and PostGIS 3.3" on: push: From bb8117856bd9b245398019f929b40ddac4ca04a1 Mon Sep 17 00:00:00 2001 From: Blottiere Paul Date: Wed, 5 Aug 2026 23:42:14 +0200 Subject: [PATCH 3/6] Update table with CI results --- .../workflows/jammy_postgres18_postgis33.yml | 28 +++++++++++++++++++ .../workflows/jammy_postgres19_postgis33.yml | 28 +++++++++++++++++++ README.md | 2 ++ doc/development.rst | 16 +++++++++++ 4 files changed, 74 insertions(+) create mode 100644 .github/workflows/jammy_postgres18_postgis33.yml create mode 100644 .github/workflows/jammy_postgres19_postgis33.yml diff --git a/.github/workflows/jammy_postgres18_postgis33.yml b/.github/workflows/jammy_postgres18_postgis33.yml new file mode 100644 index 00000000..a7e39537 --- /dev/null +++ b/.github/workflows/jammy_postgres18_postgis33.yml @@ -0,0 +1,28 @@ +name: "[ubuntu-22.04] PostgreSQL 18 and PostGIS 3.3" + +on: + push: + branches: + - master + + pull_request: + +jobs: + build: + name: Building and testing + runs-on: ubuntu-22.04 + steps: + - name: Check out repository code + uses: actions/checkout@v2 + - name: Install PostgreSQL and PostGIS + env: + POSTGRESQL_VERSION: 18 + POSTGIS_VERSION: 3 + run: .github/scripts/postgresql_postgis.sh + - name: Install and check PgPointCloud + run: .github/scripts/pgpointcloud.sh + - name: Error + if: ${{ failure() }} + run: cat pgsql/regression.diffs + - name: Dump and restore tests + run: .github/scripts/test_dump_restore.sh diff --git a/.github/workflows/jammy_postgres19_postgis33.yml b/.github/workflows/jammy_postgres19_postgis33.yml new file mode 100644 index 00000000..f5a0d4b2 --- /dev/null +++ b/.github/workflows/jammy_postgres19_postgis33.yml @@ -0,0 +1,28 @@ +name: "[ubuntu-22.04] PostgreSQL 19 and PostGIS 3.3" + +on: + push: + branches: + - master + + pull_request: + +jobs: + build: + name: Building and testing + runs-on: ubuntu-22.04 + steps: + - name: Check out repository code + uses: actions/checkout@v2 + - name: Install PostgreSQL and PostGIS + env: + POSTGRESQL_VERSION: 19 + POSTGIS_VERSION: 3 + run: .github/scripts/postgresql_postgis.sh + - name: Install and check PgPointCloud + run: .github/scripts/pgpointcloud.sh + - name: Error + if: ${{ failure() }} + run: cat pgsql/regression.diffs + - name: Dump and restore tests + run: .github/scripts/test_dump_restore.sh diff --git a/README.md b/README.md index b1dd31ae..462924f6 100644 --- a/README.md +++ b/README.md @@ -22,3 +22,5 @@ https://pgpointcloud.github.io/pointcloud/ for more information. | PostgreSQL 15 | ![](https://img.shields.io/github/actions/workflow/status/pgpointcloud/pointcloud/jammy_postgres15_postgis33.yml?branch=master&label=22.04&logo=ubuntu&style=plastic)
![](https://img.shields.io/github/actions/workflow/status/pgpointcloud/pointcloud/noble_postgres15_postgis33.yml?branch=master&label=24.04&logo=ubuntu&style=plastic) | ![](https://img.shields.io/github/actions/workflow/status/pgpointcloud/pointcloud/jammy_postgres15_postgis33.yml?branch=master&label=22.04&logo=ubuntu&style=plastic)
![](https://img.shields.io/github/actions/workflow/status/pgpointcloud/pointcloud/noble_postgres15_postgis33.yml?branch=master&label=24.04&logo=ubuntu&style=plastic) | | PostgreSQL 16 | ![](https://img.shields.io/github/actions/workflow/status/pgpointcloud/pointcloud/jammy_postgres16_postgis33.yml?branch=master&label=22.04&logo=ubuntu&style=plastic)
![](https://img.shields.io/github/actions/workflow/status/pgpointcloud/pointcloud/noble_postgres16_postgis33.yml?branch=master&label=24.04&logo=ubuntu&style=plastic) | ![](https://img.shields.io/github/actions/workflow/status/pgpointcloud/pointcloud/jammy_postgres16_postgis33.yml?branch=master&label=22.04&logo=ubuntu&style=plastic)
![](https://img.shields.io/github/actions/workflow/status/pgpointcloud/pointcloud/noble_postgres16_postgis33.yml?branch=master&label=24.04&logo=ubuntu&style=plastic) | | PostgreSQL 17 | ![](https://img.shields.io/github/actions/workflow/status/pgpointcloud/pointcloud/jammy_postgres17_postgis33.yml?branch=master&label=22.04&logo=ubuntu&style=plastic)
![](https://img.shields.io/github/actions/workflow/status/pgpointcloud/pointcloud/noble_postgres17_postgis33.yml?branch=master&label=24.04&logo=ubuntu&style=plastic) | ![](https://img.shields.io/github/actions/workflow/status/pgpointcloud/pointcloud/jammy_postgres17_postgis33.yml?branch=master&label=22.04&logo=ubuntu&style=plastic)
![](https://img.shields.io/github/actions/workflow/status/pgpointcloud/pointcloud/noble_postgres17_postgis33.yml?branch=master&label=24.04&logo=ubuntu&style=plastic) | +| PostgreSQL 18 | ![](https://img.shields.io/github/actions/workflow/status/pgpointcloud/pointcloud/jammy_postgres18_postgis33.yml?branch=master&label=22.04&logo=ubuntu&style=plastic)
![](https://img.shields.io/github/actions/workflow/status/pgpointcloud/pointcloud/noble_postgres18_postgis33.yml?branch=master&label=24.04&logo=ubuntu&style=plastic) | ![](https://img.shields.io/github/actions/workflow/status/pgpointcloud/pointcloud/jammy_postgres18_postgis33.yml?branch=master&label=22.04&logo=ubuntu&style=plastic)
![](https://img.shields.io/github/actions/workflow/status/pgpointcloud/pointcloud/noble_postgres18_postgis33.yml?branch=master&label=24.04&logo=ubuntu&style=plastic) | +| PostgreSQL 19 | ![](https://img.shields.io/github/actions/workflow/status/pgpointcloud/pointcloud/jammy_postgres19_postgis33.yml?branch=master&label=22.04&logo=ubuntu&style=plastic)
![](https://img.shields.io/github/actions/workflow/status/pgpointcloud/pointcloud/noble_postgres19_postgis33.yml?branch=master&label=24.04&logo=ubuntu&style=plastic) | ![](https://img.shields.io/github/actions/workflow/status/pgpointcloud/pointcloud/jammy_postgres19_postgis33.yml?branch=master&label=22.04&logo=ubuntu&style=plastic)
![](https://img.shields.io/github/actions/workflow/status/pgpointcloud/pointcloud/noble_postgres19_postgis33.yml?branch=master&label=24.04&logo=ubuntu&style=plastic) | diff --git a/doc/development.rst b/doc/development.rst index 98a3a942..b7551479 100644 --- a/doc/development.rst +++ b/doc/development.rst @@ -205,6 +205,14 @@ and with various PostgreSQL/PostGIS releases: | | | | | | |17_33_noble| | |17_33_noble| | +--------------------+-----------------------+-------------------------+ +| PostgreSQL 18 | |18_33_jammy| | |18_33_jammy| | +| | | | +| | |18_33_noble| | |18_33_noble| | ++--------------------+-----------------------+-------------------------+ +| PostgreSQL 19 | |19_33_jammy| | |19_33_jammy| | +| | | | +| | |19_33_noble| | |19_33_noble| | ++--------------------+-----------------------+-------------------------+ .. |13_33_jammy| image:: https://img.shields.io/github/actions/workflow/status/pgpointcloud/pointcloud/jammy_postgres13_postgis33.yml?branch=master&label=Ubuntu%2022.04&logo=ubuntu :target: https://github.com/pgpointcloud/pointcloud/actions?query=workflow%3A%22%5Bubuntu-22.04%5D+PostgreSQL+13+and+PostGIS+3.3%22 @@ -216,6 +224,10 @@ and with various PostgreSQL/PostGIS releases: .. |17_33_jammy| image:: https://img.shields.io/github/actions/workflow/status/pgpointcloud/pointcloud/jammy_postgres17_postgis33.yml?branch=master&label=Ubuntu%2022.04&logo=ubuntu :target: https://github.com/pgpointcloud/pointcloud/actions?query=workflow%3A%22%5Bubuntu-22.04%5D+PostgreSQL+17+and+PostGIS+3.3%22 +.. |18_33_jammy| image:: https://img.shields.io/github/actions/workflow/status/pgpointcloud/pointcloud/jammy_postgres18_postgis33.yml?branch=master&label=Ubuntu%2022.04&logo=ubuntu :target: https://github.com/pgpointcloud/pointcloud/actions?query=workflow%3A%22%5Bubuntu-22.04%5D+PostgreSQL+18+and+PostGIS+3.3%22 + +.. |19_33_jammy| image:: https://img.shields.io/github/actions/workflow/status/pgpointcloud/pointcloud/jammy_postgres19_postgis33.yml?branch=master&label=Ubuntu%2022.04&logo=ubuntu :target: https://github.com/pgpointcloud/pointcloud/actions?query=workflow%3A%22%5Bubuntu-22.04%5D+PostgreSQL+19+and+PostGIS+3.3%22 + .. |13_33_noble| image:: https://img.shields.io/github/actions/workflow/status/pgpointcloud/pointcloud/noble_postgres13_postgis33.yml?branch=master&label=Ubuntu%2024.04&logo=ubuntu :target: https://github.com/pgpointcloud/pointcloud/actions?query=workflow%3A%22%5Bubuntu-24.04%5D+PostgreSQL+13+and+PostGIS+3.3%22 .. |14_33_noble| image:: https://img.shields.io/github/actions/workflow/status/pgpointcloud/pointcloud/noble_postgres14_postgis33.yml?branch=master&label=Ubuntu%2024.04&logo=ubuntu :target: https://github.com/pgpointcloud/pointcloud/actions?query=workflow%3A%22%5Bubuntu-24.04%5D+PostgreSQL+14+and+PostGIS+3.3%22 @@ -226,6 +238,10 @@ and with various PostgreSQL/PostGIS releases: .. |17_33_noble| image:: https://img.shields.io/github/actions/workflow/status/pgpointcloud/pointcloud/noble_postgres17_postgis33.yml?branch=master&label=Ubuntu%2024.04&logo=ubuntu :target: https://github.com/pgpointcloud/pointcloud/actions?query=workflow%3A%22%5Bubuntu-24.04%5D+PostgreSQL+17+and+PostGIS+3.3%22 +.. |18_33_noble| image:: https://img.shields.io/github/actions/workflow/status/pgpointcloud/pointcloud/noble_postgres18_postgis33.yml?branch=master&label=Ubuntu%2024.04&logo=ubuntu :target: https://github.com/pgpointcloud/pointcloud/actions?query=workflow%3A%22%5Bubuntu-24.04%5D+PostgreSQL+18+and+PostGIS+3.3%22 + +.. |19_33_noble| image:: https://img.shields.io/github/actions/workflow/status/pgpointcloud/pointcloud/noble_postgres19_postgis33.yml?branch=master&label=Ubuntu%2024.04&logo=ubuntu :target: https://github.com/pgpointcloud/pointcloud/actions?query=workflow%3A%22%5Bubuntu-24.04%5D+PostgreSQL+19+and+PostGIS+3.3%22 + .. _`source`: https://github.com/hobu/laz-perf .. _`DockerHub`: https://hub.docker.com/_/postgres .. _`GitHub Actions`: https://github.com/pgpointcloud/pointcloud/actions From d62521cdfe2e4b29118cb0c957bb51177b05243b Mon Sep 17 00:00:00 2001 From: Blottiere Paul Date: Wed, 5 Aug 2026 23:42:25 +0200 Subject: [PATCH 4/6] Linter --- lib/cunit/cu_tester.h | 2 +- pgsql/pc_pgsql.c | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/cunit/cu_tester.h b/lib/cunit/cu_tester.h index 8f3dfb10..dc0091fd 100644 --- a/lib/cunit/cu_tester.h +++ b/lib/cunit/cu_tester.h @@ -14,7 +14,7 @@ #define PC_TEST(test_func) \ { \ -#test_func, test_func \ + #test_func, test_func \ } #define MAX_CUNIT_MSG_LENGTH 512 #define CU_ASSERT_SUCCESS(rv) CU_ASSERT((rv) == PC_SUCCESS) diff --git a/pgsql/pc_pgsql.c b/pgsql/pc_pgsql.c index 59438812..87bf5542 100644 --- a/pgsql/pc_pgsql.c +++ b/pgsql/pc_pgsql.c @@ -57,9 +57,8 @@ static Oid pointcloud_get_full_version_schema() FuncnameGetCandidates(names, -1, NIL, false, false, false, false); #else int fgc_flags; - FuncCandidateList clist = - FuncnameGetCandidates(names, -1, NIL, false, false, false, false, - &fgc_flags); + FuncCandidateList clist = FuncnameGetCandidates(names, -1, NIL, false, false, + false, false, &fgc_flags); #endif if (!clist) return InvalidOid; From a31f41f442affde7248d1f20d241aa934a1cf0f6 Mon Sep 17 00:00:00 2001 From: Blottiere Paul Date: Wed, 5 Aug 2026 23:51:39 +0200 Subject: [PATCH 5/6] Use Ubuntu 24.04 for checking code layout --- .github/workflows/code_layout.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/code_layout.yml b/.github/workflows/code_layout.yml index 5516ada8..9e170a28 100644 --- a/.github/workflows/code_layout.yml +++ b/.github/workflows/code_layout.yml @@ -9,7 +9,7 @@ on: jobs: c_code_layout: name: C linter - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Check out repository code uses: actions/checkout@v2 From d7b694e973a983eef95216fd5104a7ad7fd9547d Mon Sep 17 00:00:00 2001 From: Blottiere Paul Date: Wed, 5 Aug 2026 23:56:57 +0200 Subject: [PATCH 6/6] Add small notes about CI matrix --- README.md | 2 ++ doc/development.rst | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 462924f6..3cd65957 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,8 @@ https://pgpointcloud.github.io/pointcloud/ for more information. ## Continuous integration +The CI matrix below covers supported PostgreSQL and Ubuntu versions, with and without PostGIS. Each workflow builds the extension, runs the unit tests, generates the documentation, and performs C code formatting and SQL linting checks. + | | w/o PostGIS | PostGIS 3.3 | | ------------------ |:-----------:|:-----------:| | PostgreSQL 13 | ![](https://img.shields.io/github/actions/workflow/status/pgpointcloud/pointcloud/jammy_postgres13_postgis33.yml?branch=master&label=22.04&logo=ubuntu&style=plastic)
![](https://img.shields.io/github/actions/workflow/status/pgpointcloud/pointcloud/noble_postgres13_postgis33.yml?branch=master&label=24.04&logo=ubuntu&style=plastic) | ![](https://img.shields.io/github/actions/workflow/status/pgpointcloud/pointcloud/jammy_postgres13_postgis33.yml?branch=master&label=22.04&logo=ubuntu&style=plastic)
![](https://img.shields.io/github/actions/workflow/status/pgpointcloud/pointcloud/noble_postgres13_postgis33.yml?branch=master&label=24.04&logo=ubuntu&style=plastic) | diff --git a/doc/development.rst b/doc/development.rst index b7551479..7ca3cd19 100644 --- a/doc/development.rst +++ b/doc/development.rst @@ -179,8 +179,9 @@ is based on PostgreSQL 14, PostGIS 3 and the laz-perf support is activated. Continuous Integration ------------------------------------------------------------------------------ -pgPointcloud tests are run with `Github Actions`_ on several Ubuntu versions -and with various PostgreSQL/PostGIS releases: +pgPointcloud tests are run with `Github Actions`_. + +The CI matrix below covers supported PostgreSQL and Ubuntu versions, with and without PostGIS. Each workflow builds the extension, runs the unit tests, generates the documentation, and performs C code formatting and SQL linting checks. +--------------------+-----------------------+-------------------------+ | | w/o PostGIS | PostGIS 3.3 |