]> granicus.if.org Git - postgis/commitdiff
#3496 patch commit - Make postgis non-relocateable and schema qualify at least core...
authorRegina Obe <lr@pcorp.us>
Wed, 27 Jul 2016 21:50:30 +0000 (21:50 +0000)
committerRegina Obe <lr@pcorp.us>
Wed, 27 Jul 2016 21:50:30 +0000 (21:50 +0000)
make postgis extension not schema relocateble
revise several raster functions to use schema qualified operators and function calls
revise make scripts to strip out schema qualified for non-extension installed, and keep for extension installed

git-svn-id: http://svn.osgeo.org/postgis/trunk@15025 b70326c6-7e19-0410-871a-916f4a2858ee

extensions/postgis/Makefile.in
extensions/postgis/postgis.control.in
raster/rt_pg/Makefile.in
raster/rt_pg/rtpostgis.sql.in

index 490892f6301e07fcb7e2cbcc3630e4693129f6ac..4c8350934413a8b08959062eedfb4271a8cfb8c7 100644 (file)
@@ -46,7 +46,7 @@ sql/$(EXTENSION)--$(EXTVERSION).sql: sql/$(EXTENSION).sql
        mkdir -p sql
        cp $< $@
 
-sql/$(EXTENSION)--unpackaged--$(EXTVERSION).sql: ../../postgis/postgis.sql ../../raster/rt_pg/rtpostgis.sql ../../utils/create_unpackaged.pl
+sql/$(EXTENSION)--unpackaged--$(EXTVERSION).sql: sql_bits/postgis.sql sql_bits/rtpostgis.sql ../../utils/create_unpackaged.pl
        mkdir -p sql
        cat ../../postgis/postgis.sql ../../raster/rt_pg/rtpostgis.sql | $(PERL) ../../utils/create_unpackaged.pl postgis > $@
        
@@ -78,13 +78,13 @@ sql_bits/rtpostgis_proc_set_search_path.sql: ../../raster/rt_pg/rtpostgis_proc_s
        cp $< $@
 
 #strip BEGIN/COMMIT since these are not allowed in extensions
-sql_bits/rtpostgis.sql: ../../raster/rt_pg/rtpostgis.sql
+sql_bits/rtpostgis.sql: ../../raster/rt_pg/rtpostgis_for_extension.sql
        $(PERL) -pe 's/BEGIN\;//g ; s/COMMIT\;//g' $< > $@
 
 sql_bits/spatial_ref_sys_config_dump.sql: ../../spatial_ref_sys.sql ../../utils/create_spatial_ref_sys_config_dump.pl
        ../../utils/create_spatial_ref_sys_config_dump.pl $< > $@
 
-sql_bits/rtpostgis_upgrade.sql: ../../raster/rt_pg/rtpostgis_upgrade.sql 
+sql_bits/rtpostgis_upgrade.sql: ../../raster/rt_pg/rtpostgis_upgrade_for_extension.sql 
        $(PERL) -pe "s/BEGIN\;//g ; s/COMMIT\;//g; s/^(DROP .*)\;/SELECT postgis_extension_drop_if_exists('$(EXTENSION)', '\1');\n\1\;/" $< > $@
 
 sql_bits/postgis_upgrade.sql: ../../postgis/postgis_upgrade.sql
index a5dd676e96135663cd205072835a84d9850be45f..f8fd41713e48d9092a996c9ee7262287c9c50174 100644 (file)
@@ -2,4 +2,4 @@
 comment = 'PostGIS geometry, geography, and raster spatial types and functions'
 default_version = '@POSTGIS_LIB_VERSION@'
 module_pathname = '$libdir/postgis-@POSTGIS_MAJOR_VERSION@.@POSTGIS_MINOR_VERSION@'
-relocatable = true
+relocatable = false
index 434382368581ceec5b09f7cbe5a9720a770ca4d7..be677a9797892ee7f45e489040bda948e1b9c96d 100644 (file)
@@ -24,7 +24,7 @@ MODULE_big=rtpostgis-@POSTGIS_MAJOR_VERSION@.@POSTGIS_MINOR_VERSION@
 MODULEDIR=contrib/postgis-@POSTGIS_MAJOR_VERSION@.@POSTGIS_MINOR_VERSION@
 
 # Files to be copied to the contrib/ directory
