[SCM] PostGIS branch stable-3.2 updated. 3.2.10-3-g32b6f6810
git at osgeo.org
git at osgeo.org
Fri May 29 10:59:15 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.2 has been updated
via 32b6f6810ab57fa27bbe3e3f9d3bcb1938e29b4d (commit)
via 7f03c31255be3068ed90a720a983d554bb95f9d2 (commit)
from a1619cc86506cbfc91695db0e80303603b0cdd9a (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 32b6f6810ab57fa27bbe3e3f9d3bcb1938e29b4d
Author: Paul Ramsey <pramsey at cleverelephant.ca>
Date: Fri May 29 10:59:04 2026 -0700
News item for #5988
diff --git a/NEWS b/NEWS
index e45159ecb..91cb13bd6 100644
--- a/NEWS
+++ b/NEWS
@@ -3,7 +3,7 @@ PostGIS 3.2.11
* Bug Fixes *
- -
+ - #5899, pg_upgrade issue for non-standard geography SRID (Paul Ramsey)
PostGIS 3.2.10
commit 7f03c31255be3068ed90a720a983d554bb95f9d2
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 8fff33625..dafd65993 100644
--- a/libpgcommon/lwgeom_transform.c
+++ b/libpgcommon/lwgeom_transform.c
@@ -189,6 +189,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 | 2 +-
libpgcommon/lwgeom_transform.c | 34 ++++++++++++++++++++++++++++++++++
2 files changed, 35 insertions(+), 1 deletion(-)
hooks/post-receive
--
PostGIS
More information about the postgis-tickets
mailing list