[SCM] PostGIS branch stable-3.6 updated. 3.6.3-10-g19df3b29a
git at osgeo.org
git at osgeo.org
Fri May 29 10:59:26 PDT 2026
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "PostGIS".
The branch, stable-3.6 has been updated
via 19df3b29a1c5578dcbb8ff15b4c206aada066c16 (commit)
via 6e2b6d2bf9d3f0db0902400ef7cdea34223bbf75 (commit)
from 68697c9ddb8164a2c15947e66319eb4811bcc3b2 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 19df3b29a1c5578dcbb8ff15b4c206aada066c16
Author: Paul Ramsey <pramsey at cleverelephant.ca>
Date: Fri May 29 10:58:58 2026 -0700
News item for #5988
diff --git a/NEWS b/NEWS
index b1c485ab8..06510b3a9 100644
--- a/NEWS
+++ b/NEWS
@@ -7,6 +7,7 @@ PostGIS 3.6.4
with geometry implementation
- GH-862, use SFCGAL undeprecated function sfcgal_geometry_tessellate() (Jean Felder)
- Flatgeobuf schema mismatch vulnerability (NeuroWinter)
+- #5899, pg_upgrade issue for non-standard geography SRID (Paul Ramsey)
PostGIS 3.6.3
commit 6e2b6d2bf9d3f0db0902400ef7cdea34223bbf75
Author: Paul Ramsey <pramsey at cleverelephant.ca>
Date: Fri May 29 16:21:02 2026 +0000
pg_upgrade issue for non-standard geography SRID
When doing pg_upgrade on a table with Geography(type, srid)
column, where the SRID is specified, but not 4326, the SRID
lookup code will fail during schema transfer as the
spatial_ref_sys table may be missing and unable to lookup
the SRID number. This "fix" leans on the fact that most
SRID numbers in PostGIS are already EPSG numbers so the
lookup can be skipped most times.
diff --git a/libpgcommon/lwgeom_transform.c b/libpgcommon/lwgeom_transform.c
index d53bd071d..a092fc480 100644
--- a/libpgcommon/lwgeom_transform.c
+++ b/libpgcommon/lwgeom_transform.c
@@ -176,6 +176,40 @@ GetProjStringsSPI(int32_t srid)
elog(ERROR, "Could not connect to database using SPI");
}
+ /*
+ * During pg_upgrade, geography typmod is parsed before spatial_ref_sys
+ * exists or is populated. Check both conditions via catalog before
+ * querying the table, to avoid a transaction-aborting error.
+ * If either check fails, return "EPSG:<srid>" directly so PROJ can
+ * resolve standard codes from its own database.
+ */
+ Oid nsp_oid = POSTGIS_CONSTANTS ? POSTGIS_CONSTANTS->install_nsp_oid : InvalidOid;
+ snprintf(proj_spi_buffer, spibufferlen,
+ "SELECT 1 FROM pg_class "
+ "WHERE relname = 'spatial_ref_sys' AND relnamespace = %u",
+ nsp_oid);
+ spi_result = SPI_execute(proj_spi_buffer, true, 1);
+ bool srs_exists = (spi_result == SPI_OK_SELECT && SPI_processed > 0);
+
+ bool srs_populated = false;
+ if (srs_exists)
+ {
+ snprintf(proj_spi_buffer, spibufferlen,
+ "SELECT 1 FROM %s LIMIT 1",
+ postgis_spatial_ref_sys());
+ spi_result = SPI_execute(proj_spi_buffer, true, 1);
+ srs_populated = (spi_result == SPI_OK_SELECT && SPI_processed > 0);
+ }
+
+ if (!srs_exists || !srs_populated)
+ {
+ char tmp[maxprojlen];
+ snprintf(tmp, maxprojlen, "EPSG:%d", srid);
+ strs.authtext = SPI_pstrdup(tmp);
+ SPI_finish();
+ return strs;
+ }
+
static char *proj_str_tmpl =
"SELECT proj4text, auth_name, auth_srid, srtext "
"FROM %s "
-----------------------------------------------------------------------
Summary of changes:
NEWS | 1 +
libpgcommon/lwgeom_transform.c | 34 ++++++++++++++++++++++++++++++++++
2 files changed, 35 insertions(+)
hooks/post-receive
--
PostGIS
More information about the postgis-tickets
mailing list