-DATA_built=rtpostgis.sql rtpostgis_upgrade.sql rtpostgis_proc_set_search_path.sql uninstall_rtpostgis.sql rtpostgis_legacy.sql
+DATA_built=rtpostgis.sql rtpostgis_for_extension.sql rtpostgis_upgrade_for_extension.sql rtpostgis_upgrade.sql rtpostgis_proc_set_search_path.sql uninstall_rtpostgis.sql rtpostgis_legacy.sql
 DATA=
 
 # SQL preprocessor
@@ -98,11 +98,15 @@ endif
 
 # Borrow the $libdir substitution from PGXS but customise by running the preprocessor
 # and adding the version number
+# replace @extschema@. with nothing, this is only used as placeholder for extension install
 %.sql: %.sql.in
+       $(SQLPP) -I../../postgis/ -I../../ $< | grep -v '^#' | \
+       $(PERL) -lpe "s'MODULE_PATHNAME'\$$libdir/rtpostgis-@POSTGIS_MAJOR_VERSION@.@POSTGIS_MINOR_VERSION@'g;s'@extschema@\.''g" > $@
+       
+rtpostgis_for_extension.sql: rtpostgis.sql.in
        $(SQLPP) -I../../postgis/ -I../../ $< | grep -v '^#' | \
        $(PERL) -lpe "s'MODULE_PATHNAME'\$$libdir/rtpostgis-@POSTGIS_MAJOR_VERSION@.@POSTGIS_MINOR_VERSION@'g" > $@
 
-
 ../../liblwgeom/.libs/liblwgeom.a:
        $(MAKE) -C ../../liblwgeom
 
@@ -120,9 +124,13 @@ $(OBJS): ../../liblwgeom/.libs/liblwgeom.a ../rt_core/librtcore.a ../../libpgcom
 # SQL objects deps here
 $(SQL_OBJS): ../../postgis/sqldefines.h ../../postgis_svn_revision.h
 
+#this is redundant but trying to fold in with the  other just hangs
 rtpostgis_upgrade.sql.in: rtpostgis.sql ../../utils/postgis_proc_upgrade.pl
        $(PERL) ../../utils/postgis_proc_upgrade.pl $< UNUSED > $@
        
+rtpostgis_upgrade_for_extension.sql.in: rtpostgis_for_extension.sql ../../utils/postgis_proc_upgrade.pl
+       $(PERL) ../../utils/postgis_proc_upgrade.pl $< UNUSED > $@
+       
 rtpostgis_proc_set_search_path.sql: rtpostgis.sql ../../utils/postgis_proc_set_search_path.pl
        $(PERL) ../../utils/postgis_proc_set_search_path.pl $< UNUSED > $@
 
@@ -130,6 +138,12 @@ rtpostgis_upgrade.sql: rtpostgis_upgrade_cleanup.sql rtpostgis_upgrade.sql.in rt
        echo 'BEGIN;' > $@
        cat $^ | sed -e 's/^BEGIN;$$//' -e 's/^COMMIT;$$//' >> $@
        echo 'COMMIT;' >> $@
+       
+#this keeps the @extschema@. in place since extension machinery will replace during install
+rtpostgis_upgrade_for_extension.sql: rtpostgis_upgrade_cleanup.sql rtpostgis_upgrade_for_extension.sql.in rtpostgis_drop.sql
+       echo 'BEGIN;' > $@
+       cat $^ | sed -e 's/^BEGIN;$$//' -e 's/^COMMIT;$$//' >> $@
+       echo 'COMMIT;' >> $@
 
 uninstall_rtpostgis.sql: rtpostgis.sql ../../utils/create_undef.pl 
        $(PERL) ../../utils/create_undef.pl $< $(POSTGIS_PGSQL_VERSION) > $@
index 8895fdb994e05a86e969d3df3106b890d4ad6b2d..ec0fa67180fbc936e68098ae481b820bcd899a6b 100644 (file)
@@ -5728,7 +5728,7 @@ CREATE OR REPLACE FUNCTION raster_contain(raster, raster)
 
 CREATE OR REPLACE FUNCTION raster_overlap(raster, raster)
     RETURNS bool
-    AS 'select $1::geometry && $2::geometry'
+    AS 'select $1::geometry OPERATOR(@extschema@.&&) $2::geometry'
     LANGUAGE 'sql' IMMUTABLE STRICT _PARALLEL;
 
 -- raster/geometry functions
