[postgis-tickets] r17977 - Fix PLPGSQL functions missing the schema qualification

Raul raul at rmr.ninja
Fri Oct 18 09:31:41 PDT 2019


Author: algunenano
Date: 2019-10-18 09:31:41 -0700 (Fri, 18 Oct 2019)
New Revision: 17977

Modified:
   branches/2.4/NEWS
   branches/2.4/postgis/geography.sql.in
   branches/2.4/postgis/postgis.sql.in
   branches/2.4/raster/rt_pg/rtpostgis.sql.in
Log:
Fix PLPGSQL functions missing the schema qualification

References #4546



Modified: branches/2.4/NEWS
===================================================================
--- branches/2.4/NEWS	2019-10-18 16:22:30 UTC (rev 17976)
+++ branches/2.4/NEWS	2019-10-18 16:31:41 UTC (rev 17977)
@@ -19,6 +19,7 @@
   - #4546, Fix ST_ConcaveHull under FDW (Raúl Marín)
   - #4547, Fix AddRasterConstraints handling of empty tables (Sandro Santilli)
   - #4549, Fix schema qualification of internal types (Raúl Marín)
+  - #4546, Fix PLPGSQL functions missing the schema qualification (Raúl Marín)
 
 
 PostGIS 2.4.8

Modified: branches/2.4/postgis/geography.sql.in
===================================================================
--- branches/2.4/postgis/geography.sql.in	2019-10-18 16:22:30 UTC (rev 17976)
+++ branches/2.4/postgis/geography.sql.in	2019-10-18 16:31:41 UTC (rev 17977)
@@ -646,7 +646,7 @@
 -- Availability: 1.5.0 - this is just a hack to prevent unknown from causing ambiguous name because of geography
 CREATE OR REPLACE FUNCTION ST_Length(text)
 	RETURNS float8 AS
-	$$ SELECT ST_Length($1::@extschema at .geometry);  $$
+	$$ SELECT @extschema at .ST_Length($1::@extschema at .geometry);  $$
 	LANGUAGE 'sql' IMMUTABLE STRICT _PARALLEL;
 
 -- Availability: 2.0.0

Modified: branches/2.4/postgis/postgis.sql.in
===================================================================
--- branches/2.4/postgis/postgis.sql.in	2019-10-18 16:22:30 UTC (rev 17976)
+++ branches/2.4/postgis/postgis.sql.in	2019-10-18 16:31:41 UTC (rev 17977)
@@ -2042,7 +2042,7 @@
         IF upper(gc_old.type) = 'GEOMETRY' THEN
         -- This is an unconstrained geometry we need to do something
         -- We need to figure out what to set the type by inspecting the data
-            EXECUTE 'SELECT @extschema at .ST_srid(' || quote_ident(gcs.attname) || ') As srid, GeometryType(' || quote_ident(gcs.attname) || ') As type, @extschema at .ST_NDims(' || quote_ident(gcs.attname) || ') As dims ' ||
+            EXECUTE 'SELECT @extschema at .ST_srid(' || quote_ident(gcs.attname) || ') As srid, @extschema at .GeometryType(' || quote_ident(gcs.attname) || ') As type, @extschema at .ST_NDims(' || quote_ident(gcs.attname) || ') As dims ' ||
                      ' FROM ONLY ' || quote_ident(gcs.nspname) || '.' || quote_ident(gcs.relname) ||
                      ' WHERE ' || quote_ident(gcs.attname) || ' IS NOT NULL LIMIT 1;'
                 INTO gc;
@@ -4874,7 +4874,7 @@
 	RETURNS geometry
 	AS '
 	SELECT CASE
-	WHEN geometrytype(@extschema at .ST_GeomFromText($1, $2)) = ''GEOMETRYCOLLECTION''
+	WHEN @extschema at .geometrytype(@extschema at .ST_GeomFromText($1, $2)) = ''GEOMETRYCOLLECTION''
 	THEN @extschema at .ST_GeomFromText($1,$2)
 	ELSE NULL END
 	'
@@ -5223,8 +5223,8 @@
 DECLARE
 	geomtext alias for $1;
 	srid alias for $2;
