[SCM] PostGIS branch stable-3.4 updated. 3.4.0-54-g6f0854100

git at osgeo.org git at osgeo.org
Thu Oct 26 05:37:57 PDT 2023


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.4 has been updated
       via  6f0854100a8c290cb26e3bb839c6f0c30742d100 (commit)
      from  98f98c4a1f526a50a2db963be38cf9d8b7ed2cf8 (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 6f0854100a8c290cb26e3bb839c6f0c30742d100
Author: Sandro Santilli <strk at kbt.io>
Date:   Thu Oct 26 10:45:56 2023 +0200

    Remove duplicated AddToSearchPath implementation
    
    Use a common one, in new libpgcommon/sql directory.
    
    References #5525 in 3.4 branch

diff --git a/.gitignore b/.gitignore
index 891b51132..a8b194cae 100644
--- a/.gitignore
+++ b/.gitignore
@@ -53,6 +53,7 @@ doc/raster_gardentest_*.sql
 doc/tiger_geocoder_comments.sql
 doc/topology_comments.sql
 extensions/Makefile
+extensions/postgis_extension_helper.sql
 extensions/address_standardizer/Makefile
 extensions/address_standardizer/mk-st-regexp
 extensions/address_standardizer/address_standardizer--*.sql
diff --git a/extensions/Makefile.in b/extensions/Makefile.in
index 56be75191..9f725a034 100644
--- a/extensions/Makefile.in
+++ b/extensions/Makefile.in
@@ -9,6 +9,13 @@
 #
 #############################################################################
 
+srcdir = @srcdir@
+SQLPP = @SQLPP@
+PERL=@PERL@
+VPATH := $(srcdir)
+
+SCRIPTS_BUILT = postgis_extension_helper.sql
+
 SUBDIRS = postgis
 SUBDIRS += postgis_tiger_geocoder
 ifeq (@RASTER@,raster)
@@ -31,12 +38,23 @@ all clean distclean install uninstall installcheck install-extension-upgrades-fr
 		$(MAKE) -C "$${DIR}" $@ || exit 1; \
 	done
 
+all: $(SCRIPTS_BUILT)
+
 distclean: distclean-local
 
 distclean-local:
 	rm -f Makefile
 
-
 check check-unit check-regress:
 	@echo "Nothing to check"
 
+# Generate any .sql file from .sql.in files by running them through the SQL pre-processor
+%.sql: %.sql.in
+	$(SQLPP) -I at top_builddir@/postgis -I at top_srcdir@ $< > $@.tmp
+	grep -v '^#' $@.tmp > $@;
+	rm -f $@.tmp
+
+clean: clean-local
+
+clean-local:
+	rm -f $(SCRIPTS_BUILT)
diff --git a/extensions/postgis_extension_helper.sql b/extensions/postgis_extension_helper.sql.in
similarity index 75%
rename from extensions/postgis_extension_helper.sql
rename to extensions/postgis_extension_helper.sql.in
index a984ecb92..632385133 100644
--- a/extensions/postgis_extension_helper.sql
+++ b/extensions/postgis_extension_helper.sql.in
@@ -102,60 +102,4 @@ $$
 LANGUAGE plpgsql VOLATILE;
 
 CREATE FUNCTION postgis_extension_AddToSearchPath(a_schema_name text)
-RETURNS text
-AS
-$$
-DECLARE
-	var_result text;
-	var_cur_search_path text;
-BEGIN
-
-	WITH settings AS (
-		SELECT pg_catalog.unnest(setconfig) config
-		FROM pg_catalog.pg_db_role_setting
-		WHERE setdatabase OPERATOR(pg_catalog.=) (
-			SELECT oid
-			FROM pg_catalog.pg_database
-			WHERE datname OPERATOR(pg_catalog.=) pg_catalog.current_database()
-		) and setrole OPERATOR(pg_catalog.=) 0
-	)
-	SELECT pg_catalog.regexp_replace(config, '^search_path=', '')
-	FROM settings WHERE config like 'search_path=%'
-	INTO var_cur_search_path;
-
-	RAISE NOTICE 'cur_search_path from pg_db_role_setting is %', var_cur_search_path;
-
-	IF var_cur_search_path IS NULL THEN
-		SELECT setting
-		INTO var_cur_search_path
-		FROM pg_catalog.pg_file_settings
-		WHERE name OPERATOR(pg_catalog.=) 'search_path' AND applied;
-
-		RAISE NOTICE 'cur_search_path from pg_file_settings is %', var_cur_search_path;
-	END IF;
-
-	IF var_cur_search_path IS NULL THEN
-		SELECT boot_val
-		INTO var_cur_search_path
-		FROM pg_catalog.pg_settings
-		WHERE name OPERATOR(pg_catalog.=) 'search_path';
-
-		RAISE NOTICE 'cur_search_path from pg_settings is %', var_cur_search_path;
-	END IF;
-
-	IF var_cur_search_path LIKE '%' OPERATOR(pg_catalog.||) pg_catalog.quote_ident(a_schema_name) OPERATOR(pg_catalog.||) '%' THEN
-		var_result := a_schema_name OPERATOR(pg_catalog.||) ' already in database search_path';
-	ELSE
-		var_cur_search_path := var_cur_search_path OPERATOR(pg_catalog.||) ', '
-                       OPERATOR(pg_catalog.||) pg_catalog.quote_ident(a_schema_name);
-		EXECUTE 'ALTER DATABASE ' OPERATOR(pg_catalog.||) pg_catalog.quote_ident(pg_catalog.current_database())
-                             OPERATOR(pg_catalog.||) ' SET search_path = ' OPERATOR(pg_catalog.||) var_cur_search_path;
-		var_result := a_schema_name OPERATOR(pg_catalog.||) ' has been added to end of database search_path ';
-	END IF;
-
-	EXECUTE 'SET search_path = ' OPERATOR(pg_catalog.||) var_cur_search_path;
-
-  RETURN var_result;
-END
-$$
-LANGUAGE 'plpgsql' VOLATILE STRICT;
+#include "libpgcommon/sql/AddToSearchPath.sql.inc"
diff --git a/topology/sql/manage/ManageHelper.sql.in b/libpgcommon/sql/AddToSearchPath.sql.inc
similarity index 72%
copy from topology/sql/manage/ManageHelper.sql.in
copy to libpgcommon/sql/AddToSearchPath.sql.inc
index eb9da2d02..2499bfa91 100644
--- a/topology/sql/manage/ManageHelper.sql.in
+++ b/libpgcommon/sql/AddToSearchPath.sql.inc
@@ -1,29 +1,18 @@
--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
---
--- PostGIS - Spatial Types for PostgreSQL
--- http://www.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.
---
--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+/*
 
---{
---  AddToSearchPath(schema_name)
---
--- Adds the specified schema to the database search path
--- if it is not already in the database search path
--- This is a helper function for upgrade/install
--- We may want to move this function as a generic helper
-CREATE OR REPLACE FUNCTION topology.AddToSearchPath(a_schema_name varchar)
+  Common body for a function to add a schema to the search path
+  Use as follows:
+
+    CREATE OR REPLACE FUNCTION someName(someARg text)
+    #include "libpgcommon/sql/AddToSearchPath.sql.inc"
+*/
 RETURNS text
 AS
-$$
+$BODY$
 DECLARE
 	var_result text;
 	var_cur_search_path text;
+	a_schema_name text := $1;
 BEGIN
 	WITH settings AS (
 		SELECT pg_catalog.unnest(setconfig) config
@@ -72,7 +61,6 @@ BEGIN
 
   RETURN var_result;
 END
-$$
+$BODY$
 LANGUAGE 'plpgsql' VOLATILE STRICT;
 
---} AddToSearchPath
diff --git a/topology/Makefile.in b/topology/Makefile.in
index 23080ba31..7fb8578af 100644
--- a/topology/Makefile.in
+++ b/topology/Makefile.in
@@ -109,7 +109,7 @@ endif
 
 # Generate any .sql file from .sql.in files by running them through the SQL pre-processor
 %.sql: %.sql.in
-	$(SQLPP) -I at top_builddir@/postgis $< > $@.tmp
+	$(SQLPP) -I at top_builddir@/postgis -I at top_srcdir@ $< > $@.tmp
 	grep -v '^#' $@.tmp | \
 	$(PERL) -lpe "s'MODULE_PATHNAME'\$(MODULEPATH)'g" > $@
 	rm -f $@.tmp
diff --git a/topology/sql/manage/ManageHelper.sql.in b/topology/sql/manage/ManageHelper.sql.in
index eb9da2d02..4c912317b 100644
--- a/topology/sql/manage/ManageHelper.sql.in
+++ b/topology/sql/manage/ManageHelper.sql.in
@@ -18,61 +18,5 @@
 -- This is a helper function for upgrade/install
 -- We may want to move this function as a generic helper
 CREATE OR REPLACE FUNCTION topology.AddToSearchPath(a_schema_name varchar)
-RETURNS text
-AS
-$$
-DECLARE
-	var_result text;
-	var_cur_search_path text;
-BEGIN
-	WITH settings AS (
-		SELECT pg_catalog.unnest(setconfig) config
-		FROM pg_catalog.pg_db_role_setting
-		WHERE setdatabase OPERATOR(pg_catalog.=) (
-			SELECT oid
-			FROM pg_catalog.pg_database
-			WHERE datname OPERATOR(pg_catalog.=) pg_catalog.current_database()
-		) and setrole OPERATOR(pg_catalog.=) 0
-	)
-	SELECT pg_catalog.regexp_replace(config, '^search_path=', '')
-	FROM settings WHERE config like 'search_path=%'
-	INTO var_cur_search_path;
-
-	RAISE NOTICE 'cur_search_path from pg_db_role_setting is %', var_cur_search_path;
-
-	IF var_cur_search_path IS NULL THEN
-		SELECT setting
-		INTO var_cur_search_path
-		FROM pg_catalog.pg_file_settings
-		WHERE name OPERATOR(pg_catalog.=) 'search_path' AND applied;
-
-		RAISE NOTICE 'cur_search_path from pg_file_settings is %', var_cur_search_path;
-	END IF;
-
-	IF var_cur_search_path IS NULL THEN
-		SELECT boot_val
-		INTO var_cur_search_path
-		FROM pg_catalog.pg_settings
-		WHERE name OPERATOR(pg_catalog.=) 'search_path';
-
-		RAISE NOTICE 'cur_search_path from pg_settings is %', var_cur_search_path;
-	END IF;
-
-	IF var_cur_search_path LIKE '%' OPERATOR(pg_catalog.||) pg_catalog.quote_ident(a_schema_name) OPERATOR(pg_catalog.||) '%' THEN
-		var_result := a_schema_name OPERATOR(pg_catalog.||) ' already in database search_path';
-	ELSE
-		var_cur_search_path := var_cur_search_path OPERATOR(pg_catalog.||) ', '
-                       OPERATOR(pg_catalog.||) pg_catalog.quote_ident(a_schema_name);
-		EXECUTE 'ALTER DATABASE ' OPERATOR(pg_catalog.||) pg_catalog.quote_ident(pg_catalog.current_database())
-                             OPERATOR(pg_catalog.||) ' SET search_path = ' OPERATOR(pg_catalog.||) var_cur_search_path;
-		var_result := a_schema_name OPERATOR(pg_catalog.||) ' has been added to end of database search_path ';
-	END IF;
-
-	EXECUTE 'SET search_path = ' OPERATOR(pg_catalog.||) var_cur_search_path;
-
-  RETURN var_result;
-END
-$$
-LANGUAGE 'plpgsql' VOLATILE STRICT;
-
+#include "libpgcommon/sql/AddToSearchPath.sql.inc"
 --} AddToSearchPath

-----------------------------------------------------------------------

Summary of changes:
 .gitignore                                         |  1 +
 extensions/Makefile.in                             | 20 +++++++-
 ..._helper.sql => postgis_extension_helper.sql.in} | 58 +---------------------
 .../sql/AddToSearchPath.sql.inc                    | 32 ++++--------
 topology/Makefile.in                               |  2 +-
 topology/sql/manage/ManageHelper.sql.in            | 58 +---------------------
 6 files changed, 33 insertions(+), 138 deletions(-)
 rename extensions/{postgis_extension_helper.sql => postgis_extension_helper.sql.in} (75%)
 copy topology/sql/manage/ManageHelper.sql.in => libpgcommon/sql/AddToSearchPath.sql.inc (72%)


hooks/post-receive
-- 
PostGIS


More information about the postgis-tickets mailing list