@@ -5748,7 +5748,7 @@ CREATE OR REPLACE FUNCTION raster_contained_by_geometry(raster, geometry)
 -- Availability: 2.0.0
 CREATE OR REPLACE FUNCTION raster_geometry_overlap(raster, geometry)
     RETURNS bool
-    AS 'select $1::geometry && $2'
+    AS 'select $1::geometry OPERATOR(@extschema@.&&) $2'
     LANGUAGE 'sql' IMMUTABLE STRICT _PARALLEL;
     
 -- geometry/raster functions
@@ -5768,7 +5768,7 @@ CREATE OR REPLACE FUNCTION geometry_contained_by_raster(geometry, raster)
 -- Availability: 2.0.0
 CREATE OR REPLACE FUNCTION geometry_raster_overlap(geometry, raster)
     RETURNS bool
-    AS 'select $1 && $2::geometry'
+    AS 'select $1 OPERATOR(@extschema@.&&) $2::geometry'
     LANGUAGE 'sql' IMMUTABLE STRICT _PARALLEL;
     
 ------------------------------------------------------------------------------
@@ -6110,13 +6110,13 @@ CREATE OR REPLACE FUNCTION _st_intersects(rast1 raster, nband1 integer, rast2 ra
 
 CREATE OR REPLACE FUNCTION st_intersects(rast1 raster, nband1 integer, rast2 raster, nband2 integer)
        RETURNS boolean
-       AS $$ SELECT $1 && $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN _st_intersects(st_convexhull($1), st_convexhull($3)) ELSE _st_intersects($1, $2, $3, $4) END $$
+       AS $$ SELECT $1 OPERATOR(@extschema@.&&) $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN @extschema@._st_intersects(@extschema@.st_convexhull($1), @extschema@.st_convexhull($3)) ELSE @extschema@._st_intersects($1, $2, $3, $4) END $$
        LANGUAGE 'sql' IMMUTABLE
        COST 1000;
 
 CREATE OR REPLACE FUNCTION st_intersects(rast1 raster, rast2 raster)
        RETURNS boolean
-       AS $$ SELECT st_intersects($1, NULL::integer, $2, NULL::integer) $$
+       AS $$ SELECT @extschema@.st_intersects($1, NULL::integer, $2, NULL::integer) $$
        LANGUAGE 'sql' IMMUTABLE
        COST 1000;
 
@@ -6137,7 +6137,7 @@ CREATE OR REPLACE FUNCTION _st_intersects(geom geometry, rast raster, nband inte
 
                _geom := ST_ConvexHull(rast);
                IF nband IS NOT NULL THEN
-                       SELECT CASE WHEN bmd.nodatavalue IS NULL THEN FALSE ELSE NULL END INTO hasnodata FROM ST_BandMetaData(rast, nband) AS bmd;
+                       SELECT CASE WHEN bmd.nodatavalue IS NULL THEN FALSE ELSE NULL END INTO hasnodata FROM @extschema@.ST_BandMetaData(rast, nband) AS bmd;
                END IF;
 
                IF ST_Intersects(geom, _geom) IS NOT TRUE THEN
@@ -6146,8 +6146,8 @@ CREATE OR REPLACE FUNCTION _st_intersects(geom geometry, rast raster, nband inte
                        RETURN TRUE;
                END IF;
 
-               SELECT ST_Collect(t.geom) INTO _geom FROM ST_PixelAsPolygons(rast, nband) AS t;
-               RETURN ST_Intersects(geom, _geom);
+               SELECT @extschema@.ST_Collect(t.geom) INTO _geom FROM @extschema@.ST_PixelAsPolygons(rast, nband) AS t;
+               RETURN @extschema@.ST_Intersects(geom, _geom);
        END;
        $$ LANGUAGE 'plpgsql' IMMUTABLE
        COST 1000;
@@ -6155,7 +6155,7 @@ CREATE OR REPLACE FUNCTION _st_intersects(geom geometry, rast raster, nband inte
 -- This function can not be STRICT
 CREATE OR REPLACE FUNCTION st_intersects(geom geometry, rast raster, nband integer DEFAULT NULL)
        RETURNS boolean AS
-       $$ SELECT $1 && $2::geometry AND _st_intersects($1, $2, $3); $$
+       $$ SELECT $1 OPERATOR(@extschema@.&&) $2::geometry AND @extschema@._st_intersects($1, $2, $3); $$
        LANGUAGE 'sql' IMMUTABLE
        COST 1000;
 
@@ -6165,13 +6165,13 @@ CREATE OR REPLACE FUNCTION st_intersects(geom geometry, rast raster, nband integ
 
 CREATE OR REPLACE FUNCTION st_intersects(rast raster, geom geometry, nband integer DEFAULT NULL)
        RETURNS boolean
-       AS $$ SELECT $1::geometry && $2 AND _st_intersects($2, $1, $3) $$
+       AS $$ SELECT $1::geometry OPERATOR(@extschema@.&&) $2 AND @extschema@._st_intersects($2, $1, $3) $$
        LANGUAGE 'sql' IMMUTABLE
        COST 1000;
 
 CREATE OR REPLACE FUNCTION st_intersects(rast raster, nband integer, geom geometry)
        RETURNS boolean
-       AS $$ SELECT $1::geometry && $3 AND _st_intersects($3, $1, $2) $$
+       AS $$ SELECT $1::geometry OPERATOR(@extschema@.&&) $3 AND @extschema@._st_intersects($3, $1, $2) $$
        LANGUAGE 'sql' IMMUTABLE
        COST 1000;
 
@@ -6187,13 +6187,13 @@ CREATE OR REPLACE FUNCTION _st_overlaps(rast1 raster, nband1 integer, rast2 rast
 
 CREATE OR REPLACE FUNCTION st_overlaps(rast1 raster, nband1 integer, rast2 raster, nband2 integer)
        RETURNS boolean
-       AS $$ SELECT $1 && $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN _st_overlaps(st_convexhull($1), st_convexhull($3)) ELSE _st_overlaps($1, $2, $3, $4) END $$
+       AS $$ SELECT $1 OPERATOR(@extschema@.&&) $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN @extschema@._st_overlaps(@extschema@.st_convexhull($1), @extschema@.st_convexhull($3)) ELSE _st_overlaps($1, $2, $3, $4) END $$
        LANGUAGE 'sql' IMMUTABLE
        COST 1000;
 
 CREATE OR REPLACE FUNCTION st_overlaps(rast1 raster, rast2 raster)
        RETURNS boolean
-       AS $$ SELECT st_overlaps($1, NULL::integer, $2, NULL::integer) $$
+       AS $$ SELECT @extschema@.st_overlaps($1, NULL::integer, $2, NULL::integer) $$
        LANGUAGE 'sql' IMMUTABLE
        COST 1000;
 
@@ -6209,13 +6209,13 @@ CREATE OR REPLACE FUNCTION _st_touches(rast1 raster, nband1 integer, rast2 raste
 
 CREATE OR REPLACE FUNCTION st_touches(rast1 raster, nband1 integer, rast2 raster, nband2 integer)
        RETURNS boolean
-       AS $$ SELECT $1 && $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN _st_touches(st_convexhull($1), st_convexhull($3)) ELSE _st_touches($1, $2, $3, $4) END $$
+       AS $$ SELECT $1 OPERATOR(@extschema@.&&) $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN @extschema@._st_touches(@extschema@.st_convexhull($1), @extschema@.st_convexhull($3)) ELSE @extschema@._st_touches($1, $2, $3, $4) END $$
        LANGUAGE 'sql' IMMUTABLE
        COST 1000;
 
 CREATE OR REPLACE FUNCTION st_touches(rast1 raster, rast2 raster)
        RETURNS boolean
-       AS $$ SELECT st_touches($1, NULL::integer, $2, NULL::integer) $$
+       AS $$ SELECT @extschema@.st_touches($1, NULL::integer, $2, NULL::integer) $$
        LANGUAGE 'sql' IMMUTABLE
        COST 1000;
 
@@ -6231,13 +6231,13 @@ CREATE OR REPLACE FUNCTION _st_contains(rast1 raster, nband1 integer, rast2 rast
 
 CREATE OR REPLACE FUNCTION st_contains(rast1 raster, nband1 integer, rast2 raster, nband2 integer)
        RETURNS boolean
-       AS $$ SELECT $1 && $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN _st_contains(st_convexhull($1), st_convexhull($3)) ELSE _st_contains($1, $2, $3, $4) END $$
+       AS $$ SELECT $1 OPERATOR(@extschema@.&&) $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN @extschema@._st_contains(@extschema@.st_convexhull($1), @extschema@.st_convexhull($3)) ELSE @extschema@._st_contains($1, $2, $3, $4) END $$
        LANGUAGE 'sql' IMMUTABLE
        COST 1000;
 
 CREATE OR REPLACE FUNCTION st_contains(rast1 raster, rast2 raster)
        RETURNS boolean
-       AS $$ SELECT st_contains($1, NULL::integer, $2, NULL::integer) $$
+       AS $$ SELECT @extschema@.st_contains($1, NULL::integer, $2, NULL::integer) $$
        LANGUAGE 'sql' IMMUTABLE
        COST 1000;
 
@@ -6253,13 +6253,13 @@ CREATE OR REPLACE FUNCTION _st_containsproperly(rast1 raster, nband1 integer, ra
 
 CREATE OR REPLACE FUNCTION st_containsproperly(rast1 raster, nband1 integer, rast2 raster, nband2 integer)
        RETURNS boolean
-       AS $$ SELECT $1 && $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN _st_containsproperly(st_convexhull($1), st_convexhull($3)) ELSE _st_containsproperly($1, $2, $3, $4) END $$
+       AS $$ SELECT $1 OPERATOR(@extschema@.&&) $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN @extschema@._st_containsproperly(@extschema@.st_convexhull($1), @extschema@.st_convexhull($3)) ELSE @extschema@._st_containsproperly($1, $2, $3, $4) END $$
        LANGUAGE 'sql' IMMUTABLE
        COST 1000;
 
 CREATE OR REPLACE FUNCTION st_containsproperly(rast1 raster, rast2 raster)
        RETURNS boolean
-       AS $$ SELECT st_containsproperly($1, NULL::integer, $2, NULL::integer) $$
+       AS $$ SELECT @extschema@.st_containsproperly($1, NULL::integer, $2, NULL::integer) $$
        LANGUAGE 'sql' IMMUTABLE
        COST 1000;
 
@@ -6275,13 +6275,13 @@ CREATE OR REPLACE FUNCTION _st_covers(rast1 raster, nband1 integer, rast2 raster
 
 CREATE OR REPLACE FUNCTION st_covers(rast1 raster, nband1 integer, rast2 raster, nband2 integer)
        RETURNS boolean
-       AS $$ SELECT $1 && $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN _st_covers(st_convexhull($1), st_convexhull($3)) ELSE _st_covers($1, $2, $3, $4) END $$
+       AS $$ SELECT $1 OPERATOR(@extschema@.&&) $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN @extschema@._st_covers(@extschema@.st_convexhull($1), @extschema@.st_convexhull($3)) ELSE @extschema@._st_covers($1, $2, $3, $4) END $$
        LANGUAGE 'sql' IMMUTABLE
        COST 1000;
 
 CREATE OR REPLACE FUNCTION st_covers(rast1 raster, rast2 raster)
        RETURNS boolean
-       AS $$ SELECT st_covers($1, NULL::integer, $2, NULL::integer) $$
+       AS $$ SELECT @extschema@.st_covers($1, NULL::integer, $2, NULL::integer) $$
        LANGUAGE 'sql' IMMUTABLE
        COST 1000;
 
@@ -6297,13 +6297,13 @@ CREATE OR REPLACE FUNCTION _st_coveredby(rast1 raster, nband1 integer, rast2 ras
 
 CREATE OR REPLACE FUNCTION st_coveredby(rast1 raster, nband1 integer, rast2 raster, nband2 integer)
        RETURNS boolean
-       AS $$ SELECT $1 && $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN _st_coveredby(st_convexhull($1), st_convexhull($3)) ELSE _st_coveredby($1, $2, $3, $4) END $$
+       AS $$ SELECT $1 OPERATOR(@extschema@.&&) $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN @extschema@._st_coveredby(@extschema@.st_convexhull($1), @extschema@.st_convexhull($3)) ELSE @extschema@._st_coveredby($1, $2, $3, $4) END $$
        LANGUAGE 'sql' IMMUTABLE
        COST 1000;
 
 CREATE OR REPLACE FUNCTION st_coveredby(rast1 raster, rast2 raster)
        RETURNS boolean
-       AS $$ SELECT st_coveredby($1, NULL::integer, $2, NULL::integer) $$
+       AS $$ SELECT @extschema@.st_coveredby($1, NULL::integer, $2, NULL::integer) $$
        LANGUAGE 'sql' IMMUTABLE
        COST 1000;
 
@@ -6313,19 +6313,19 @@ CREATE OR REPLACE FUNCTION st_coveredby(rast1 raster, rast2 raster)
 
 CREATE OR REPLACE FUNCTION _st_within(rast1 raster, nband1 integer, rast2 raster, nband2 integer)
        RETURNS boolean
-       AS $$ SELECT _st_contains($3, $4, $1, $2) $$
+       AS $$ SELECT @extschema@._st_contains($3, $4, $1, $2) $$
        LANGUAGE 'sql' IMMUTABLE
        COST 1000;
 
 CREATE OR REPLACE FUNCTION st_within(rast1 raster, nband1 integer, rast2 raster, nband2 integer)
        RETURNS boolean
-       AS $$ SELECT $1 && $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN _st_within(st_convexhull($1), st_convexhull($3)) ELSE _st_contains($3, $4, $1, $2) END $$
+       AS $$ SELECT $1 OPERATOR(@extschema@.&&) $3 AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN @extschema@._st_within(@extschema@.st_convexhull($1), @extschema@.st_convexhull($3)) ELSE @extschema@._st_contains($3, $4, $1, $2) END $$
        LANGUAGE 'sql' IMMUTABLE
        COST 1000;
 
 CREATE OR REPLACE FUNCTION st_within(rast1 raster, rast2 raster)
        RETURNS boolean
-       AS $$ SELECT st_within($1, NULL::integer, $2, NULL::integer) $$
+       AS $$ SELECT @extschema@.st_within($1, NULL::integer, $2, NULL::integer) $$
        LANGUAGE 'sql' IMMUTABLE
        COST 1000;
 
@@ -6341,13 +6341,13 @@ CREATE OR REPLACE FUNCTION _st_dwithin(rast1 raster, nband1 integer, rast2 raste
 
 CREATE OR REPLACE FUNCTION st_dwithin(rast1 raster, nband1 integer, rast2 raster, nband2 integer, distance double precision)
        RETURNS boolean
-       AS $$ SELECT $1::geometry && ST_Expand(ST_ConvexHull($3), $5) AND $3::geometry && ST_Expand(ST_ConvexHull($1), $5) AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN _st_dwithin(st_convexhull($1), st_convexhull($3), $5) ELSE _st_dwithin($1, $2, $3, $4, $5) END $$
+       AS $$ SELECT $1::geometry OPERATOR(@extschema@.&&) ST_Expand(ST_ConvexHull($3), $5) AND $3::geometry OPERATOR(@extschema@.&&) ST_Expand(ST_ConvexHull($1), $5) AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN _st_dwithin(st_convexhull($1), st_convexhull($3), $5) ELSE _st_dwithin($1, $2, $3, $4, $5) END $$
        LANGUAGE 'sql' IMMUTABLE
        COST 1000;
 
 CREATE OR REPLACE FUNCTION st_dwithin(rast1 raster, rast2 raster, distance double precision)
        RETURNS boolean
-       AS $$ SELECT st_dwithin($1, NULL::integer, $2, NULL::integer, $3) $$
+       AS $$ SELECT @extschema@.st_dwithin($1, NULL::integer, $2, NULL::integer, $3) $$
        LANGUAGE 'sql' IMMUTABLE
        COST 1000;
 
@@ -6363,7 +6363,7 @@ CREATE OR REPLACE FUNCTION _st_dfullywithin(rast1 raster, nband1 integer, rast2
 
 CREATE OR REPLACE FUNCTION st_dfullywithin(rast1 raster, nband1 integer, rast2 raster, nband2 integer, distance double precision)
        RETURNS boolean
-       AS $$ SELECT $1::geometry && ST_Expand(ST_ConvexHull($3), $5) AND $3::geometry && ST_Expand(ST_ConvexHull($1), $5) AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN _st_dfullywithin(st_convexhull($1), st_convexhull($3), $5) ELSE _st_dfullywithin($1, $2, $3, $4, $5) END $$
+       AS $$ SELECT $1::geometry OPERATOR(@extschema@.&&) ST_Expand(ST_ConvexHull($3), $5) AND $3::geometry OPERATOR(@extschema@.&&) ST_Expand(ST_ConvexHull($1), $5) AND CASE WHEN $2 IS NULL OR $4 IS NULL THEN _st_dfullywithin(st_convexhull($1), st_convexhull($3), $5) ELSE _st_dfullywithin($1, $2, $3, $4, $5) END $$
        LANGUAGE 'sql' IMMUTABLE
        COST 1000;