-	mline geometry;
-	geom geometry;
+	mline @extschema at .geometry;
+	geom @extschema at .geometry;
 BEGIN
 	mline := @extschema at .ST_MultiLineStringFromText(geomtext, srid);
 
@@ -5235,7 +5235,7 @@
 
 	geom := @extschema at .ST_BuildArea(mline);
 
-	IF GeometryType(geom) != 'POLYGON'
+	IF @extschema at .GeometryType(geom) != 'POLYGON'
 	THEN
 		RAISE EXCEPTION 'Input returns more then a single polygon, try using BdMPolyFromText instead';
 	END IF;
@@ -5265,8 +5265,8 @@
 DECLARE
 	geomtext alias for $1;
 	srid alias for $2;
-	mline geometry;
-	geom geometry;
+	mline @extschema at .geometry;
+	geom @extschema at .geometry;
 BEGIN
 	mline := @extschema at .ST_MultiLineStringFromText(geomtext, srid);
 
@@ -5743,14 +5743,14 @@
   RETURNS geometry AS
 $$
 	DECLARE
-	vexhull GEOMETRY;
-	var_resultgeom geometry;
-	var_inputgeom geometry;
-	vexring GEOMETRY;
-	cavering GEOMETRY;
-	cavept geometry[];
+	vexhull @extschema at .geometry;
+	var_resultgeom @extschema at .geometry;
+	var_inputgeom @extschema at .geometry;
+	vexring @extschema at .geometry;
+	cavering @extschema at .geometry;
+	cavept @extschema at .geometry[];
 	seglength double precision;
-	var_tempgeom geometry;
+	var_tempgeom @extschema at .geometry;
 	scale_factor float := 1;
 	i integer;
 
@@ -5815,18 +5815,18 @@
 CREATE OR REPLACE FUNCTION ST_ConcaveHull(param_geom geometry, param_pctconvex float, param_allow_holes boolean DEFAULT false) RETURNS geometry AS
 $$
 	DECLARE
-		var_convhull geometry := @extschema at .ST_ConvexHull(param_geom);
-		var_param_geom geometry := param_geom;
+		var_convhull @extschema at .geometry := @extschema at .ST_ConvexHull(param_geom);
+		var_param_geom @extschema at .geometry := param_geom;
 		var_initarea float := @extschema at .ST_Area(var_convhull);
 		var_newarea float := var_initarea;
 		var_div integer := 6; /** this is the 1/var_div is the percent increase we will allow per triangle to keep speed decent **/
-		var_tempgeom geometry;
-		var_tempgeom2 geometry;
-		var_cent geometry;
-		var_geoms geometry[4]; /** We will cut the current geometry into 4 triangular quadrants along the centroid/extent **/
-		var_enline geometry;
-		var_resultgeom geometry;
-		var_atempgeoms geometry[];
+		var_tempgeom @extschema at .geometry;
+		var_tempgeom2 @extschema at .geometry;
+		var_cent @extschema at .geometry;
+		var_geoms @extschema at .geometry[4]; /** We will cut the current geometry into 4 triangular quadrants along the centroid/extent **/
+		var_enline @extschema at .geometry;
+		var_resultgeom @extschema at .geometry;
+		var_atempgeoms @extschema at .geometry[];
 		var_buf float := 1; /**tolerance so that geometries that are right on the extent don't get accidentally clipped off **/
 	BEGIN
 		-- We start with convex hull as our base

Modified: branches/2.4/raster/rt_pg/rtpostgis.sql.in
===================================================================
--- branches/2.4/raster/rt_pg/rtpostgis.sql.in	2019-10-18 16:22:30 UTC (rev 17976)
+++ branches/2.4/raster/rt_pg/rtpostgis.sql.in	2019-10-18 16:31:41 UTC (rev 17977)
@@ -2047,7 +2047,7 @@
 	RETURNS bytea
 	AS $$
 	DECLARE
-		rast2 raster;
+		rast2 @extschema at .raster;
 		num_bands int;
 		i int;
 	BEGIN
@@ -2125,7 +2125,7 @@
 	RETURNS bytea
 	AS $$
 	DECLARE
-		rast2 raster;
+		rast2 @extschema at .raster;
 		num_bands int;
 		i int;
 		pt text;
