[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