[SCM] PostGIS branch stable-3.5 updated. 3.5.4-22-gde3d20d6a
git at osgeo.org
git at osgeo.org
Sun Feb 8 00:46:27 PST 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.5 has been updated
via de3d20d6abd354189fca0f24e7b63dde5107cc90 (commit)
via 3336330476934147372f2487256dafd369a01178 (commit)
from 50e75f9684758b1e1b9d8810395b1cbef3d18d60 (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 de3d20d6abd354189fca0f24e7b63dde5107cc90
Author: Regina Obe <lr at pcorp.us>
Date: Sun Feb 8 03:46:21 2026 -0500
Prep for PostGIS 3.5.5 release
diff --git a/NEWS b/NEWS
index e2ad1cad2..e4d319435 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,5 @@
-PostGIS 3.5.5dev
-xxxx/xx/xx
+PostGIS 3.5.5
+2026/02/08
To take advantage of all postgis_sfcgal extension features SFCGAL 1.5+ is needed.
PostgreSQL 12-18 required. GEOS 3.8+ required. Proj 6.1+ required.
@@ -14,6 +14,7 @@ PostgreSQL 12-18 required. GEOS 3.8+ required. Proj 6.1+ required.
- GH-841, small memory leak in address_standardizer (Maxim Korotkov)
- #5998, [tiger_geocoder] [security] CVE-2022-2625, make sure tables requires
by extension are owned by extension
+ - #5853, Issue with topology and tiger geocoder upgrade scripts (Regina Obe, Spencer Bryson)
PostGIS 3.5.4
2025/10/16
diff --git a/README.postgis b/README.postgis
index a474b20f8..671780f04 100644
--- a/README.postgis
+++ b/README.postgis
@@ -1,8 +1,8 @@
PostGIS - Geographic Information Systems Extensions to PostgreSQL
=================================================================
-:Version: 3.5.4
-:Date: 2025-10-16
+:Version: 3.5.5
+:Date: 2026-02-08
:Website: https://postgis.net
This distribution contains a module which implements GIS simple features, ties
diff --git a/Version.config b/Version.config
index 84305269c..0e17c2ec3 100644
--- a/Version.config
+++ b/Version.config
@@ -5,7 +5,7 @@
POSTGIS_MAJOR_VERSION=3
POSTGIS_MINOR_VERSION=5
-POSTGIS_MICRO_VERSION=5dev
+POSTGIS_MICRO_VERSION=5
# Liblwgeom interface versioning, reset to 0:0:0 (cur:age:rev)
# when changing POSTGIS_MINOR_VERSION
diff --git a/doc/release_notes.xml b/doc/release_notes.xml
index f9db79bc1..0bec15cbf 100644
--- a/doc/release_notes.xml
+++ b/doc/release_notes.xml
@@ -3,6 +3,24 @@
<title>Appendix</title>
<subtitle>Release Notes</subtitle>
+ <section>
+ <title>PostGIS 3.5.5</title>
+ <para>2026/02/08</para>
+ <para>This version requires PostgreSQL 12-18, GEOS 3.8 or higher, and Proj 6.1+. To take advantage of all features, GEOS 3.12+ is needed. To take advantage of all SFCGAL features, SFCGAL 1.5.0+ is needed.</para>
+ <simplesect>
+ <title>Bug Fixes</title>
+ <para><ulink url="https://trac.osgeo.org/postgis/ticket/5959">5959</ulink>, #5984, Prevent histogram target overflow when analysing massive tables (Darafei Praliaskouski)</para>
+ <para><ulink url="https://trac.osgeo.org/postgis/ticket/6020">6020</ulink>, schema qualify call in ST_MPointFromText (Paul Ramsey)</para>
+ <para><ulink url="https://trac.osgeo.org/postgis/ticket/6023">6023</ulink>, Fix robustness issue in ptarray_contains_point (Sandro Santilli)</para>
+ <para><ulink url="https://trac.osgeo.org/postgis/ticket/6027">6027</ulink>, Fix RemoveUnusedPrimitives without topology in search_path (Sandro Santilli)</para>
+ <para><ulink url="https://trac.osgeo.org/postgis/ticket/6028">6028</ulink>, crash indexing malformed empty polygon (Paul Ramsey)</para>
+ <para><ulink url="https://github.com/postgis/postgis/pull/841">GH-841</ulink>, small memory leak in address_standardizer (Maxim Korotkov)</para>
+ <para><ulink url="https://trac.osgeo.org/postgis/ticket/5998">5998</ulink>, [tiger_geocoder] [security] CVE-2022-2625, make sure tables requires
+ by extension are owned by extension</para>
+ <para><ulink url="https://trac.osgeo.org/postgis/ticket/5853">5853</ulink>, Issue with topology and tiger geocoder upgrade scripts (Regina Obe, Spencer Bryson)</para>
+ </simplesect>
+ </section>
+
<section>
<title>PostGIS 3.5.4</title>
<para>2025/10/16</para>
@@ -161,7 +179,7 @@
(Jan Tojnar)</para>
<para><link xlink:href="https://trac.osgeo.org/postgis/ticket/5496">#5496</link>, ST_Clip all variants replaced, will require
rebuilding of materialized views that use them (funding from The National Institute for Agricultural
- and Food Research and Technology (INIA-CSIC)),
+ and Food Research and Technology (INIA-CSIC)),
Regina Obe</para>
<para><link xlink:href="https://trac.osgeo.org/postgis/ticket/5659">#5659</link>, ST_DFullyWithin behaviour has changed to
be ST_Contains(ST_Buffer(A, R), B) (Paul Ramsey)</para>
diff --git a/extensions/upgradeable_versions.mk b/extensions/upgradeable_versions.mk
index 0a5f85aa9..ba63176b3 100644
--- a/extensions/upgradeable_versions.mk
+++ b/extensions/upgradeable_versions.mk
@@ -74,7 +74,7 @@ UPGRADEABLE_VERSIONS = \
3.0.12 \
3.1.0 \
3.1.1 \
- 3.1.2 \
+ 3.1.2 \
3.1.3 \
3.1.4 \
3.1.5 \
@@ -86,6 +86,7 @@ UPGRADEABLE_VERSIONS = \
3.1.10 \
3.1.11 \
3.1.12 \
+ 3.1.13 \
3.2.0 \
3.2.1 \
3.2.2 \
@@ -104,11 +105,13 @@ UPGRADEABLE_VERSIONS = \
3.3.6 \
3.3.7 \
3.3.8 \
+ 3.3.9 \
3.4.0 \
3.4.1 \
3.4.2 \
3.4.3 \
3.4.4 \
+ 3.4.4 \
3.5.0 \
3.5.1 \
3.5.2 \
commit 3336330476934147372f2487256dafd369a01178
Author: Regina Obe <lr at pcorp.us>
Date: Sun Feb 8 03:10:58 2026 -0500
Remove postgis_extension_remove_objects
References #5853 for PostGIS 3.5.5
diff --git a/extensions/postgis_extension_helper.sql.in b/extensions/postgis_extension_helper.sql.in
index d5f473d16..0a80726ad 100644
--- a/extensions/postgis_extension_helper.sql.in
+++ b/extensions/postgis_extension_helper.sql.in
@@ -14,72 +14,6 @@
-- This is a suite of SQL helper functions for use during a PostGIS extension install/upgrade
-- The functions get uninstalled after the extension install/upgrade process
---------------------------
--- postgis_extension_remove_objects: This function removes objects of a particular class from an extension
--- this is needed because there is no ALTER EXTENSION DROP FUNCTION/AGGREGATE command
--- and we can't CREATE OR REPLACE functions whose signatures have changed and we can drop them if they are part of an extension
--- So we use this to remove it from extension first before we drop
-CREATE FUNCTION postgis_extension_remove_objects(param_extension text, param_type text)
- RETURNS boolean AS
-$$
-DECLARE
- var_sql text := '';
- var_r record;
- var_result boolean := false;
- var_class text := '';
- var_is_aggregate boolean := false;
- var_sql_list text := '';
- var_pgsql_version integer := pg_catalog.current_setting('server_version_num');
-BEGIN
- var_class := CASE WHEN pg_catalog.lower(param_type) OPERATOR(pg_catalog.=)'function' OR pg_catalog.lower(param_type) OPERATOR(pg_catalog.=) 'aggregate' THEN 'pg_catalog.pg_proc' ELSE '' END;
- var_is_aggregate := CASE WHEN pg_catalog.lower(param_type) OPERATOR(pg_catalog.=) 'aggregate' THEN true ELSE false END;
-
- IF var_pgsql_version OPERATOR(pg_catalog.<) 110000 THEN
- var_sql_list := $sql$SELECT 'ALTER EXTENSION ' OPERATOR(pg_catalog.||) e.extname OPERATOR(pg_catalog.||) ' DROP ' OPERATOR(pg_catalog.||) $3 OPERATOR(pg_catalog.||) ' ' OPERATOR(pg_catalog.||) COALESCE(proc.proname OPERATOR(pg_catalog.||) '(' OPERATOR(pg_catalog.||) oidvectortypes(proc.proargtypes) OPERATOR(pg_catalog.||) ')' ,typ.typname, cd.relname, op.oprname,
- cs.typname OPERATOR(pg_catalog.||) ' AS ' OPERATOR(pg_catalog.||) ct.typname OPERATOR(pg_catalog.||) ') ', opcname, opfname) OPERATOR(pg_catalog.||) ';' AS remove_command
- FROM pg_catalog.pg_depend As d INNER JOIN pg_catalog.pg_extension As e
- ON d.refobjid OPERATOR(pg_catalog.=) e.oid INNER JOIN pg_catalog.pg_class As c ON
- c.oid OPERATOR(pg_catalog.=) d.classid
- LEFT JOIN pg_catalog.pg_proc AS proc ON proc.oid OPERATOR(pg_catalog.=) d.objid
- LEFT JOIN pg_catalog.pg_type AS typ ON typ.oid OPERATOR(pg_catalog.=) d.objid
- LEFT JOIN pg_catalog.pg_class As cd ON cd.oid OPERATOR(pg_catalog.=) d.objid
- LEFT JOIN pg_operator As op ON op.oid OPERATOR(pg_catalog.=) d.objid
- LEFT JOIN pg_catalog.pg_cast AS ca ON ca.oid OPERATOR(pg_catalog.=) d.objid
- LEFT JOIN pg_catalog.pg_type AS cs ON ca.castsource OPERATOR(pg_catalog.=) cs.oid
- LEFT JOIN pg_catalog.pg_type AS ct ON ca.casttarget OPERATOR(pg_catalog.=) ct.oid
- LEFT JOIN pg_opclass As oc ON oc.oid OPERATOR(pg_catalog.=) d.objid
- LEFT JOIN pg_opfamily As ofa ON ofa.oid OPERATOR(pg_catalog.=) d.objid
- WHERE d.deptype OPERATOR(pg_catalog.=) 'e' and e.extname OPERATOR(pg_catalog.=) $1 and c.relname OPERATOR(pg_catalog.=) $2 AND COALESCE(proc.proisagg, false) OPERATOR(pg_catalog.=) $4;$sql$;
- ELSE -- for PostgreSQL 11 and above, they removed proc.proisagg among others and replaced with some func type thing
- var_sql_list := $sql$SELECT 'ALTER EXTENSION ' OPERATOR(pg_catalog.||) e.extname OPERATOR(pg_catalog.||) ' DROP ' OPERATOR(pg_catalog.||) $3 OPERATOR(pg_catalog.||) ' ' OPERATOR(pg_catalog.||) COALESCE(proc.proname OPERATOR(pg_catalog.||) '(' OPERATOR(pg_catalog.||) oidvectortypes(proc.proargtypes) OPERATOR(pg_catalog.||) ')' ,typ.typname, cd.relname, op.oprname,
- cs.typname OPERATOR(pg_catalog.||) ' AS ' OPERATOR(pg_catalog.||) ct.typname OPERATOR(pg_catalog.||) ') ', opcname, opfname) OPERATOR(pg_catalog.||) ';' AS remove_command
- FROM pg_catalog.pg_depend As d INNER JOIN pg_catalog.pg_extension As e
- ON d.refobjid OPERATOR(pg_catalog.=) e.oid INNER JOIN pg_catalog.pg_class As c ON
- c.oid OPERATOR(pg_catalog.=) d.classid
- LEFT JOIN pg_catalog.pg_proc AS proc ON proc.oid OPERATOR(pg_catalog.=) d.objid
- LEFT JOIN pg_catalog.pg_type AS typ ON typ.oid OPERATOR(pg_catalog.=) d.objid
- LEFT JOIN pg_catalog.pg_class As cd ON cd.oid OPERATOR(pg_catalog.=) d.objid
- LEFT JOIN pg_operator As op ON op.oid OPERATOR(pg_catalog.=) d.objid
- LEFT JOIN pg_catalog.pg_cast AS ca ON ca.oid OPERATOR(pg_catalog.=) d.objid
- LEFT JOIN pg_catalog.pg_type AS cs ON ca.castsource OPERATOR(pg_catalog.=) cs.oid
- LEFT JOIN pg_catalog.pg_type AS ct ON ca.casttarget OPERATOR(pg_catalog.=) ct.oid
- LEFT JOIN pg_opclass As oc ON oc.oid OPERATOR(pg_catalog.=) d.objid
- LEFT JOIN pg_opfamily As ofa ON ofa.oid OPERATOR(pg_catalog.=) d.objid
- WHERE d.deptype OPERATOR(pg_catalog.=) 'e' and e.extname OPERATOR(pg_catalog.=) $1 and c.relname OPERATOR(pg_catalog.=) $2 AND (proc.prokind OPERATOR(pg_catalog.=) 'a') OPERATOR(pg_catalog.=) $4;$sql$;
- END IF;
-
- FOR var_r IN EXECUTE var_sql_list USING param_extension, var_class, param_type, var_is_aggregate
- LOOP
- var_sql := var_sql OPERATOR(pg_catalog.||) var_r.remove_command OPERATOR(pg_catalog.||) ';';
- END LOOP;
- IF var_sql > '' THEN
- EXECUTE var_sql;
- var_result := true;
- END IF;
-
- RETURN var_result;
-END;
-$$
-LANGUAGE plpgsql VOLATILE;
CREATE FUNCTION postgis_extension_drop_if_exists(param_extension text, param_statement text)
RETURNS boolean AS
diff --git a/extensions/postgis_extension_helper_uninstall.sql b/extensions/postgis_extension_helper_uninstall.sql
index 2fb1d1756..756dc80f8 100644
--- a/extensions/postgis_extension_helper_uninstall.sql
+++ b/extensions/postgis_extension_helper_uninstall.sql
@@ -13,7 +13,6 @@
--
-- This drops extension helper functions
-- and should be called at the end of the extension upgrade file
-DROP FUNCTION postgis_extension_remove_objects(text, text);
DROP FUNCTION postgis_extension_drop_if_exists(text, text);
DROP FUNCTION IF EXISTS postgis_extension_AddToSearchPath(varchar);
DROP FUNCTION IF EXISTS postgis_extension_AddToSearchPath(text);
diff --git a/extensions/postgis_tiger_geocoder/Makefile.in b/extensions/postgis_tiger_geocoder/Makefile.in
index 37193e0ae..5ce60da42 100644
--- a/extensions/postgis_tiger_geocoder/Makefile.in
+++ b/extensions/postgis_tiger_geocoder/Makefile.in
@@ -85,7 +85,7 @@ sql/$(EXTENSION).sql: sql/$(EXTENSION)_pre.sql ../../utils/create_or_replace_to_
| $(PERL) @top_srcdir@/utils/create_or_replace_to_create.pl sql/$(EXTENSION)_pre.sql \
> $@
-sql/$(EXTENSION)--ANY--$(EXTVERSION).sql: ../postgis_extension_helper.sql sql_bits/remove_from_extension.sql.in sql/tiger_geocoder_upgrade_minor.sql sql_bits/mark_editable_objects.sql.in | sql
+sql/$(EXTENSION)--ANY--$(EXTVERSION).sql: ../postgis_extension_helper.sql sql/tiger_geocoder_upgrade_minor.sql sql_bits/mark_editable_objects.sql.in | sql
cat $^ > $@
echo "SELECT postgis_extension_drop_if_exists('${EXTENSION}', 'DROP SCHEMA tiger_data');" >> $@
cat @srcdir@/../postgis_extension_helper_uninstall.sql >> $@
diff --git a/extensions/postgis_tiger_geocoder/sql_bits/remove_from_extension.sql.in b/extensions/postgis_tiger_geocoder/sql_bits/remove_from_extension.sql.in
deleted file mode 100644
index c0fc12a3e..000000000
--- a/extensions/postgis_tiger_geocoder/sql_bits/remove_from_extension.sql.in
+++ /dev/null
@@ -1,19 +0,0 @@
--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
---
-----
--- PostGIS - Spatial Types for PostgreSQL
--- http://postgis.net
---
--- Copyright (C) 2011 Regina Obe <lr at pcorp.us>
---
--- This is free software; you can redistribute and/or modify it under
--- the terms of the GNU General Public Licence. See the COPYING file.
---
--- Author: Regina Obe <lr at pcorp.us>
---
--- This drops extension helper functions
--- and should be called at the end of the extension upgrade file
--- removes all postgis_topology functions from postgis_topology extension since they will be read
--- during upgrade
-SELECT postgis_extension_remove_objects('postgis_tiger_geocoder', 'FUNCTION');
-SELECT postgis_extension_remove_objects('postgis_tiger_geocoder', 'AGGREGATE');
diff --git a/extensions/postgis_topology/Makefile.in b/extensions/postgis_topology/Makefile.in
index 852ca1d12..0747d28fb 100644
--- a/extensions/postgis_topology/Makefile.in
+++ b/extensions/postgis_topology/Makefile.in
@@ -42,7 +42,6 @@ DATA_built = \
EXTENSION_UPGRADE_SCRIPTS = \
extlock.sql \
../postgis_extension_helper.sql \
- sql_bits/remove_from_extension.sql.in \
sql/topology_upgrade.sql \
sql_bits/mark_editable_objects.sql.in \
../postgis_extension_helper_uninstall.sql
diff --git a/extensions/postgis_topology/sql_bits/remove_from_extension.sql.in b/extensions/postgis_topology/sql_bits/remove_from_extension.sql.in
deleted file mode 100644
index cc4cca819..000000000
--- a/extensions/postgis_topology/sql_bits/remove_from_extension.sql.in
+++ /dev/null
@@ -1,19 +0,0 @@
--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
---
-----
--- PostGIS - Spatial Types for PostgreSQL
--- http://postgis.net
---
--- Copyright (C) 2011 Regina Obe <lr at pcorp.us>
---
--- This is free software; you can redistribute and/or modify it under
--- the terms of the GNU General Public Licence. See the COPYING file.
---
--- Author: Regina Obe <lr at pcorp.us>
---
--- This drops extension helper functions
--- and should be called at the end of the extension upgrade file
--- removes all postgis_topology functions from postgis_topology extension since they will be read
--- during upgrade
-SELECT postgis_extension_remove_objects('postgis_topology', 'FUNCTION');
-SELECT postgis_extension_remove_objects('postgis_topology', 'AGGREGATE');
-----------------------------------------------------------------------
Summary of changes:
NEWS | 5 +-
README.postgis | 4 +-
Version.config | 2 +-
doc/release_notes.xml | 20 ++++++-
extensions/postgis_extension_helper.sql.in | 66 ----------------------
extensions/postgis_extension_helper_uninstall.sql | 1 -
extensions/postgis_tiger_geocoder/Makefile.in | 2 +-
.../sql_bits/remove_from_extension.sql.in | 19 -------
extensions/postgis_topology/Makefile.in | 1 -
.../sql_bits/remove_from_extension.sql.in | 19 -------
extensions/upgradeable_versions.mk | 5 +-
11 files changed, 30 insertions(+), 114 deletions(-)
delete mode 100644 extensions/postgis_tiger_geocoder/sql_bits/remove_from_extension.sql.in
delete mode 100644 extensions/postgis_topology/sql_bits/remove_from_extension.sql.in
hooks/post-receive
--
PostGIS
More information about the postgis-tickets
mailing list