@@ -2339,7 +2339,7 @@
 	RETURNS raster
 	AS $$
 	DECLARE
-		g geometry;
+		g @extschema at .geometry;
 		g_srid integer;
 
 		ul_x double precision;
@@ -3857,7 +3857,7 @@
 	RETURNS raster
 	AS $$
 	DECLARE
-		_rast raster;
+		_rast @extschema at .raster;
 		_nband integer;
 		_pixtype text;
 		_pixwidth double precision;
@@ -3864,7 +3864,7 @@
 		_pixheight double precision;
 		_width integer;
 		_height integer;
-		_customextent raster;
+		_customextent @extschema at .raster;
 		_extenttype text;
 	BEGIN
 		_customextent := customextent;
@@ -3914,7 +3914,7 @@
 	scale double precision DEFAULT 1.0,	interpolate_nodata boolean DEFAULT FALSE
 )
 	RETURNS raster
-	AS $$ SELECT @extschema at .ST_slope($1, $2, NULL::raster, $3, $4, $5, $6) $$
+	AS $$ SELECT @extschema at .ST_slope($1, $2, NULL::@extschema at .raster, $3, $4, $5, $6) $$
 	LANGUAGE 'sql' IMMUTABLE _PARALLEL;
 
 -----------------------------------------------------------------------
@@ -4040,12 +4040,12 @@
 	RETURNS raster
 	AS $$
 	DECLARE
-		_rast raster;
+		_rast @extschema at .raster;
 		_nband integer;
 		_pixtype text;
 		_width integer;
 		_height integer;
-		_customextent raster;
+		_customextent @extschema at .raster;
 		_extenttype text;
 	BEGIN
 		_customextent := customextent;
@@ -4092,7 +4092,7 @@
 	interpolate_nodata boolean DEFAULT FALSE
 )
 	RETURNS raster
-	AS $$ SELECT @extschema at .ST_aspect($1, $2, NULL::raster, $3, $4, $5) $$
+	AS $$ SELECT @extschema at .ST_aspect($1, $2, NULL::@extschema at .raster, $3, $4, $5) $$
 	LANGUAGE 'sql' IMMUTABLE _PARALLEL;
 
 -----------------------------------------------------------------------
@@ -4246,7 +4246,7 @@
 	RETURNS RASTER
 	AS $$
 	DECLARE
-		_rast raster;
+		_rast @extschema at .raster;
 		_nband integer;
 		_pixtype text;
 		_pixwidth double precision;
@@ -4253,7 +4253,7 @@
 		_pixheight double precision;
 		_width integer;
 		_height integer;
-		_customextent raster;
+		_customextent @extschema at .raster;
 		_extenttype text;
 	BEGIN
 		_customextent := customextent;
@@ -4306,7 +4306,7 @@
 	interpolate_nodata boolean DEFAULT FALSE
 )
 	RETURNS RASTER
-	AS $$ SELECT @extschema at .ST_hillshade($1, $2, NULL::raster, $3, $4, $5, $6, $7, $8) $$
+	AS $$ SELECT @extschema at .ST_hillshade($1, $2, NULL::@extschema at .raster, $3, $4, $5, $6, $7, $8) $$
 	LANGUAGE 'sql' IMMUTABLE _PARALLEL;
 
 -----------------------------------------------------------------------
@@ -4406,7 +4406,7 @@
 	RETURNS raster
 	AS $$
 	DECLARE
-		_rast raster;
+		_rast @extschema at .raster;
 		_nband integer;
 		_pixtype text;
 		_pixwidth double precision;
@@ -4413,7 +4413,7 @@
 		_pixheight double precision;
 		_width integer;
 		_height integer;
-		_customextent raster;
+		_customextent @extschema at .raster;
 		_extenttype text;
 	BEGIN
 		_customextent := customextent;
@@ -4458,7 +4458,7 @@
 	pixeltype text DEFAULT '32BF', interpolate_nodata boolean DEFAULT FALSE
 )
 	RETURNS RASTER
-	AS $$ SELECT @extschema at .ST_tpi($1, $2, NULL::raster, $3, $4) $$
+	AS $$ SELECT @extschema at .ST_tpi($1, $2, NULL::@extschema at .raster, $3, $4) $$
 	LANGUAGE 'sql' IMMUTABLE _PARALLEL;
 
 -----------------------------------------------------------------------
