From: Raúl Marín Rodríguez Date: Fri, 18 Oct 2019 16:31:41 +0000 (+0000) Subject: Fix PLPGSQL functions missing the schema qualification X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=refs%2Fheads%2Fsvn-2.4;p=postgis Fix PLPGSQL functions missing the schema qualification References #4546 git-svn-id: http://svn.osgeo.org/postgis/branches/2.4@17977 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/NEWS b/NEWS index 575ecb9ff..90be976c7 100644 --- a/NEWS +++ b/NEWS @@ -19,6 +19,7 @@ XXXX/XX/XX - #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 diff --git a/postgis/geography.sql.in b/postgis/geography.sql.in index 06183716c..ce51b9a31 100644 --- a/postgis/geography.sql.in +++ b/postgis/geography.sql.in @@ -646,7 +646,7 @@ CREATE OR REPLACE FUNCTION ST_Length(geog geography, use_spheroid boolean DEFAUL -- 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@.geometry); $$ + $$ SELECT @extschema@.ST_Length($1::@extschema@.geometry); $$ LANGUAGE 'sql' IMMUTABLE STRICT _PARALLEL; -- Availability: 2.0.0 diff --git a/postgis/postgis.sql.in b/postgis/postgis.sql.in index 80a93b56d..9fd768b67 100644 --- a/postgis/postgis.sql.in +++ b/postgis/postgis.sql.in @@ -2042,7 +2042,7 @@ BEGIN 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@.ST_srid(' || quote_ident(gcs.attname) || ') As srid, GeometryType(' || quote_ident(gcs.attname) || ') As type, @extschema@.ST_NDims(' || quote_ident(gcs.attname) || ') As dims ' || + EXECUTE 'SELECT @extschema@.ST_srid(' || quote_ident(gcs.attname) || ') As srid, @extschema@.GeometryType(' || quote_ident(gcs.attname) || ') As type, @extschema@.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 @@ CREATE OR REPLACE FUNCTION ST_GeomCollFromText(text, int4) RETURNS geometry AS ' SELECT CASE - WHEN geometrytype(@extschema@.ST_GeomFromText($1, $2)) = ''GEOMETRYCOLLECTION'' + WHEN @extschema@.geometrytype(@extschema@.ST_GeomFromText($1, $2)) = ''GEOMETRYCOLLECTION'' THEN @extschema@.ST_GeomFromText($1,$2) ELSE NULL END ' @@ -5223,8 +5223,8 @@ AS $$ DECLARE geomtext alias for $1; srid alias for $2; - mline geometry; - geom geometry; + mline @extschema@.geometry; + geom @extschema@.geometry; BEGIN mline := @extschema@.ST_MultiLineStringFromText(geomtext, srid); @@ -5235,7 +5235,7 @@ BEGIN geom := @extschema@.ST_BuildArea(mline); - IF GeometryType(geom) != 'POLYGON' + IF @extschema@.GeometryType(geom) != 'POLYGON' THEN RAISE EXCEPTION 'Input returns more then a single polygon, try using BdMPolyFromText instead'; END IF; @@ -5265,8 +5265,8 @@ AS $$ DECLARE geomtext alias for $1; srid alias for $2; - mline geometry; - geom geometry; + mline @extschema@.geometry; + geom @extschema@.geometry; BEGIN mline := @extschema@.ST_MultiLineStringFromText(geomtext, srid); @@ -5743,14 +5743,14 @@ CREATE OR REPLACE FUNCTION _st_concavehull(param_inputgeom geometry) RETURNS geometry AS $$ DECLARE - vexhull GEOMETRY; - var_resultgeom geometry; - var_inputgeom geometry; - vexring GEOMETRY; - cavering GEOMETRY; - cavept geometry[]; + vexhull @extschema@.geometry; + var_resultgeom @extschema@.geometry; + var_inputgeom @extschema@.geometry; + vexring @extschema@.geometry; + cavering @extschema@.geometry; + cavept @extschema@.geometry[]; seglength double precision; - var_tempgeom geometry; + var_tempgeom @extschema@.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@.ST_ConvexHull(param_geom); - var_param_geom geometry := param_geom; + var_convhull @extschema@.geometry := @extschema@.ST_ConvexHull(param_geom); + var_param_geom @extschema@.geometry := param_geom; var_initarea float := @extschema@.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@.geometry; + var_tempgeom2 @extschema@.geometry; + var_cent @extschema@.geometry; + var_geoms @extschema@.geometry[4]; /** We will cut the current geometry into 4 triangular quadrants along the centroid/extent **/ + var_enline @extschema@.geometry; + var_resultgeom @extschema@.geometry; + var_atempgeoms @extschema@.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 diff --git a/raster/rt_pg/rtpostgis.sql.in b/raster/rt_pg/rtpostgis.sql.in index f4f610023..4187f7b90 100644 --- a/raster/rt_pg/rtpostgis.sql.in +++ b/raster/rt_pg/rtpostgis.sql.in @@ -2047,7 +2047,7 @@ CREATE OR REPLACE FUNCTION st_asjpeg(rast raster, options text[] DEFAULT NULL) RETURNS bytea AS $$ DECLARE - rast2 raster; + rast2 @extschema@.raster; num_bands int; i int; BEGIN @@ -2125,7 +2125,7 @@ CREATE OR REPLACE FUNCTION st_aspng(rast raster, options text[] DEFAULT NULL) RETURNS bytea AS $$ DECLARE - rast2 raster; + rast2 @extschema@.raster; num_bands int; i int; pt text; @@ -2339,7 +2339,7 @@ CREATE OR REPLACE FUNCTION st_asraster( RETURNS raster AS $$ DECLARE - g geometry; + g @extschema@.geometry; g_srid integer; ul_x double precision; @@ -3857,14 +3857,14 @@ CREATE OR REPLACE FUNCTION st_slope( RETURNS raster AS $$ DECLARE - _rast raster; + _rast @extschema@.raster; _nband integer; _pixtype text; _pixwidth double precision; _pixheight double precision; _width integer; _height integer; - _customextent raster; + _customextent @extschema@.raster; _extenttype text; BEGIN _customextent := customextent; @@ -3914,7 +3914,7 @@ CREATE OR REPLACE FUNCTION st_slope( scale double precision DEFAULT 1.0, interpolate_nodata boolean DEFAULT FALSE ) RETURNS raster - AS $$ SELECT @extschema@.ST_slope($1, $2, NULL::raster, $3, $4, $5, $6) $$ + AS $$ SELECT @extschema@.ST_slope($1, $2, NULL::@extschema@.raster, $3, $4, $5, $6) $$ LANGUAGE 'sql' IMMUTABLE _PARALLEL; ----------------------------------------------------------------------- @@ -4040,12 +4040,12 @@ CREATE OR REPLACE FUNCTION st_aspect( RETURNS raster AS $$ DECLARE - _rast raster; + _rast @extschema@.raster; _nband integer; _pixtype text; _width integer; _height integer; - _customextent raster; + _customextent @extschema@.raster; _extenttype text; BEGIN _customextent := customextent; @@ -4092,7 +4092,7 @@ CREATE OR REPLACE FUNCTION st_aspect( interpolate_nodata boolean DEFAULT FALSE ) RETURNS raster - AS $$ SELECT @extschema@.ST_aspect($1, $2, NULL::raster, $3, $4, $5) $$ + AS $$ SELECT @extschema@.ST_aspect($1, $2, NULL::@extschema@.raster, $3, $4, $5) $$ LANGUAGE 'sql' IMMUTABLE _PARALLEL; ----------------------------------------------------------------------- @@ -4246,14 +4246,14 @@ CREATE OR REPLACE FUNCTION st_hillshade( RETURNS RASTER AS $$ DECLARE - _rast raster; + _rast @extschema@.raster; _nband integer; _pixtype text; _pixwidth double precision; _pixheight double precision; _width integer; _height integer; - _customextent raster; + _customextent @extschema@.raster; _extenttype text; BEGIN _customextent := customextent; @@ -4306,7 +4306,7 @@ CREATE OR REPLACE FUNCTION st_hillshade( interpolate_nodata boolean DEFAULT FALSE ) RETURNS RASTER - AS $$ SELECT @extschema@.ST_hillshade($1, $2, NULL::raster, $3, $4, $5, $6, $7, $8) $$ + AS $$ SELECT @extschema@.ST_hillshade($1, $2, NULL::@extschema@.raster, $3, $4, $5, $6, $7, $8) $$ LANGUAGE 'sql' IMMUTABLE _PARALLEL; ----------------------------------------------------------------------- @@ -4406,14 +4406,14 @@ CREATE OR REPLACE FUNCTION st_tpi( RETURNS raster AS $$ DECLARE - _rast raster; + _rast @extschema@.raster; _nband integer; _pixtype text; _pixwidth double precision; _pixheight double precision; _width integer; _height integer; - _customextent raster; + _customextent @extschema@.raster; _extenttype text; BEGIN _customextent := customextent; @@ -4458,7 +4458,7 @@ CREATE OR REPLACE FUNCTION st_tpi( pixeltype text DEFAULT '32BF', interpolate_nodata boolean DEFAULT FALSE ) RETURNS RASTER - AS $$ SELECT @extschema@.ST_tpi($1, $2, NULL::raster, $3, $4) $$ + AS $$ SELECT @extschema@.ST_tpi($1, $2, NULL::@extschema@.raster, $3, $4) $$ LANGUAGE 'sql' IMMUTABLE _PARALLEL; ----------------------------------------------------------------------- @@ -4542,14 +4542,14 @@ CREATE OR REPLACE FUNCTION st_roughness( RETURNS raster AS $$ DECLARE - _rast raster; + _rast @extschema@.raster; _nband integer; _pixtype text; _pixwidth double precision; _pixheight double precision; _width integer; _height integer; - _customextent raster; + _customextent @extschema@.raster; _extenttype text; BEGIN _customextent := customextent; @@ -4589,7 +4589,7 @@ CREATE OR REPLACE FUNCTION ST_roughness( pixeltype text DEFAULT '32BF', interpolate_nodata boolean DEFAULT FALSE ) RETURNS RASTER - AS $$ SELECT @extschema@.ST_roughness($1, $2, NULL::raster, $3, $4) $$ + AS $$ SELECT @extschema@.ST_roughness($1, $2, NULL::@extschema@.raster, $3, $4) $$ LANGUAGE 'sql' IMMUTABLE _PARALLEL; ----------------------------------------------------------------------- @@ -4688,14 +4688,14 @@ CREATE OR REPLACE FUNCTION st_tri( RETURNS raster AS $$ DECLARE - _rast raster; + _rast @extschema@.raster; _nband integer; _pixtype text; _pixwidth double precision; _pixheight double precision; _width integer; _height integer; - _customextent raster; + _customextent @extschema@.raster; _extenttype text; BEGIN _customextent := customextent; @@ -4740,7 +4740,7 @@ CREATE OR REPLACE FUNCTION st_tri( pixeltype text DEFAULT '32BF', interpolate_nodata boolean DEFAULT FALSE ) RETURNS RASTER - AS $$ SELECT @extschema@.ST_tri($1, $2, NULL::raster, $3, $4) $$ + AS $$ SELECT @extschema@.ST_tri($1, $2, NULL::@extschema@.raster, $3, $4) $$ LANGUAGE 'sql' IMMUTABLE _PARALLEL; ----------------------------------------------------------------------- @@ -5016,7 +5016,7 @@ CREATE OR REPLACE FUNCTION st_setgeoreference(rast raster, georef text, format t $$ DECLARE params text[]; - rastout raster; + rastout @extschema@.raster; BEGIN IF rast IS NULL THEN RAISE WARNING 'Cannot set georeferencing on a null raster in st_setgeoreference.'; @@ -6477,7 +6477,7 @@ CREATE OR REPLACE FUNCTION ST_Intersection( RETURNS raster AS $$ DECLARE - rtn raster; + rtn @extschema@.raster; _returnband text; newnodata1 float8; newnodata2 float8; @@ -7404,8 +7404,8 @@ CREATE OR REPLACE FUNCTION _add_raster_constraint_coverage_tile(rastschema name, _tileheight integer; _alignment boolean; - _covextent geometry; - _covrast raster; + _covextent @extschema@.geometry; + _covrast @extschema@.raster; BEGIN fqtn := ''; IF length($1) > 0 THEN @@ -8700,7 +8700,7 @@ CREATE OR REPLACE FUNCTION _UpdateRasterSRID( sql := 'UPDATE ' || fqtn || ' SET ' || quote_ident($3) || ' = @extschema@.ST_SetSRID(' || quote_ident($3) || - '::raster, ' || srid || ')'; + '::@extschema@.raster, ' || srid || ')'; RAISE NOTICE 'sql = %', sql; EXECUTE sql; @@ -8752,7 +8752,7 @@ DECLARE ipy FLOAT8; tx int; ty int; - te GEOMETRY; -- tile extent + te @extschema@.GEOMETRY; -- tile extent ncols int; nlins int; srid int; @@ -8882,7 +8882,7 @@ CREATE OR REPLACE FUNCTION st_makeemptycoverage(tilewidth int, tileheight int, w 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@.raster; -- an empty template raster, where each cell -- represents a tile in the coverage minY double precision; maxX double precision;