@@ -4542,7 +4542,7 @@
 	RETURNS raster
 	AS $$
 	DECLARE
-		_rast raster;
+		_rast @extschema at .raster;
 		_nband integer;
 		_pixtype text;
 		_pixwidth double precision;
@@ -4549,7 +4549,7 @@
 		_pixheight double precision;
 		_width integer;
 		_height integer;
-		_customextent raster;
+		_customextent @extschema at .raster;
 		_extenttype text;
 	BEGIN
 		_customextent := customextent;
@@ -4589,7 +4589,7 @@
 	pixeltype text DEFAULT '32BF', interpolate_nodata boolean DEFAULT FALSE
 )
 	RETURNS RASTER
-	AS $$ SELECT @extschema at .ST_roughness($1, $2, NULL::raster, $3, $4) $$
+	AS $$ SELECT @extschema at .ST_roughness($1, $2, NULL::@extschema at .raster, $3, $4) $$
 	LANGUAGE 'sql' IMMUTABLE _PARALLEL;
 
 -----------------------------------------------------------------------
@@ -4688,7 +4688,7 @@
 	RETURNS raster
 	AS $$
 	DECLARE
-		_rast raster;
+		_rast @extschema at .raster;
 		_nband integer;
 		_pixtype text;
 		_pixwidth double precision;
@@ -4695,7 +4695,7 @@
 		_pixheight double precision;
 		_width integer;
 		_height integer;
-		_customextent raster;
+		_customextent @extschema at .raster;
 		_extenttype text;
 	BEGIN
 		_customextent := customextent;
@@ -4740,7 +4740,7 @@
 	pixeltype text DEFAULT '32BF', interpolate_nodata boolean DEFAULT FALSE
 )
 	RETURNS RASTER
-	AS $$ SELECT @extschema at .ST_tri($1, $2, NULL::raster, $3, $4) $$
+	AS $$ SELECT @extschema at .ST_tri($1, $2, NULL::@extschema at .raster, $3, $4) $$
 	LANGUAGE 'sql' IMMUTABLE _PARALLEL;
 
 -----------------------------------------------------------------------
@@ -5016,7 +5016,7 @@
     $$
     DECLARE
         params text[];
-        rastout raster;
+        rastout @extschema at .raster;
     BEGIN
         IF rast IS NULL THEN
             RAISE WARNING 'Cannot set georeferencing on a null raster in st_setgeoreference.';
@@ -6477,7 +6477,7 @@
 	RETURNS raster
 	AS $$
 	DECLARE
-		rtn raster;
+		rtn @extschema at .raster;
 		_returnband text;
 		newnodata1 float8;
 		newnodata2 float8;
@@ -7404,8 +7404,8 @@
 		_tileheight integer;
 		_alignment boolean;
 
-		_covextent geometry;
-		_covrast raster;
+		_covextent @extschema at .geometry;
+		_covrast @extschema at .raster;
 	BEGIN
 		fqtn := '';
 		IF length($1) > 0 THEN
@@ -8700,7 +8700,7 @@
 		sql := 'UPDATE ' || fqtn ||
 			' SET ' || quote_ident($3) ||
 			' =  @extschema at .ST_SetSRID(' || quote_ident($3) ||
-			'::raster, ' || srid || ')';
+			'::@extschema at .raster, ' || srid || ')';
 		RAISE NOTICE 'sql = %', sql;
 		EXECUTE sql;
 
@@ -8752,7 +8752,7 @@
   ipy FLOAT8;
   tx int;
   ty int;
-  te GEOMETRY; -- tile extent
+  te @extschema at .GEOMETRY; -- tile extent
   ncols int;
   nlins int;
   srid int;
@@ -8882,7 +8882,7 @@
         rh int;                -- raster height (may change at edges)
         x int;                 -- x index of coverage
         y int;                 -- y index of coverage
-        template raster;       -- an empty template raster, where each cell
+        template @extschema at .raster;       -- an empty template raster, where each cell
                                -- represents a tile in the coverage
         minY double precision;
         maxX double precision;



More information about the postgis-tickets mailing list