[postgis-tickets] [SCM] PostGIS branch master updated. 3.1.0alpha1-94-gb28cfb9

git at osgeo.org git at osgeo.org
Thu Apr 30 03:45:30 PDT 2020


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, master has been updated
       via  b28cfb9b923d2190877065fc6dd47a1a6bd961bb (commit)
       via  5dbe34cb7b61f748e97712956913cf6230b6f5cf (commit)
       via  acd1ac8d2b883d268465b069c7aba73577800f0c (commit)
      from  591d0c69ba762a8fa4415b628a6f70ec985221d7 (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 b28cfb9b923d2190877065fc6dd47a1a6bd961bb
Author: Raúl Marín <git at rmr.ninja>
Date:   Tue Apr 28 11:36:45 2020 +0200

    Reduce _COST_LOW and _COST_MEDIUM and change ST_Simplify
    
    Closes https://github.com/postgis/postgis/pull/556
    References #4490

diff --git a/NEWS b/NEWS
index 4bd10d3..e79c549 100644
--- a/NEWS
+++ b/NEWS
@@ -12,6 +12,7 @@ Only tickets not included in 3.1.0alpha1
 * Enhancements *
   - #4651: ST_Simplify: Don't copy if nothing is removed (Raúl Marín)
   - #4657: Avoid De-TOASTing where possible (Paul Ramsey)
+  - #4490, Tweak function costs (Raúl Marín)
 
 * Bug fixes *
   - #4652, Fix several memory related bugs in ST_GeomFromGML (Raúl Marín)
diff --git a/postgis/postgis.sql.in b/postgis/postgis.sql.in
index e984fd2..1edec95 100644
--- a/postgis/postgis.sql.in
+++ b/postgis/postgis.sql.in
@@ -3264,14 +3264,14 @@ CREATE OR REPLACE FUNCTION ST_Simplify(geometry, float8)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME', 'LWGEOM_simplify2d'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_MEDIUM;
+	_COST_LOW;
 
 -- Availability: 2.2.0
 CREATE OR REPLACE FUNCTION ST_Simplify(geometry, float8, boolean)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME', 'LWGEOM_simplify2d'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_MEDIUM;
+	_COST_LOW;
 
 -- Availability: 2.2.0
 CREATE OR REPLACE FUNCTION ST_SimplifyVW(geometry, float8)
diff --git a/postgis/sqldefines.h.in b/postgis/sqldefines.h.in
index 7f46244..5f81466 100644
--- a/postgis/sqldefines.h.in
+++ b/postgis/sqldefines.h.in
@@ -24,8 +24,8 @@
  */
 #if POSTGIS_PGSQL_VERSION >= 120
 #define _COST_DEFAULT COST 1
-#define _COST_LOW COST 100
-#define _COST_MEDIUM COST 1000
+#define _COST_LOW COST 50
+#define _COST_MEDIUM COST 500
 #define _COST_HIGH COST 10000
 #else
 #define _COST_DEFAULT COST 1

commit 5dbe34cb7b61f748e97712956913cf6230b6f5cf
Author: Raúl Marín <git at rmr.ninja>
Date:   Mon Apr 27 17:32:05 2020 +0200

    postgis.sql: tabs

diff --git a/postgis/postgis.sql.in b/postgis/postgis.sql.in
index 5ff0b9d..e984fd2 100644
--- a/postgis/postgis.sql.in
+++ b/postgis/postgis.sql.in
@@ -11,10 +11,10 @@
 -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 --
 -- WARNING: Any change in this file must be evaluated for compatibility.
---          Changes cleanly handled by postgis_upgrade.sql are fine,
---	    other changes will require a bump in Major version.
---	    Currently only function replaceble by CREATE OR REPLACE
---	    are cleanly handled.
+--		Changes cleanly handled by postgis_upgrade.sql are fine,
+--		other changes will require a bump in Major version.
+--		Currently only function replaceble by CREATE OR REPLACE
+--		are cleanly handled.
 --
 -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
@@ -453,8 +453,8 @@ CREATE OR REPLACE FUNCTION geometry_hash(geometry)
 -- Availability: 2.5.0
 CREATE OPERATOR CLASS hash_geometry_ops
 	DEFAULT FOR TYPE geometry USING hash AS
-    OPERATOR    1   = ,
-    FUNCTION    1   geometry_hash(geometry);
+	OPERATOR	1   = ,
+	FUNCTION	1   geometry_hash(geometry);
 
 -----------------------------------------------------------------------------
 -- GiST 2D GEOMETRY-over-GSERIALIZED INDEX
@@ -631,14 +631,14 @@ CREATE OR REPLACE FUNCTION geometry_distance_box(geom1 geometry, geom2 geometry)
 
 -- Availability: 2.0.0
 CREATE OPERATOR <-> (
-    LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_distance_centroid,
-    COMMUTATOR = '<->'
+	LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_distance_centroid,
+	COMMUTATOR = '<->'
 );
 
 -- Availability: 2.0.0
 CREATE OPERATOR <#> (
-    LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_distance_box,
-    COMMUTATOR = '<#>'
+	LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_distance_box,
+	COMMUTATOR = '<#>'
 );
 
 -- Availability: 2.0.0
@@ -933,9 +933,9 @@ CREATE OR REPLACE FUNCTION geometry_distance_centroid_nd(geometry,geometry)
 
 -- Availability: 2.2.0
 CREATE OPERATOR <<->> (
-    LEFTARG = geometry, RIGHTARG = geometry,
-    PROCEDURE = geometry_distance_centroid_nd,
-    COMMUTATOR = '<<->>'
+	LEFTARG = geometry, RIGHTARG = geometry,
+	PROCEDURE = geometry_distance_centroid_nd,
+	COMMUTATOR = '<<->>'
 );
 
 --
@@ -952,9 +952,9 @@ CREATE OR REPLACE FUNCTION geometry_distance_cpa(geometry, geometry)
 
 -- Availability: 2.2.0
 CREATE OPERATOR |=| (
-    LEFTARG = geometry, RIGHTARG = geometry,
-    PROCEDURE = geometry_distance_cpa,
-    COMMUTATOR = '|=|'
+	LEFTARG = geometry, RIGHTARG = geometry,
+	PROCEDURE = geometry_distance_cpa,
+	COMMUTATOR = '|=|'
 );
 
 -- Availability: 2.2.0
@@ -1153,21 +1153,21 @@ CREATE OR REPLACE FUNCTION postgis_addbbox(geometry)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME','LWGEOM_addBBOX'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-        _COST_LOW;
+	_COST_LOW;
 
 -- Availability: 1.5.0
 CREATE OR REPLACE FUNCTION postgis_dropbbox(geometry)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME','LWGEOM_dropBBOX'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-        _COST_LOW;
+	_COST_LOW;
 
 -- Availability: 1.5.0
 CREATE OR REPLACE FUNCTION postgis_hasbbox(geometry)
 	RETURNS bool
 	AS 'MODULE_PATHNAME', 'LWGEOM_hasBBOX'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-        _COST_DEFAULT;
+	_COST_DEFAULT;
 
 -- Availability: 2.5.0
 CREATE OR REPLACE FUNCTION ST_QuantizeCoordinates(g geometry, prec_x int, prec_y int DEFAULT NULL, prec_z int DEFAULT NULL, prec_m int DEFAULT NULL)
@@ -1773,17 +1773,17 @@ CREATE OR REPLACE FUNCTION ST_Polygonize (geometry[])
 
 -- Availability: 2.2
 CREATE OR REPLACE FUNCTION ST_ClusterIntersecting(geometry[])
-    RETURNS geometry[]
-    AS 'MODULE_PATHNAME',  'clusterintersecting_garray'
-    LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-    _COST_HIGH;
+	RETURNS geometry[]
+	AS 'MODULE_PATHNAME',  'clusterintersecting_garray'
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_HIGH;
 
 -- Availability: 2.2
 CREATE OR REPLACE FUNCTION ST_ClusterWithin(geometry[], float8)
-    RETURNS geometry[]
-    AS 'MODULE_PATHNAME',  'cluster_within_distance_garray'
-    LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-    _COST_HIGH;
+	RETURNS geometry[]
+	AS 'MODULE_PATHNAME',  'cluster_within_distance_garray'
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_HIGH;
 
 -- Availability: 2.3
 CREATE OR REPLACE FUNCTION ST_ClusterDBSCAN (geometry, eps float8, minpoints int)
@@ -1893,14 +1893,14 @@ CREATE OR REPLACE FUNCTION ST_Scale(geometry,float8,float8,float8)
 	--AS 'SELECT ST_Affine($1,  $2, 0, 0,  0, $3, 0,  0, 0, $4,  0, 0, 0)'
 	AS 'SELECT @extschema at .ST_Scale($1, @extschema at .ST_MakePoint($2, $3, $4))'
 	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
-        _COST_LOW;
+	_COST_LOW;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_Scale(geometry,float8,float8)
 	RETURNS geometry
 	AS 'SELECT @extschema at .ST_Scale($1, $2, $3, 1)'
 	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
-        _COST_LOW;
+	_COST_LOW;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_Transscale(geometry,float8,float8,float8,float8)
@@ -1908,7 +1908,7 @@ CREATE OR REPLACE FUNCTION ST_Transscale(geometry,float8,float8,float8,float8)
 	AS 'SELECT @extschema at .ST_Affine($1,  $4, 0, 0,  0, $5, 0,
 		0, 0, 1,  $2 * $4, $3 * $5, 0)'
 	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
-        _COST_LOW;
+	_COST_LOW;
 
 -----------------------------------------------------------------------
 -- Dumping
@@ -1941,7 +1941,7 @@ CREATE OR REPLACE FUNCTION ST_DumpRings(geometry)
 -- that returns a path and all the points that make up a particular geometry.
 -- Availability: 1.5.0
 CREATE OR REPLACE FUNCTION ST_DumpPoints(geometry)
-    RETURNS SETOF geometry_dump
+	RETURNS SETOF geometry_dump
 	AS 'MODULE_PATHNAME', 'LWGEOM_dumppoints'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
 	_COST_HIGH;
@@ -1977,16 +1977,16 @@ CREATE OR REPLACE FUNCTION populate_geometry_columns(use_typmod boolean DEFAULT
 	RETURNS text AS
 $$
 DECLARE
-	inserted    integer;
-	oldcount    integer;
-	probed      integer;
-	stale       integer;
-	gcs         RECORD;
-	gc          RECORD;
-	gsrid       integer;
-	gndims      integer;
-	gtype       text;
-	query       text;
+	inserted	integer;
+	oldcount	integer;
+	probed	  integer;
+	stale	   integer;
+	gcs		 RECORD;
+	gc		  RECORD;
+	gsrid	   integer;
+	gndims	  integer;
+	gtype	   text;
+	query	   text;
 	gc_is_valid boolean;
 
 BEGIN
@@ -2029,9 +2029,9 @@ BEGIN
 	END LOOP;
 
 	IF oldcount > inserted THEN
-	    stale = oldcount-inserted;
+		stale = oldcount-inserted;
 	ELSE
-	    stale = 0;
+		stale = 0;
 	END IF;
 
 	RETURN 'probed:' ||probed|| ' inserted:'||inserted;
@@ -2066,15 +2066,15 @@ CREATE OR REPLACE FUNCTION populate_geometry_columns(tbl_oid oid, use_typmod boo
 	RETURNS integer AS
 $$
 DECLARE
-	gcs         RECORD;
-	gc          RECORD;
-	gc_old      RECORD;
-	gsrid       integer;
-	gndims      integer;
-	gtype       text;
-	query       text;
+	gcs		 RECORD;
+	gc		  RECORD;
+	gc_old	  RECORD;
+	gsrid	   integer;
+	gndims	  integer;
+	gtype	   text;
+	query	   text;
 	gc_is_valid boolean;
-	inserted    integer;
+	inserted	integer;
 	constraint_successful boolean := false;
 
 BEGIN
@@ -3804,20 +3804,20 @@ CREATE OR REPLACE FUNCTION ST_DelaunayTriangles(g1 geometry, tolerance float8 DE
 --
 
 CREATE OR REPLACE FUNCTION _ST_Voronoi(g1 geometry, clip geometry DEFAULT NULL, tolerance float8 DEFAULT 0.0, return_polygons boolean DEFAULT true)
-       RETURNS geometry
-       AS 'MODULE_PATHNAME', 'ST_Voronoi'
-       LANGUAGE 'c' IMMUTABLE PARALLEL SAFE
-       _COST_HIGH;
+	   RETURNS geometry
+	   AS 'MODULE_PATHNAME', 'ST_Voronoi'
+	   LANGUAGE 'c' IMMUTABLE PARALLEL SAFE
+	   _COST_HIGH;
 
 CREATE OR REPLACE FUNCTION ST_VoronoiPolygons(g1 geometry, tolerance float8 DEFAULT 0.0, extend_to geometry DEFAULT NULL)
-       RETURNS geometry
-       AS $$ SELECT @extschema at ._ST_Voronoi(g1, extend_to, tolerance, true) $$
-       LANGUAGE 'sql' IMMUTABLE PARALLEL SAFE;
+	   RETURNS geometry
+	   AS $$ SELECT @extschema at ._ST_Voronoi(g1, extend_to, tolerance, true) $$
+	   LANGUAGE 'sql' IMMUTABLE PARALLEL SAFE;
 
 CREATE OR REPLACE FUNCTION ST_VoronoiLines(g1 geometry, tolerance float8 DEFAULT 0.0, extend_to geometry DEFAULT NULL)
-       RETURNS geometry
-       AS $$ SELECT @extschema at ._ST_Voronoi(g1, extend_to, tolerance, false) $$
-       LANGUAGE 'sql' IMMUTABLE PARALLEL SAFE;
+	   RETURNS geometry
+	   AS $$ SELECT @extschema at ._ST_Voronoi(g1, extend_to, tolerance, false) $$
+	   LANGUAGE 'sql' IMMUTABLE PARALLEL SAFE;
 
 --------------------------------------------------------------------------------
 -- Aggregates and their supporting functions
@@ -4536,14 +4536,14 @@ CREATE OR REPLACE FUNCTION ST_GeomFromGML(text)
 	RETURNS geometry
 	AS 'SELECT @extschema at ._ST_GeomFromGML($1, 0)'
 	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
-        _COST_MEDIUM;
+	_COST_MEDIUM;
 
 -- Availability: 1.5.0
 CREATE OR REPLACE FUNCTION ST_GMLToSQL(text)
 	RETURNS geometry
 	AS 'SELECT @extschema at ._ST_GeomFromGML($1, 0)'
 	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
-        _COST_MEDIUM;
+	_COST_MEDIUM;
 
 -- Availability: 2.0.0
 CREATE OR REPLACE FUNCTION ST_GMLToSQL(text, int4)
@@ -4648,7 +4648,7 @@ CREATE OR REPLACE FUNCTION ST_AsGML(geom geometry, maxdecimaldigits int4 DEFAULT
 	RETURNS TEXT
 	AS $$ SELECT @extschema at ._ST_AsGML(2, $1, $2, $3, null, null); $$
 	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
-        _COST_MEDIUM;
+	_COST_MEDIUM;
 
 -- ST_AsGML(version, geom, precision, option)
 -- Availability: 1.4.0
@@ -4661,7 +4661,7 @@ CREATE OR REPLACE FUNCTION ST_AsGML(version int4, geom geometry, maxdecimaldigit
 	RETURNS TEXT
 	AS $$ SELECT @extschema at ._ST_AsGML($1, $2, $3, $4, $5, $6); $$
 	LANGUAGE 'sql' IMMUTABLE PARALLEL SAFE
-        _COST_MEDIUM;
+	_COST_MEDIUM;
 
 -----------------------------------------------------------------------
 -- KML OUTPUT
@@ -4701,14 +4701,14 @@ CREATE OR REPLACE FUNCTION json(geometry)
 	RETURNS json
 	AS 'MODULE_PATHNAME','geometry_to_json'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-        _COST_MEDIUM;
+	_COST_MEDIUM;
 
 -- Availability: 3.0.0
 CREATE OR REPLACE FUNCTION jsonb(geometry)
 	RETURNS jsonb
 	AS 'MODULE_PATHNAME','geometry_to_jsonb'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-        _COST_MEDIUM;
+	_COST_MEDIUM;
 
 -- Availability: 3.0.0
 CREATE CAST (geometry AS json) WITH FUNCTION json(geometry);
@@ -4725,35 +4725,35 @@ CREATE OR REPLACE FUNCTION pgis_asmvt_transfn(internal, anyelement)
 	RETURNS internal
 	AS 'MODULE_PATHNAME', 'pgis_asmvt_transfn'
 	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE
-        _COST_MEDIUM;
+	_COST_MEDIUM;
 
 -- Availability: 2.4.0
 CREATE OR REPLACE FUNCTION pgis_asmvt_transfn(internal, anyelement, text)
 	RETURNS internal
 	AS 'MODULE_PATHNAME', 'pgis_asmvt_transfn'
 	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE
-        _COST_MEDIUM;
+	_COST_MEDIUM;
 
 -- Availability: 2.4.0
 CREATE OR REPLACE FUNCTION pgis_asmvt_transfn(internal, anyelement, text, int4)
 	RETURNS internal
 	AS 'MODULE_PATHNAME', 'pgis_asmvt_transfn'
 	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE
-        _COST_MEDIUM;
+	_COST_MEDIUM;
 
 -- Availability: 2.4.0
 CREATE OR REPLACE FUNCTION pgis_asmvt_transfn(internal, anyelement, text, int4, text)
 	RETURNS internal
 	AS 'MODULE_PATHNAME', 'pgis_asmvt_transfn'
 	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE
-        _COST_MEDIUM;
+	_COST_MEDIUM;
 
 -- Availability: 3.0.0
 CREATE OR REPLACE FUNCTION pgis_asmvt_transfn(internal, anyelement, text, int4, text, text)
 	RETURNS internal
 	AS 'MODULE_PATHNAME', 'pgis_asmvt_transfn'
 	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE
-        _COST_MEDIUM;
+	_COST_MEDIUM;
 
 -- Availability: 2.4.0
 CREATE OR REPLACE FUNCTION pgis_asmvt_finalfn(internal)
@@ -4853,7 +4853,7 @@ CREATE OR REPLACE FUNCTION ST_AsMVTGeom(geom geometry, bounds box2d, extent int4
 	RETURNS geometry
 	AS 'MODULE_PATHNAME','ST_AsMVTGeom'
 	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE
-        _COST_MEDIUM;
+	_COST_MEDIUM;
 
 -- Availability: 2.4.0
 CREATE OR REPLACE FUNCTION postgis_libprotobuf_version()
@@ -5096,10 +5096,10 @@ CREATE OR REPLACE FUNCTION ST_AsText(geometry)
 -- Availability: 2.5.0
 -- PostGIS equivalent function: AsText(geometry, int4)
 CREATE OR REPLACE FUNCTION ST_AsText(geometry, int4)
-    RETURNS TEXT
-    AS 'MODULE_PATHNAME','LWGEOM_asText'
-    LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-    _COST_MEDIUM;
+	RETURNS TEXT
+	AS 'MODULE_PATHNAME','LWGEOM_asText'
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_MEDIUM;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_GeometryFromText(text)
@@ -5661,8 +5661,8 @@ CREATE OR REPLACE FUNCTION ST_SwapOrdinates(geom geometry, ords cstring)
 	_COST_LOW;
 
 -- NOTE: same as ST_SwapOrdinates(geometry, 'xy')
---       but slightly faster in that it doesn't need to parse ordinate
---       spec strings
+--	   but slightly faster in that it doesn't need to parse ordinate
+--	   spec strings
 CREATE OR REPLACE FUNCTION ST_FlipCoordinates(geometry)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME', 'ST_FlipCoordinates'
@@ -5865,7 +5865,7 @@ $$
 SELECT replace(replace(split_part(s.consrc, ' = ', 2), ')', ''), '(', '')::integer
 		 FROM pg_class c, pg_namespace n, pg_attribute a
 		 , (SELECT connamespace, conrelid, conkey, pg_get_constraintdef(oid) As consrc
-		    FROM pg_constraint) AS s
+			FROM pg_constraint) AS s
 		 WHERE n.nspname = $1
 		 AND c.relname = $2
 		 AND a.attname = $3
@@ -5884,7 +5884,7 @@ $$
 SELECT  replace(split_part(s.consrc, ' = ', 2), ')', '')::integer
 		 FROM pg_class c, pg_namespace n, pg_attribute a
 		 , (SELECT connamespace, conrelid, conkey, pg_get_constraintdef(oid) As consrc
-		    FROM pg_constraint) AS s
+			FROM pg_constraint) AS s
 		 WHERE n.nspname = $1
 		 AND c.relname = $2
 		 AND a.attname = $3
@@ -5905,7 +5905,7 @@ $$
 SELECT  replace(split_part(s.consrc, '''', 2), ')', '')::varchar
 		 FROM pg_class c, pg_namespace n, pg_attribute a
 		 , (SELECT connamespace, conrelid, conkey, pg_get_constraintdef(oid) As consrc
-		    FROM pg_constraint) AS s
+			FROM pg_constraint) AS s
 		 WHERE n.nspname = $1
 		 AND c.relname = $2
 		 AND a.attname = $3
@@ -6141,7 +6141,7 @@ CREATE OR REPLACE FUNCTION ST_Square(size float8, cell_i integer, cell_j integer
 
 -- Availability: 3.1.0
 CREATE OR REPLACE FUNCTION ST_HexagonGrid(size float8, bounds geometry, OUT geom geometry, OUT i integer, OUT j integer)
-    RETURNS SETOF record
+	RETURNS SETOF record
 	AS 'MODULE_PATHNAME', 'ST_ShapeGrid'
 	LANGUAGE 'c' IMMUTABLE STRICT
 	PARALLEL SAFE
@@ -6149,7 +6149,7 @@ CREATE OR REPLACE FUNCTION ST_HexagonGrid(size float8, bounds geometry, OUT geom
 
 -- Availability: 3.1.0
 CREATE OR REPLACE FUNCTION ST_SquareGrid(size float8, bounds geometry, OUT geom geometry, OUT i integer, OUT j integer)
-    RETURNS SETOF record
+	RETURNS SETOF record
 	AS 'MODULE_PATHNAME', 'ST_ShapeGrid'
 	LANGUAGE 'c' IMMUTABLE STRICT
 	PARALLEL SAFE
@@ -6415,14 +6415,14 @@ CREATE OR REPLACE FUNCTION _ST_AsX3D(int4, geometry, int4, int4, text)
 	RETURNS TEXT
 	AS 'MODULE_PATHNAME','LWGEOM_asX3D'
 	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE
-        _COST_MEDIUM;
+	_COST_MEDIUM;
 
 -- ST_AsX3D(geom, precision, options)
 CREATE OR REPLACE FUNCTION ST_AsX3D(geom geometry, maxdecimaldigits integer DEFAULT 15, options integer DEFAULT 0)
 	RETURNS TEXT
 	AS $$SELECT @extschema at ._ST_AsX3D(3,$1,$2,$3,'');$$
 	LANGUAGE 'sql' IMMUTABLE PARALLEL SAFE
-        _COST_MEDIUM;
+	_COST_MEDIUM;
 
 -----------------------------------------------------------------------
 -- ST_Angle
@@ -6432,7 +6432,7 @@ CREATE OR REPLACE FUNCTION ST_AsX3D(geom geometry, maxdecimaldigits integer DEFA
 CREATE OR REPLACE FUNCTION ST_Angle(line1 geometry, line2 geometry)
 	RETURNS float8 AS 'SELECT ST_Angle(St_StartPoint($1), ST_EndPoint($1), St_StartPoint($2), ST_EndPoint($2))'
 	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
-        _COST_LOW;
+	_COST_LOW;
 
 -- make views and spatial_ref_sys public viewable --
 GRANT SELECT ON TABLE geography_columns TO public;
@@ -6444,7 +6444,7 @@ CREATE OR REPLACE FUNCTION ST_3DLineInterpolatePoint(geometry, float8)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME', 'ST_3DLineInterpolatePoint'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-        _COST_LOW;
+	_COST_LOW;
 
 
 -- moved to separate file cause its invovled

commit acd1ac8d2b883d268465b069c7aba73577800f0c
Author: Raúl Marín <git at rmr.ninja>
Date:   Mon Apr 27 17:24:28 2020 +0200

    Update function costs

diff --git a/postgis/geography.sql.in b/postgis/geography.sql.in
index 0c3b49f..3b43617 100644
--- a/postgis/geography.sql.in
+++ b/postgis/geography.sql.in
@@ -103,34 +103,35 @@ CREATE OR REPLACE FUNCTION ST_AsText(geography)
 	RETURNS TEXT
 	AS 'MODULE_PATHNAME','LWGEOM_asText'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_LOW;
+	_COST_MEDIUM;
 
 -- Availability: 2.5.0
 CREATE OR REPLACE FUNCTION ST_AsText(geography, int4)
 	RETURNS TEXT
 	AS 'MODULE_PATHNAME','LWGEOM_asText'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_LOW;
+	_COST_MEDIUM;
 
 -- Availability: 1.5.0 - this is just a hack to prevent unknown from causing ambiguous name because of geography
 CREATE OR REPLACE FUNCTION ST_AsText(text)
 	RETURNS text AS
 	$$ SELECT @extschema at .ST_AsText($1::@extschema at .geometry);  $$
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+        _COST_MEDIUM;
 
 -- Availability: 1.5.0
 CREATE OR REPLACE FUNCTION ST_GeographyFromText(text)
 	RETURNS geography
 	AS 'MODULE_PATHNAME','geography_from_text'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_LOW;
+	_COST_MEDIUM;
 
 -- Availability: 1.5.0
 CREATE OR REPLACE FUNCTION ST_GeogFromText(text)
 	RETURNS geography
 	AS 'MODULE_PATHNAME','geography_from_text'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_LOW;
+	_COST_MEDIUM;
 
 -- Availability: 1.5.0
 CREATE OR REPLACE FUNCTION ST_GeogFromWKB(bytea)
@@ -407,13 +408,14 @@ CREATE OR REPLACE FUNCTION ST_AsSVG(geog geography, rel int4 DEFAULT 0, maxdecim
 	RETURNS text
 	AS 'MODULE_PATHNAME','geography_as_svg'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_LOW;
+	_COST_MEDIUM;
 
 -- Availability: 1.5.0 - this is just a hack to prevent unknown from causing ambiguous name because of geography
 CREATE OR REPLACE FUNCTION ST_AsSVG(text)
 	RETURNS text AS
 	$$ SELECT @extschema at .ST_AsSVG($1::@extschema at .geometry,0,15);  $$
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+        _COST_MEDIUM;
 
 --
 -- GML OUTPUT
@@ -428,20 +430,21 @@ CREATE OR REPLACE FUNCTION ST_AsGML(version int4, geog geography, maxdecimaldigi
 	RETURNS text
 	AS 'MODULE_PATHNAME','geography_as_gml'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_LOW;
+	_COST_MEDIUM;
 
 CREATE OR REPLACE FUNCTION ST_AsGML(geog geography, maxdecimaldigits int4 DEFAULT 15, options int4 DEFAULT 0, nprefix text DEFAULT 'gml', id text DEFAULT '')
 	RETURNS text
 	AS 'MODULE_PATHNAME','geography_as_gml'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_LOW;
+	_COST_MEDIUM;
 
 -- Availability: 1.5.0 - this is just a hack to prevent unknown from causing ambiguous name because of geography
 -- Change 2.0.0 to use base function
 CREATE OR REPLACE FUNCTION ST_AsGML(text)
 	RETURNS text AS
 	$$ SELECT @extschema at ._ST_AsGML(2,$1::@extschema at .geometry,15,0, NULL, NULL);  $$
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+        _COST_MEDIUM;
 
 --
 -- KML OUTPUT
@@ -453,14 +456,15 @@ CREATE OR REPLACE FUNCTION ST_AsKML(geog geography, maxdecimaldigits int4 DEFAUL
 	RETURNS text
 	AS 'MODULE_PATHNAME','geography_as_kml'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_LOW;
+	_COST_MEDIUM;
 
 -- Availability: 1.5.0 - this is just a hack to prevent unknown from causing ambiguous name because of geography
 -- Deprecated 2.0.0
 CREATE OR REPLACE FUNCTION ST_AsKML(text)
 	RETURNS text AS
 	$$ SELECT @extschema at .ST_AsKML($1::@extschema at .geometry, 15);  $$
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+        _COST_MEDIUM;
 
 --
 -- GeoJson Output
@@ -470,14 +474,15 @@ CREATE OR REPLACE FUNCTION ST_AsGeoJson(geog geography, maxdecimaldigits int4 DE
 	RETURNS text
 	AS 'MODULE_PATHNAME','geography_as_geojson'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_LOW;
+	_COST_MEDIUM;
 
 -- Availability: 1.5.0 - this is just a hack to prevent unknown from causing ambiguous name because of geography
 -- Deprecated in 2.0.0
 CREATE OR REPLACE FUNCTION ST_AsGeoJson(text)
 	RETURNS text AS
 	$$ SELECT @extschema at .ST_AsGeoJson($1::@extschema at .geometry, 9, 0);  $$
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+        _COST_MEDIUM;
 
 
 -- ---------- ---------- ---------- ---------- ---------- ---------- ----------
@@ -703,13 +708,14 @@ CREATE OR REPLACE FUNCTION ST_AsEWKT(geography)
 	RETURNS TEXT
 	AS 'MODULE_PATHNAME','LWGEOM_asEWKT'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_LOW;
+	_COST_MEDIUM;
 
 -- Availability: 2.0.0 - this is just a hack to prevent unknown from causing ambiguous name because of geography
 CREATE OR REPLACE FUNCTION ST_AsEWKT(text)
 	RETURNS text AS
 	$$ SELECT @extschema at .ST_AsEWKT($1::@extschema at .geometry);  $$
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+        _COST_MEDIUM;
 
 -- Availability: 2.0.0
 CREATE OR REPLACE FUNCTION GeometryType(geography)
diff --git a/postgis/postgis.sql.in b/postgis/postgis.sql.in
index 62f8f19..5ff0b9d 100644
--- a/postgis/postgis.sql.in
+++ b/postgis/postgis.sql.in
@@ -350,32 +350,38 @@ CREATE TYPE gidx (
 CREATE OR REPLACE FUNCTION geometry_lt(geom1 geometry, geom2 geometry)
 	RETURNS bool
 	AS 'MODULE_PATHNAME', 'lwgeom_lt'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_DEFAULT;
 
 CREATE OR REPLACE FUNCTION geometry_le(geom1 geometry, geom2 geometry)
 	RETURNS bool
 	AS 'MODULE_PATHNAME', 'lwgeom_le'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_DEFAULT;
 
 CREATE OR REPLACE FUNCTION geometry_gt(geom1 geometry, geom2 geometry)
 	RETURNS bool
 	AS 'MODULE_PATHNAME', 'lwgeom_gt'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_DEFAULT;
 
 CREATE OR REPLACE FUNCTION geometry_ge(geom1 geometry, geom2 geometry)
 	RETURNS bool
 	AS 'MODULE_PATHNAME', 'lwgeom_ge'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_DEFAULT;
 
 CREATE OR REPLACE FUNCTION geometry_eq(geom1 geometry, geom2 geometry)
 	RETURNS bool
 	AS 'MODULE_PATHNAME', 'lwgeom_eq'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_DEFAULT;
 
 CREATE OR REPLACE FUNCTION geometry_cmp(geom1 geometry, geom2 geometry)
 	RETURNS integer
 	AS 'MODULE_PATHNAME', 'lwgeom_cmp'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_DEFAULT;
 
 -- Availability: 3.0.0
 CREATE OR REPLACE FUNCTION geometry_sortsupport(internal)
@@ -582,7 +588,7 @@ CREATE OR REPLACE FUNCTION geometry_overlaps(geom1 geometry, geom2 geometry)
 	RETURNS boolean
 	AS 'MODULE_PATHNAME' ,'gserialized_overlaps_2d'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_LOW;
+	_COST_DEFAULT;
 
 -- Availability: 0.1.0
 -- Changed: 2.0.0 use gserialized selectivity estimators
@@ -598,7 +604,7 @@ CREATE OR REPLACE FUNCTION geometry_same(geom1 geometry, geom2 geometry)
 	RETURNS boolean
 	AS 'MODULE_PATHNAME' ,'gserialized_same_2d'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_LOW;
+	_COST_DEFAULT;
 
 -- Availability: 0.1.0
 CREATE OPERATOR ~= (
@@ -619,8 +625,9 @@ CREATE OR REPLACE FUNCTION geometry_distance_centroid(geom1 geometry, geom2 geom
 -- Availability: 2.0.0
 CREATE OR REPLACE FUNCTION geometry_distance_box(geom1 geometry, geom2 geometry)
 	RETURNS float8
-  AS 'MODULE_PATHNAME', 'gserialized_distance_box_2d'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	AS 'MODULE_PATHNAME', 'gserialized_distance_box_2d'
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_DEFAULT;
 
 -- Availability: 2.0.0
 CREATE OPERATOR <-> (
@@ -638,13 +645,15 @@ CREATE OPERATOR <#> (
 CREATE OR REPLACE FUNCTION geometry_contains(geom1 geometry, geom2 geometry)
 	RETURNS bool
 	AS 'MODULE_PATHNAME', 'gserialized_contains_2d'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_DEFAULT;
 
 -- Availability: 2.0.0
 CREATE OR REPLACE FUNCTION geometry_within(geom1 geometry, geom2 geometry)
 	RETURNS bool
 	AS 'MODULE_PATHNAME', 'gserialized_within_2d'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_DEFAULT;
 
 -- Availability: 0.1.0
 CREATE OPERATOR @ (
@@ -664,7 +673,8 @@ CREATE OPERATOR ~ (
 CREATE OR REPLACE FUNCTION geometry_left(geom1 geometry, geom2 geometry)
 	RETURNS bool
 	AS 'MODULE_PATHNAME', 'gserialized_left_2d'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_DEFAULT;
 
 -- Availability: 0.1.0
 CREATE OPERATOR << (
@@ -677,7 +687,8 @@ CREATE OPERATOR << (
 CREATE OR REPLACE FUNCTION geometry_overleft(geom1 geometry, geom2 geometry)
 	RETURNS bool
 	AS 'MODULE_PATHNAME', 'gserialized_overleft_2d'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_DEFAULT;
 
 -- Availability: 0.1.0
 CREATE OPERATOR &< (
@@ -689,7 +700,8 @@ CREATE OPERATOR &< (
 CREATE OR REPLACE FUNCTION geometry_below(geom1 geometry, geom2 geometry)
 	RETURNS bool
 	AS 'MODULE_PATHNAME', 'gserialized_below_2d'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_DEFAULT;
 
 -- Availability: 0.1.0
 CREATE OPERATOR <<| (
@@ -702,7 +714,8 @@ CREATE OPERATOR <<| (
 CREATE OR REPLACE FUNCTION geometry_overbelow(geom1 geometry, geom2 geometry)
 	RETURNS bool
 	AS 'MODULE_PATHNAME', 'gserialized_overbelow_2d'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_DEFAULT;
 
 -- Availability: 0.1.0
 CREATE OPERATOR &<| (
@@ -714,7 +727,8 @@ CREATE OPERATOR &<| (
 CREATE OR REPLACE FUNCTION geometry_overright(geom1 geometry, geom2 geometry)
 	RETURNS bool
 	AS 'MODULE_PATHNAME', 'gserialized_overright_2d'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_DEFAULT;
 
 -- Availability: 0.1.0
 CREATE OPERATOR &> (
@@ -726,7 +740,8 @@ CREATE OPERATOR &> (
 CREATE OR REPLACE FUNCTION geometry_right(geom1 geometry, geom2 geometry)
 	RETURNS bool
 	AS 'MODULE_PATHNAME', 'gserialized_right_2d'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_DEFAULT;
 
 -- Availability: 0.1.0
 CREATE OPERATOR >> (
@@ -739,7 +754,8 @@ CREATE OPERATOR >> (
 CREATE OR REPLACE FUNCTION geometry_overabove(geom1 geometry, geom2 geometry)
 	RETURNS bool
 	AS 'MODULE_PATHNAME', 'gserialized_overabove_2d'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_DEFAULT;
 
 -- Availability: 0.1.0
 CREATE OPERATOR |&> (
@@ -751,7 +767,8 @@ CREATE OPERATOR |&> (
 CREATE OR REPLACE FUNCTION geometry_above(geom1 geometry, geom2 geometry)
 	RETURNS bool
 	AS 'MODULE_PATHNAME', 'gserialized_above_2d'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_DEFAULT;
 
 -- Availability: 0.1.0
 CREATE OPERATOR |>> (
@@ -799,43 +816,50 @@ CREATE OPERATOR CLASS gist_geometry_ops_2d
 CREATE OR REPLACE FUNCTION geometry_gist_consistent_nd(internal,geometry,int4)
 	RETURNS bool
 	AS 'MODULE_PATHNAME' ,'gserialized_gist_consistent'
-	LANGUAGE 'c' PARALLEL SAFE;
+	LANGUAGE 'c' PARALLEL SAFE
+	_COST_DEFAULT;
 
 -- Availability: 2.0.0
 CREATE OR REPLACE FUNCTION geometry_gist_compress_nd(internal)
 	RETURNS internal
 	AS 'MODULE_PATHNAME','gserialized_gist_compress'
-	LANGUAGE 'c' PARALLEL SAFE;
+	LANGUAGE 'c' PARALLEL SAFE
+	_COST_DEFAULT;
 
 -- Availability: 2.0.0
 CREATE OR REPLACE FUNCTION geometry_gist_penalty_nd(internal,internal,internal)
 	RETURNS internal
 	AS 'MODULE_PATHNAME' ,'gserialized_gist_penalty'
-	LANGUAGE 'c' PARALLEL SAFE;
+	LANGUAGE 'c' PARALLEL SAFE
+	_COST_DEFAULT;
 
 -- Availability: 2.0.0
 CREATE OR REPLACE FUNCTION geometry_gist_picksplit_nd(internal, internal)
 	RETURNS internal
 	AS 'MODULE_PATHNAME' ,'gserialized_gist_picksplit'
-	LANGUAGE 'c' PARALLEL SAFE;
+	LANGUAGE 'c' PARALLEL SAFE
+	_COST_DEFAULT;
 
 -- Availability: 2.0.0
 CREATE OR REPLACE FUNCTION geometry_gist_union_nd(bytea, internal)
 	RETURNS internal
 	AS 'MODULE_PATHNAME' ,'gserialized_gist_union'
-	LANGUAGE 'c' PARALLEL SAFE;
+	LANGUAGE 'c' PARALLEL SAFE
+	_COST_DEFAULT;
 
 -- Availability: 2.0.0
 CREATE OR REPLACE FUNCTION geometry_gist_same_nd(geometry, geometry, internal)
 	RETURNS internal
 	AS 'MODULE_PATHNAME' ,'gserialized_gist_same'
-	LANGUAGE 'c' PARALLEL SAFE;
+	LANGUAGE 'c' PARALLEL SAFE
+	_COST_DEFAULT;
 
 -- Availability: 2.0.0
 CREATE OR REPLACE FUNCTION geometry_gist_decompress_nd(internal)
 	RETURNS internal
 	AS 'MODULE_PATHNAME' ,'gserialized_gist_decompress'
-	LANGUAGE 'c' PARALLEL SAFE;
+	LANGUAGE 'c' PARALLEL SAFE
+	_COST_DEFAULT;
 
 -- ---------- ---------- ---------- ---------- ---------- ---------- ----------
 -- N-D GEOMETRY Operators
@@ -845,7 +869,8 @@ CREATE OR REPLACE FUNCTION geometry_gist_decompress_nd(internal)
 CREATE OR REPLACE FUNCTION geometry_overlaps_nd(geometry, geometry)
 	RETURNS boolean
 	AS 'MODULE_PATHNAME' ,'gserialized_overlaps'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_DEFAULT;
 
 -- Availability: 2.0.0
 CREATE OPERATOR &&& (
@@ -859,7 +884,8 @@ CREATE OPERATOR &&& (
 CREATE OR REPLACE FUNCTION geometry_contains_nd(geometry, geometry)
 	RETURNS boolean
 	AS 'MODULE_PATHNAME' ,'gserialized_contains'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_DEFAULT;
 
 -- Availability: 3.0.0
 CREATE OPERATOR ~~ (
@@ -873,7 +899,8 @@ CREATE OPERATOR ~~ (
 CREATE OR REPLACE FUNCTION geometry_within_nd(geometry, geometry)
 	RETURNS boolean
 	AS 'MODULE_PATHNAME' ,'gserialized_within'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_DEFAULT;
 
 -- Availability: 3.0.0
 CREATE OPERATOR @@ (
@@ -887,7 +914,8 @@ CREATE OPERATOR @@ (
 CREATE OR REPLACE FUNCTION geometry_same_nd(geometry, geometry)
 	RETURNS boolean
 	AS 'MODULE_PATHNAME' ,'gserialized_same'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_DEFAULT;
 
 -- Availability: 3.0.0
 CREATE OPERATOR ~~= (
@@ -919,7 +947,8 @@ CREATE OPERATOR <<->> (
 CREATE OR REPLACE FUNCTION geometry_distance_cpa(geometry, geometry)
 	RETURNS float8
 	AS 'MODULE_PATHNAME', 'ST_DistanceCPA'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_HIGH;
 
 -- Availability: 2.2.0
 CREATE OPERATOR |=| (
@@ -932,7 +961,8 @@ CREATE OPERATOR |=| (
 CREATE OR REPLACE FUNCTION geometry_gist_distance_nd(internal,geometry,int4)
 	RETURNS float8
 	AS 'MODULE_PATHNAME', 'gserialized_gist_distance'
-	LANGUAGE 'c' PARALLEL SAFE;
+	LANGUAGE 'c' PARALLEL SAFE
+	_COST_DEFAULT;
 
 -- Availability: 2.0.0
 CREATE OPERATOR CLASS gist_geometry_ops_nd
@@ -963,13 +993,15 @@ CREATE OPERATOR CLASS gist_geometry_ops_nd
 CREATE OR REPLACE FUNCTION ST_ShiftLongitude(geometry)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME', 'LWGEOM_longitude_shift'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 2.3.0
 CREATE OR REPLACE FUNCTION ST_WrapX(geom geometry, wrap float8, move float8)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME', 'ST_WrapX'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -----------------------------------------------------------------------------
 --  BOX3D FUNCTIONS
@@ -979,37 +1011,43 @@ CREATE OR REPLACE FUNCTION ST_WrapX(geom geometry, wrap float8, move float8)
 CREATE OR REPLACE FUNCTION ST_XMin(box3d)
 	RETURNS FLOAT8
 	AS 'MODULE_PATHNAME','BOX3D_xmin'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_DEFAULT;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_YMin(box3d)
 	RETURNS FLOAT8
 	AS 'MODULE_PATHNAME','BOX3D_ymin'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_DEFAULT;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_ZMin(box3d)
 	RETURNS FLOAT8
 	AS 'MODULE_PATHNAME','BOX3D_zmin'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_DEFAULT;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_XMax(box3d)
 	RETURNS FLOAT8
 	AS 'MODULE_PATHNAME','BOX3D_xmax'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_DEFAULT;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_YMax(box3d)
 	RETURNS FLOAT8
 	AS 'MODULE_PATHNAME','BOX3D_ymax'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_DEFAULT;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_ZMax(box3d)
 	RETURNS FLOAT8
 	AS 'MODULE_PATHNAME','BOX3D_zmax'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_DEFAULT;
 
 -----------------------------------------------------------------------------
 --  BOX2D FUNCTIONS
@@ -1019,25 +1057,29 @@ CREATE OR REPLACE FUNCTION ST_ZMax(box3d)
 CREATE OR REPLACE FUNCTION ST_Expand(box2d,float8)
 	RETURNS box2d
 	AS 'MODULE_PATHNAME', 'BOX2D_expand'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_DEFAULT;
 
 -- Availability: 2.3.0
 CREATE OR REPLACE FUNCTION ST_Expand(box box2d, dx float8, dy float8)
 	RETURNS box2d
 	AS 'MODULE_PATHNAME', 'BOX2D_expand'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_DEFAULT;
 
 -- Availability: 1.5.0
 CREATE OR REPLACE FUNCTION postgis_getbbox(geometry)
 	RETURNS box2d
 	AS 'MODULE_PATHNAME','LWGEOM_to_BOX2DF'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_DEFAULT;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_MakeBox2d(geom1 geometry, geom2 geometry)
 	RETURNS box2d
 	AS 'MODULE_PATHNAME', 'BOX2D_construct'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_DEFAULT;
 
 -----------------------------------------------------------------------
 -- ST_ESTIMATED_EXTENT( <schema name>, <table name>, <column name> )
@@ -1110,19 +1152,22 @@ LANGUAGE 'plpgsql' STABLE STRICT PARALLEL SAFE;
 CREATE OR REPLACE FUNCTION postgis_addbbox(geometry)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME','LWGEOM_addBBOX'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+        _COST_LOW;
 
 -- Availability: 1.5.0
 CREATE OR REPLACE FUNCTION postgis_dropbbox(geometry)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME','LWGEOM_dropBBOX'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+        _COST_LOW;
 
 -- Availability: 1.5.0
 CREATE OR REPLACE FUNCTION postgis_hasbbox(geometry)
 	RETURNS bool
 	AS 'MODULE_PATHNAME', 'LWGEOM_hasBBOX'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+        _COST_DEFAULT;
 
 -- Availability: 2.5.0
 CREATE OR REPLACE FUNCTION ST_QuantizeCoordinates(g geometry, prec_x int, prec_y int DEFAULT NULL, prec_z int DEFAULT NULL, prec_m int DEFAULT NULL)
@@ -1140,7 +1185,7 @@ CREATE OR REPLACE FUNCTION ST_MemSize(geometry)
 	RETURNS int4
 	AS 'MODULE_PATHNAME', 'LWGEOM_mem_size'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_LOW;
+	_COST_DEFAULT;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_Summary(geometry)
@@ -1439,27 +1484,28 @@ CREATE OR REPLACE FUNCTION ST_Reverse(geometry)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME', 'LWGEOM_reverse'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_MEDIUM;
+	_COST_LOW;
 
 -- Availability: 2.4.0
 CREATE OR REPLACE FUNCTION ST_ForcePolygonCW(geometry)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME', 'LWGEOM_force_clockwise_poly'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_MEDIUM;
+	_COST_LOW;
 
 -- Availability: 2.4.0
 CREATE OR REPLACE FUNCTION ST_ForcePolygonCCW(geometry)
 	RETURNS geometry
 	AS $$ SELECT @extschema at .ST_Reverse(@extschema at .ST_ForcePolygonCW($1)) $$
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_ForceRHR(geometry)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME', 'LWGEOM_force_clockwise_poly'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_MEDIUM;
+	_COST_LOW;
 
 -- Availability: 1.5.0
 CREATE OR REPLACE FUNCTION postgis_noop(geometry)
@@ -1480,7 +1526,7 @@ CREATE OR REPLACE FUNCTION ST_Normalize(geom geometry)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME', 'ST_Normalize'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_LOW;
+	_COST_MEDIUM;
 
 -- Deprecation in 1.5.0
 CREATE OR REPLACE FUNCTION ST_zmflag(geometry)
@@ -1501,21 +1547,21 @@ CREATE OR REPLACE FUNCTION ST_AsEWKT(geometry)
 	RETURNS TEXT
 	AS 'MODULE_PATHNAME','LWGEOM_asEWKT'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_LOW;
+	_COST_MEDIUM;
 
 -- Availability: 2.2.0
 CREATE OR REPLACE FUNCTION ST_AsTWKB(geom geometry, prec int4 default NULL, prec_z int4 default NULL, prec_m int4 default NULL, with_sizes boolean default NULL, with_boxes boolean default NULL)
 	RETURNS bytea
 	AS 'MODULE_PATHNAME','TWKBFromLWGEOM'
 	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE
-	_COST_MEDIUM;
+	_COST_LOW;
 
 -- Availability: 2.2.0
 CREATE OR REPLACE FUNCTION ST_AsTWKB(geom geometry[], ids bigint[], prec int4 default NULL, prec_z int4 default NULL, prec_m int4 default NULL, with_sizes boolean default NULL, with_boxes boolean default NULL)
 	RETURNS bytea
 	AS 'MODULE_PATHNAME','TWKBFromLWGEOMArray'
 	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE
-	_COST_MEDIUM;
+	_COST_LOW;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_AsEWKB(geometry)
@@ -1762,95 +1808,107 @@ CREATE OR REPLACE FUNCTION ST_Affine(geometry,float8,float8,float8,float8,float8
 	RETURNS geometry
 	AS 'MODULE_PATHNAME', 'LWGEOM_affine'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_MEDIUM; -- reset cost, see #3675
+	_COST_LOW;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_Affine(geometry,float8,float8,float8,float8,float8,float8)
 	RETURNS geometry
 	AS 'SELECT @extschema at .ST_Affine($1,  $2, $3, 0,  $4, $5, 0,  0, 0, 1,  $6, $7, 0)'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_Rotate(geometry,float8)
 	RETURNS geometry
 	AS 'SELECT @extschema at .ST_Affine($1,  cos($2), -sin($2), 0,  sin($2), cos($2), 0,  0, 0, 1,  0, 0, 0)'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 2.0.0
 CREATE OR REPLACE FUNCTION ST_Rotate(geometry,float8,float8,float8)
 	RETURNS geometry
 	AS 'SELECT @extschema at .ST_Affine($1,  cos($2), -sin($2), 0,  sin($2),  cos($2), 0, 0, 0, 1,	$3 - cos($2) * $3 + sin($2) * $4, $4 - sin($2) * $3 - cos($2) * $4, 0)'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 2.0.0
 CREATE OR REPLACE FUNCTION ST_Rotate(geometry,float8,geometry)
 	RETURNS geometry
 	AS 'SELECT @extschema at .ST_Affine($1,  cos($2), -sin($2), 0,  sin($2),  cos($2), 0, 0, 0, 1, @extschema at .ST_X($3) - cos($2) * @extschema at .ST_X($3) + sin($2) * @extschema at .ST_Y($3), @extschema at .ST_Y($3) - sin($2) * @extschema at .ST_X($3) - cos($2) * @extschema at .ST_Y($3), 0)'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_RotateZ(geometry,float8)
 	RETURNS geometry
 	AS 'SELECT @extschema at .ST_Rotate($1, $2)'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_RotateX(geometry,float8)
 	RETURNS geometry
 	AS 'SELECT @extschema at .ST_Affine($1, 1, 0, 0, 0, cos($2), -sin($2), 0, sin($2), cos($2), 0, 0, 0)'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_RotateY(geometry,float8)
 	RETURNS geometry
 	AS 'SELECT @extschema at .ST_Affine($1,  cos($2), 0, sin($2),  0, 1, 0,  -sin($2), 0, cos($2), 0,  0, 0)'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_Translate(geometry,float8,float8,float8)
 	RETURNS geometry
 	AS 'SELECT @extschema at .ST_Affine($1, 1, 0, 0, 0, 1, 0, 0, 0, 1, $2, $3, $4)'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_Translate(geometry,float8,float8)
 	RETURNS geometry
 	AS 'SELECT @extschema at .ST_Translate($1, $2, $3, 0)'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 2.2.0
 CREATE OR REPLACE FUNCTION ST_Scale(geometry,geometry)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME', 'ST_Scale'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_MEDIUM;
+	_COST_LOW;
 
 -- Availability: 2.5.0
 CREATE OR REPLACE FUNCTION ST_Scale(geometry,geometry,origin geometry)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME', 'ST_Scale'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_MEDIUM;
+	_COST_LOW;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_Scale(geometry,float8,float8,float8)
 	RETURNS geometry
 	--AS 'SELECT ST_Affine($1,  $2, 0, 0,  0, $3, 0,  0, 0, $4,  0, 0, 0)'
 	AS 'SELECT @extschema at .ST_Scale($1, @extschema at .ST_MakePoint($2, $3, $4))'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+        _COST_LOW;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_Scale(geometry,float8,float8)
 	RETURNS geometry
 	AS 'SELECT @extschema at .ST_Scale($1, $2, $3, 1)'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+        _COST_LOW;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_Transscale(geometry,float8,float8,float8,float8)
 	RETURNS geometry
 	AS 'SELECT @extschema at .ST_Affine($1,  $4, 0, 0,  0, $5, 0,
 		0, 0, 1,  $2 * $4, $3 * $5, 0)'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+        _COST_LOW;
 
 -----------------------------------------------------------------------
 -- Dumping
@@ -1886,7 +1944,7 @@ CREATE OR REPLACE FUNCTION ST_DumpPoints(geometry)
     RETURNS SETOF geometry_dump
 	AS 'MODULE_PATHNAME', 'LWGEOM_dumppoints'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	COST 100;
+	_COST_HIGH;
 
 -------------------------------------------------------------------
 -- SPATIAL_REF_SYS
@@ -2680,13 +2738,13 @@ CREATE OR REPLACE FUNCTION ST_SetSRID(geom geometry, srid int4)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME','LWGEOM_set_srid'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_LOW;
+	_COST_DEFAULT;
 
 CREATE OR REPLACE FUNCTION ST_SRID(geom geometry)
 	RETURNS int4
 	AS 'MODULE_PATHNAME','LWGEOM_get_srid'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_LOW;
+	_COST_DEFAULT;
 
 CREATE OR REPLACE FUNCTION postgis_transform_geometry(geom geometry, text, text, int)
 	RETURNS geometry
@@ -2699,27 +2757,30 @@ CREATE OR REPLACE FUNCTION ST_Transform(geometry,integer)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME','transform'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_MEDIUM;
+	_COST_HIGH;
 
 -- Availability: 2.3.0
 CREATE OR REPLACE FUNCTION ST_Transform(geom geometry, to_proj text)
 	RETURNS geometry AS
 	'SELECT @extschema at .postgis_transform_geometry($1, proj4text, $2, 0)
 	FROM spatial_ref_sys WHERE srid=@extschema at .ST_SRID($1);'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_HIGH;
 
 -- Availability: 2.3.0
 CREATE OR REPLACE FUNCTION ST_Transform(geom geometry, from_proj text, to_proj text)
 	RETURNS geometry AS
 	'SELECT @extschema at .postgis_transform_geometry($1, $2, $3, 0)'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_HIGH;
 
 -- Availability: 2.3.0
 CREATE OR REPLACE FUNCTION ST_Transform(geom geometry, from_proj text, to_srid integer)
 	RETURNS geometry AS
 	'SELECT @extschema at .postgis_transform_geometry($1, $2, proj4text, $3)
 	FROM spatial_ref_sys WHERE srid=$3;'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_HIGH;
 
 -----------------------------------------------------------------------
 -- POSTGIS_VERSION()
@@ -3203,17 +3264,17 @@ CREATE OR REPLACE FUNCTION ST_Simplify(geometry, float8)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME', 'LWGEOM_simplify2d'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_HIGH;
+	_COST_MEDIUM;
 
 -- Availability: 2.2.0
 CREATE OR REPLACE FUNCTION ST_Simplify(geometry, float8, boolean)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME', 'LWGEOM_simplify2d'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_HIGH;
+	_COST_MEDIUM;
 
 -- Availability: 2.2.0
-CREATE OR REPLACE FUNCTION ST_SimplifyVW(geometry,  float8)
+CREATE OR REPLACE FUNCTION ST_SimplifyVW(geometry, float8)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME', 'LWGEOM_SetEffectiveArea'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
@@ -3224,21 +3285,21 @@ CREATE OR REPLACE FUNCTION ST_SetEffectiveArea(geometry,  float8 default -1, int
 	RETURNS geometry
 	AS 'MODULE_PATHNAME', 'LWGEOM_SetEffectiveArea'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_MEDIUM;
+	_COST_HIGH;
 
 -- Availability: 2.5.0
 CREATE OR REPLACE FUNCTION ST_FilterByM(geometry, double precision, double precision default null, boolean default false)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME', 'LWGEOM_FilterByM'
 	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE
-	_COST_MEDIUM;
+	_COST_LOW;
 
 -- Availability: 2.5.0
 CREATE OR REPLACE FUNCTION ST_ChaikinSmoothing(geometry, integer default 1, boolean default false)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME', 'LWGEOM_ChaikinSmoothing'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_HIGH;
+	_COST_MEDIUM;
 
 -- ST_SnapToGrid(input, xoff, yoff, xsize, ysize)
 -- Availability: 1.2.2
@@ -3246,7 +3307,7 @@ CREATE OR REPLACE FUNCTION ST_SnapToGrid(geometry, float8, float8, float8, float
 	RETURNS geometry
 	AS 'MODULE_PATHNAME', 'LWGEOM_snaptogrid'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_MEDIUM;
+	_COST_LOW;
 
 -- ST_SnapToGrid(input, xsize, ysize) # offsets=0
 -- Availability: 1.2.2
@@ -3254,14 +3315,15 @@ CREATE OR REPLACE FUNCTION ST_SnapToGrid(geometry, float8, float8)
 	RETURNS geometry
 	AS 'SELECT @extschema at .ST_SnapToGrid($1, 0, 0, $2, $3)'
 	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_MEDIUM;
+	_COST_LOW;
 
 -- ST_SnapToGrid(input, size) # xsize=ysize=size, offsets=0
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_SnapToGrid(geometry, float8)
 	RETURNS geometry
 	AS 'SELECT @extschema at .ST_SnapToGrid($1, 0, 0, $2, $2)'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- ST_SnapToGrid(input, point_offsets, xsize, ysize, zsize, msize)
 -- Availability: 1.2.2
@@ -3269,7 +3331,7 @@ CREATE OR REPLACE FUNCTION ST_SnapToGrid(geom1 geometry, geom2 geometry, float8,
 	RETURNS geometry
 	AS 'MODULE_PATHNAME', 'LWGEOM_snaptogrid_pointoff'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_MEDIUM;
+	_COST_LOW;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_Segmentize(geometry, float8)
@@ -3369,7 +3431,8 @@ CREATE OR REPLACE FUNCTION ST_Buffer(geom geometry, radius float8, options text
 CREATE OR REPLACE FUNCTION ST_Buffer(geom geometry, radius float8, quadsegs integer)
 	RETURNS geometry
 	AS $$ SELECT @extschema at .ST_Buffer($1, $2, CAST('quad_segs='||CAST($3 AS text) as text)) $$
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_HIGH;
 
 -- Availability: 2.3.0
 CREATE OR REPLACE FUNCTION ST_MinimumBoundingRadius(geometry, OUT center geometry, OUT radius double precision)
@@ -3404,14 +3467,14 @@ CREATE OR REPLACE FUNCTION ST_GeneratePoints(area geometry, npoints integer)
 RETURNS geometry
 	AS 'MODULE_PATHNAME','ST_GeneratePoints'
 	LANGUAGE 'c' VOLATILE STRICT PARALLEL SAFE
-	_COST_HIGH;
+	_COST_MEDIUM;
 
 -- Availability: 3.0.0
 CREATE OR REPLACE FUNCTION ST_GeneratePoints(area geometry, npoints integer, seed integer)
 RETURNS geometry
 	AS 'MODULE_PATHNAME','ST_GeneratePoints'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_HIGH;
+	_COST_MEDIUM;
 
 -- PostGIS equivalent function: convexhull(geometry)
 CREATE OR REPLACE FUNCTION ST_ConvexHull(geometry)
@@ -3456,13 +3519,15 @@ CREATE OR REPLACE FUNCTION ST_IsValidReason(geometry, int4)
 		SELECT (@extschema at .ST_isValidDetail($1, $2)).*
 	) foo
 	$$
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_HIGH;
 
 -- Availability: 2.0.0
 CREATE OR REPLACE FUNCTION ST_IsValid(geometry, int4)
 	RETURNS boolean
 	AS 'SELECT (@extschema at .ST_isValidDetail($1, $2)).valid'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_HIGH;
 
 -- Availability: 1.5.0
 CREATE OR REPLACE FUNCTION ST_HausdorffDistance(geom1 geometry, geom2 geometry)
@@ -3545,14 +3610,14 @@ CREATE OR REPLACE FUNCTION ST_RemoveRepeatedPoints(geom geometry, tolerance floa
 	RETURNS geometry
 	AS 'MODULE_PATHNAME', 'ST_RemoveRepeatedPoints'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_MEDIUM;
+	_COST_LOW;
 
 -- Availability: 2.2.0
 CREATE OR REPLACE FUNCTION ST_ClipByBox2d(geom geometry, box box2d)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME', 'ST_ClipByBox2d'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_HIGH;
+	_COST_MEDIUM;
 
 -- Availability: 2.2.0
 CREATE OR REPLACE FUNCTION ST_Subdivide(geom geometry, maxvertices integer DEFAULT 256)
@@ -3762,19 +3827,22 @@ CREATE OR REPLACE FUNCTION ST_VoronoiLines(g1 geometry, tolerance float8 DEFAULT
 CREATE OR REPLACE FUNCTION ST_CombineBBox(box3d,geometry)
 	RETURNS box3d
 	AS 'MODULE_PATHNAME', 'BOX3D_combine'
-	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 2.3.0
 CREATE OR REPLACE FUNCTION ST_CombineBBox(box3d,box3d)
 	RETURNS box3d
 	AS 'MODULE_PATHNAME', 'BOX3D_combine_BOX3D'
-	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 2.2.0
 CREATE OR REPLACE FUNCTION ST_CombineBbox(box2d,geometry)
 	RETURNS box2d
 	AS 'MODULE_PATHNAME', 'BOX2D_combine'
-	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 1.2.2
 -- Changed: 2.2.0 to use non-deprecated ST_CombineBBox (r13535)
@@ -3803,7 +3871,8 @@ CREATE AGGREGATE ST_3DExtent(geometry)(
 CREATE OR REPLACE FUNCTION ST_Collect(geom1 geometry, geom2 geometry)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME', 'LWGEOM_collect'
-	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 1.2.2
 -- Changed: 2.3.0 to support PostgreSQL 9.6
@@ -3819,7 +3888,8 @@ CREATE AGGREGATE ST_MemCollect(geometry)(
 CREATE OR REPLACE FUNCTION ST_Collect(geometry[])
 	RETURNS geometry
 	AS 'MODULE_PATHNAME', 'LWGEOM_collect_garray'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 1.2.2
 -- Changed: 2.3.0 to support PostgreSQL 9.6
@@ -3837,69 +3907,79 @@ CREATE AGGREGATE ST_MemUnion(geometry) (
 CREATE OR REPLACE FUNCTION pgis_geometry_accum_transfn(internal, geometry)
 	RETURNS internal
 	AS 'MODULE_PATHNAME'
-	LANGUAGE 'c' PARALLEL SAFE;
+	LANGUAGE 'c' PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 2.2
 -- Changed: 2.5.0 use 'internal' transfer type
 CREATE OR REPLACE FUNCTION pgis_geometry_accum_transfn(internal, geometry, float8)
 	RETURNS internal
 	AS 'MODULE_PATHNAME'
-	LANGUAGE 'c' PARALLEL SAFE;
+	LANGUAGE 'c' PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 2.3
 -- Changed: 2.5.0 use 'internal' transfer type
 CREATE OR REPLACE FUNCTION pgis_geometry_accum_transfn(internal, geometry, float8, int)
 	RETURNS internal
 	AS 'MODULE_PATHNAME'
-	LANGUAGE 'c' PARALLEL SAFE;
+	LANGUAGE 'c' PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 1.4.0
 -- Changed: 2.5.0 use 'internal' transfer type
 CREATE OR REPLACE FUNCTION pgis_geometry_union_finalfn(internal)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME'
-	LANGUAGE 'c' PARALLEL SAFE;
+	LANGUAGE 'c' PARALLEL SAFE
+	_COST_HIGH;
 
 -- Availability: 1.4.0
 -- Changed: 2.5.0 use 'internal' transfer type
 CREATE OR REPLACE FUNCTION pgis_geometry_collect_finalfn(internal)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME'
-	LANGUAGE 'c' PARALLEL SAFE;
+	LANGUAGE 'c' PARALLEL SAFE
+	_COST_MEDIUM;
 
 -- Availability: 1.4.0
 -- Changed: 2.5.0 use 'internal' transfer type
 CREATE OR REPLACE FUNCTION pgis_geometry_polygonize_finalfn(internal)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME'
-	LANGUAGE 'c' PARALLEL SAFE;
+	LANGUAGE 'c' PARALLEL SAFE
+	_COST_MEDIUM;
 
 -- Availability: 2.2
 -- Changed: 2.5.0 use 'internal' transfer type
 CREATE OR REPLACE FUNCTION pgis_geometry_clusterintersecting_finalfn(internal)
 	RETURNS geometry[]
 	AS 'MODULE_PATHNAME'
-	LANGUAGE 'c' PARALLEL SAFE;
+	LANGUAGE 'c' PARALLEL SAFE
+	_COST_MEDIUM;
 
 -- Availability: 2.2
 -- Changed: 2.5.0 use 'internal' transfer type
 CREATE OR REPLACE FUNCTION pgis_geometry_clusterwithin_finalfn(internal)
 	RETURNS geometry[]
 	AS 'MODULE_PATHNAME'
-	LANGUAGE 'c' PARALLEL SAFE;
+	LANGUAGE 'c' PARALLEL SAFE
+	_COST_MEDIUM;
 
 -- Availability: 1.4.0
 -- Changed: 2.5.0 use 'internal' transfer type
 CREATE OR REPLACE FUNCTION pgis_geometry_makeline_finalfn(internal)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME'
-	LANGUAGE 'c' PARALLEL SAFE;
+	LANGUAGE 'c' PARALLEL SAFE
+	_COST_MEDIUM;
 
 -- Availability: 1.4.0
 CREATE OR REPLACE FUNCTION ST_Union (geometry[])
 	RETURNS geometry
 	AS 'MODULE_PATHNAME','pgis_union_geometry_array'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_HIGH;
 
 -- Availability: 1.2.2
 -- Changed but upgrader helper no touch: 2.4.0 marked parallel safe
@@ -4425,7 +4505,7 @@ CREATE OR REPLACE FUNCTION ST_IsCollection(geometry)
 	RETURNS boolean
 	AS 'MODULE_PATHNAME', 'ST_IsCollection'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_MEDIUM;
+	_COST_DEFAULT;
 
 -- Deprecation in 1.2.3
 -- TODO: drop in 2.0.0 !
@@ -4455,13 +4535,15 @@ CREATE OR REPLACE FUNCTION ST_GeomFromGML(text, int4)
 CREATE OR REPLACE FUNCTION ST_GeomFromGML(text)
 	RETURNS geometry
 	AS 'SELECT @extschema at ._ST_GeomFromGML($1, 0)'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+        _COST_MEDIUM;
 
 -- Availability: 1.5.0
 CREATE OR REPLACE FUNCTION ST_GMLToSQL(text)
 	RETURNS geometry
 	AS 'SELECT @extschema at ._ST_GeomFromGML($1, 0)'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+        _COST_MEDIUM;
 
 -- Availability: 2.0.0
 CREATE OR REPLACE FUNCTION ST_GMLToSQL(text, int4)
@@ -4529,7 +4611,7 @@ CREATE OR REPLACE FUNCTION ST_AsEncodedPolyline(geom geometry, nprecision int4 D
 	RETURNS TEXT
 	AS 'MODULE_PATHNAME','LWGEOM_asEncodedPolyline'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_LOW;
+	_COST_MEDIUM;
 
 ------------------------------------------------------------------------
 
@@ -4542,7 +4624,7 @@ CREATE OR REPLACE FUNCTION ST_AsSVG(geom geometry, rel int4 DEFAULT 0, maxdecima
 	RETURNS TEXT
 	AS 'MODULE_PATHNAME','LWGEOM_asSVG'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_LOW;
+	_COST_MEDIUM;
 
 -----------------------------------------------------------------------
 -- GML OUTPUT
@@ -4565,7 +4647,8 @@ CREATE OR REPLACE FUNCTION _ST_AsGML(int4, geometry, int4, int4, text, text)
 CREATE OR REPLACE FUNCTION ST_AsGML(geom geometry, maxdecimaldigits int4 DEFAULT 15, options int4 DEFAULT 0)
 	RETURNS TEXT
 	AS $$ SELECT @extschema at ._ST_AsGML(2, $1, $2, $3, null, null); $$
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+        _COST_MEDIUM;
 
 -- ST_AsGML(version, geom, precision, option)
 -- Availability: 1.4.0
@@ -4577,7 +4660,8 @@ CREATE OR REPLACE FUNCTION ST_AsGML(geom geometry, maxdecimaldigits int4 DEFAULT
 CREATE OR REPLACE FUNCTION ST_AsGML(version int4, geom geometry, maxdecimaldigits int4 DEFAULT 15, options int4 DEFAULT 0, nprefix text DEFAULT null, id text DEFAULT null)
 	RETURNS TEXT
 	AS $$ SELECT @extschema at ._ST_AsGML($1, $2, $3, $4, $5, $6); $$
-	LANGUAGE 'sql' IMMUTABLE PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE PARALLEL SAFE
+        _COST_MEDIUM;
 
 -----------------------------------------------------------------------
 -- KML OUTPUT
@@ -4589,7 +4673,7 @@ CREATE OR REPLACE FUNCTION ST_AsKML(geom geometry, maxdecimaldigits int4 DEFAULT
 	RETURNS TEXT
 	AS 'MODULE_PATHNAME','LWGEOM_asKML'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_LOW;
+	_COST_MEDIUM;
 
 -----------------------------------------------------------------------
 -- GEOJSON OUTPUT
@@ -4603,26 +4687,28 @@ CREATE OR REPLACE FUNCTION ST_AsGeoJson(geom geometry, maxdecimaldigits int4 DEF
 	RETURNS text
 	AS 'MODULE_PATHNAME','LWGEOM_asGeoJson'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_LOW;
+	_COST_MEDIUM;
 
 -- Availability: 3.0.0
 CREATE OR REPLACE FUNCTION ST_AsGeoJson(r record, geom_column text DEFAULT '', maxdecimaldigits int4 DEFAULT 9, pretty_bool bool DEFAULT false)
 	RETURNS text
 	AS 'MODULE_PATHNAME','ST_AsGeoJsonRow'
 	LANGUAGE 'c' STABLE STRICT PARALLEL SAFE
-	_COST_LOW;
+	_COST_MEDIUM;
 
 -- Availability: 3.0.0
 CREATE OR REPLACE FUNCTION json(geometry)
 	RETURNS json
 	AS 'MODULE_PATHNAME','geometry_to_json'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+        _COST_MEDIUM;
 
 -- Availability: 3.0.0
 CREATE OR REPLACE FUNCTION jsonb(geometry)
 	RETURNS jsonb
 	AS 'MODULE_PATHNAME','geometry_to_jsonb'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+        _COST_MEDIUM;
 
 -- Availability: 3.0.0
 CREATE CAST (geometry AS json) WITH FUNCTION json(geometry);
@@ -4638,31 +4724,36 @@ CREATE CAST (geometry AS jsonb) WITH FUNCTION jsonb(geometry);
 CREATE OR REPLACE FUNCTION pgis_asmvt_transfn(internal, anyelement)
 	RETURNS internal
 	AS 'MODULE_PATHNAME', 'pgis_asmvt_transfn'
-	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE
+        _COST_MEDIUM;
 
 -- Availability: 2.4.0
 CREATE OR REPLACE FUNCTION pgis_asmvt_transfn(internal, anyelement, text)
 	RETURNS internal
 	AS 'MODULE_PATHNAME', 'pgis_asmvt_transfn'
-	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE
+        _COST_MEDIUM;
 
 -- Availability: 2.4.0
 CREATE OR REPLACE FUNCTION pgis_asmvt_transfn(internal, anyelement, text, int4)
 	RETURNS internal
 	AS 'MODULE_PATHNAME', 'pgis_asmvt_transfn'
-	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE
+        _COST_MEDIUM;
 
 -- Availability: 2.4.0
 CREATE OR REPLACE FUNCTION pgis_asmvt_transfn(internal, anyelement, text, int4, text)
 	RETURNS internal
 	AS 'MODULE_PATHNAME', 'pgis_asmvt_transfn'
-	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE
+        _COST_MEDIUM;
 
 -- Availability: 3.0.0
 CREATE OR REPLACE FUNCTION pgis_asmvt_transfn(internal, anyelement, text, int4, text, text)
 	RETURNS internal
 	AS 'MODULE_PATHNAME', 'pgis_asmvt_transfn'
-	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE
+        _COST_MEDIUM;
 
 -- Availability: 2.4.0
 CREATE OR REPLACE FUNCTION pgis_asmvt_finalfn(internal)
@@ -4761,7 +4852,8 @@ CREATE AGGREGATE ST_AsMVT(anyelement, text, int4, text, text)
 CREATE OR REPLACE FUNCTION ST_AsMVTGeom(geom geometry, bounds box2d, extent int4 default 4096, buffer int4 default 256, clip_geom bool default true)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME','ST_AsMVTGeom'
-	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE
+        _COST_MEDIUM;
 
 -- Availability: 2.4.0
 CREATE OR REPLACE FUNCTION postgis_libprotobuf_version()
@@ -4778,13 +4870,15 @@ CREATE OR REPLACE FUNCTION postgis_libprotobuf_version()
 CREATE OR REPLACE FUNCTION pgis_asgeobuf_transfn(internal, anyelement)
 	RETURNS internal
 	AS 'MODULE_PATHNAME', 'pgis_asgeobuf_transfn'
-	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 2.4.0
 CREATE OR REPLACE FUNCTION pgis_asgeobuf_transfn(internal, anyelement, text)
 	RETURNS internal
 	AS 'MODULE_PATHNAME', 'pgis_asgeobuf_transfn'
-	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 2.4.0
 CREATE OR REPLACE FUNCTION pgis_asgeobuf_finalfn(internal)
@@ -4821,7 +4915,7 @@ CREATE OR REPLACE FUNCTION ST_GeoHash(geom geometry, maxchars int4 DEFAULT 0)
 	RETURNS TEXT
 	AS 'MODULE_PATHNAME', 'ST_GeoHash'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_MEDIUM;
+	_COST_LOW;
 
 -----------------------------------------------------------------------
 -- GeoHash input
@@ -4832,21 +4926,21 @@ CREATE OR REPLACE FUNCTION ST_Box2dFromGeoHash(text, int4 DEFAULT NULL)
 	RETURNS box2d
 	AS 'MODULE_PATHNAME','box2d_from_geohash'
 	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE
-	_COST_MEDIUM;
+	_COST_LOW;
 
 -- ST_PointFromGeoHash(geohash text, precision int4)
 CREATE OR REPLACE FUNCTION ST_PointFromGeoHash(text, int4 DEFAULT NULL)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME','point_from_geohash'
 	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE
-	_COST_MEDIUM;
+	_COST_LOW;
 
 -- ST_GeomFromGeoHash(geohash text, precision int4)
 CREATE OR REPLACE FUNCTION ST_GeomFromGeoHash(text, int4 DEFAULT NULL)
 	RETURNS geometry
 	AS $$ SELECT CAST(@extschema at .ST_Box2dFromGeoHash($1, $2) AS geometry); $$
 	LANGUAGE 'sql' IMMUTABLE PARALLEL SAFE
-	_COST_MEDIUM;
+	_COST_LOW;
 
 ------------------------------------------------------------------------
 -- OGC defined
@@ -4912,14 +5006,14 @@ CREATE OR REPLACE FUNCTION GeometryType(geometry)
 	RETURNS text
 	AS 'MODULE_PATHNAME', 'LWGEOM_getTYPE'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_LOW;
+	_COST_DEFAULT;
 
 -- Not quite equivalent to GeometryType
 CREATE OR REPLACE FUNCTION ST_GeometryType(geometry)
 	RETURNS text
 	AS 'MODULE_PATHNAME', 'geometry_geometrytype'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_LOW;
+	_COST_DEFAULT;
 
 -- PostGIS equivalent function: PointN(geometry,integer)
 CREATE OR REPLACE FUNCTION ST_PointN(geometry,integer)
@@ -4936,7 +5030,8 @@ CREATE OR REPLACE FUNCTION ST_NumPatches(geometry)
 	THEN @extschema at .ST_NumGeometries($1)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 2.0.0
 CREATE OR REPLACE FUNCTION ST_PatchN(geometry, integer)
@@ -4946,7 +5041,8 @@ CREATE OR REPLACE FUNCTION ST_PatchN(geometry, integer)
 	THEN @extschema at .ST_GeometryN($1, $2)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- PostGIS equivalent function of old StartPoint(geometry))
 CREATE OR REPLACE FUNCTION ST_StartPoint(geometry)
@@ -5049,7 +5145,8 @@ CREATE OR REPLACE FUNCTION ST_PointFromText(text)
 	THEN @extschema at .ST_GeomFromText($1)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_MEDIUM;
 
 -- PostGIS equivalent function: PointFromText(text, int4)
 -- TODO: improve this ... by not duplicating constructor time.
@@ -5060,7 +5157,8 @@ CREATE OR REPLACE FUNCTION ST_PointFromText(text, int4)
 	THEN @extschema at .ST_GeomFromText($1, $2)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_MEDIUM;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_LineFromText(text)
@@ -5070,7 +5168,8 @@ CREATE OR REPLACE FUNCTION ST_LineFromText(text)
 	THEN @extschema at .ST_GeomFromText($1)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_MEDIUM;
 
 -- PostGIS equivalent function: LineFromText(text, int4)
 CREATE OR REPLACE FUNCTION ST_LineFromText(text, int4)
@@ -5080,7 +5179,8 @@ CREATE OR REPLACE FUNCTION ST_LineFromText(text, int4)
 	THEN @extschema at .ST_GeomFromText($1,$2)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_MEDIUM;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_PolyFromText(text)
@@ -5090,7 +5190,8 @@ CREATE OR REPLACE FUNCTION ST_PolyFromText(text)
 	THEN @extschema at .ST_GeomFromText($1)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_MEDIUM;
 
 -- PostGIS equivalent function: ST_PolygonFromText(text, int4)
 CREATE OR REPLACE FUNCTION ST_PolyFromText(text, int4)
@@ -5100,19 +5201,22 @@ CREATE OR REPLACE FUNCTION ST_PolyFromText(text, int4)
 	THEN @extschema at .ST_GeomFromText($1, $2)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_MEDIUM;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_PolygonFromText(text, int4)
 	RETURNS geometry
 	AS 'SELECT @extschema at .ST_PolyFromText($1, $2)'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_MEDIUM;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_PolygonFromText(text)
 	RETURNS geometry
 	AS 'SELECT @extschema at .ST_PolyFromText($1)'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_MEDIUM;
 
 -- PostGIS equivalent function: MLineFromText(text, int4)
 CREATE OR REPLACE FUNCTION ST_MLineFromText(text, int4)
@@ -5123,7 +5227,8 @@ CREATE OR REPLACE FUNCTION ST_MLineFromText(text, int4)
 	THEN @extschema at .ST_GeomFromText($1,$2)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_MEDIUM;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_MLineFromText(text)
@@ -5133,19 +5238,22 @@ CREATE OR REPLACE FUNCTION ST_MLineFromText(text)
 	THEN @extschema at .ST_GeomFromText($1)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_MEDIUM;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_MultiLineStringFromText(text)
 	RETURNS geometry
 	AS 'SELECT @extschema at .ST_MLineFromText($1)'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_MEDIUM;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_MultiLineStringFromText(text, int4)
 	RETURNS geometry
 	AS 'SELECT @extschema at .ST_MLineFromText($1, $2)'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_MEDIUM;
 
 -- PostGIS equivalent function: MPointFromText(text, int4)
 CREATE OR REPLACE FUNCTION ST_MPointFromText(text, int4)
@@ -5155,7 +5263,8 @@ CREATE OR REPLACE FUNCTION ST_MPointFromText(text, int4)
 	THEN ST_GeomFromText($1, $2)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_MEDIUM;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_MPointFromText(text)
@@ -5165,13 +5274,15 @@ CREATE OR REPLACE FUNCTION ST_MPointFromText(text)
 	THEN @extschema at .ST_GeomFromText($1)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_MEDIUM;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_MultiPointFromText(text)
 	RETURNS geometry
 	AS 'SELECT @extschema at .ST_MPointFromText($1)'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_MEDIUM;
 
 -- PostGIS equivalent function: MPolyFromText(text, int4)
 CREATE OR REPLACE FUNCTION ST_MPolyFromText(text, int4)
@@ -5181,7 +5292,8 @@ CREATE OR REPLACE FUNCTION ST_MPolyFromText(text, int4)
 	THEN @extschema at .ST_GeomFromText($1,$2)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_MEDIUM;
 
 --Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_MPolyFromText(text)
@@ -5191,19 +5303,22 @@ CREATE OR REPLACE FUNCTION ST_MPolyFromText(text)
 	THEN @extschema at .ST_GeomFromText($1)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_MEDIUM;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_MultiPolygonFromText(text, int4)
 	RETURNS geometry
 	AS 'SELECT @extschema at .ST_MPolyFromText($1, $2)'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_MEDIUM;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_MultiPolygonFromText(text)
 	RETURNS geometry
 	AS 'SELECT @extschema at .ST_MPolyFromText($1)'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_MEDIUM;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_GeomCollFromText(text, int4)
@@ -5214,7 +5329,8 @@ CREATE OR REPLACE FUNCTION ST_GeomCollFromText(text, int4)
 	THEN @extschema at .ST_GeomFromText($1,$2)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_MEDIUM;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_GeomCollFromText(text)
@@ -5225,19 +5341,22 @@ CREATE OR REPLACE FUNCTION ST_GeomCollFromText(text)
 	THEN @extschema at .ST_GeomFromText($1)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_MEDIUM;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_GeomFromWKB(bytea)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME','LWGEOM_from_WKB'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- PostGIS equivalent function: GeomFromWKB(bytea, int)
 CREATE OR REPLACE FUNCTION ST_GeomFromWKB(bytea, int)
 	RETURNS geometry
 	AS 'SELECT @extschema at .ST_SetSRID(@extschema at .ST_GeomFromWKB($1), $2)'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- PostGIS equivalent function: PointFromWKB(bytea, int)
 CREATE OR REPLACE FUNCTION ST_PointFromWKB(bytea, int)
@@ -5247,7 +5366,8 @@ CREATE OR REPLACE FUNCTION ST_PointFromWKB(bytea, int)
 	THEN @extschema at .ST_GeomFromWKB($1, $2)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_PointFromWKB(bytea)
@@ -5257,7 +5377,8 @@ CREATE OR REPLACE FUNCTION ST_PointFromWKB(bytea)
 	THEN @extschema at .ST_GeomFromWKB($1)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- PostGIS equivalent function: LineFromWKB(bytea, int)
 CREATE OR REPLACE FUNCTION ST_LineFromWKB(bytea, int)
@@ -5267,7 +5388,8 @@ CREATE OR REPLACE FUNCTION ST_LineFromWKB(bytea, int)
 	THEN @extschema at .ST_GeomFromWKB($1, $2)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_LineFromWKB(bytea)
@@ -5277,7 +5399,8 @@ CREATE OR REPLACE FUNCTION ST_LineFromWKB(bytea)
 	THEN @extschema at .ST_GeomFromWKB($1)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_LinestringFromWKB(bytea, int)
@@ -5287,7 +5410,8 @@ CREATE OR REPLACE FUNCTION ST_LinestringFromWKB(bytea, int)
 	THEN @extschema at .ST_GeomFromWKB($1, $2)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_LinestringFromWKB(bytea)
@@ -5297,7 +5421,8 @@ CREATE OR REPLACE FUNCTION ST_LinestringFromWKB(bytea)
 	THEN @extschema at .ST_GeomFromWKB($1)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- PostGIS equivalent function: PolyFromWKB(text, int)
 CREATE OR REPLACE FUNCTION ST_PolyFromWKB(bytea, int)
@@ -5307,7 +5432,8 @@ CREATE OR REPLACE FUNCTION ST_PolyFromWKB(bytea, int)
 	THEN @extschema at .ST_GeomFromWKB($1, $2)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_PolyFromWKB(bytea)
@@ -5317,7 +5443,8 @@ CREATE OR REPLACE FUNCTION ST_PolyFromWKB(bytea)
 	THEN @extschema at .ST_GeomFromWKB($1)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_PolygonFromWKB(bytea, int)
@@ -5327,7 +5454,8 @@ CREATE OR REPLACE FUNCTION ST_PolygonFromWKB(bytea, int)
 	THEN @extschema at .ST_GeomFromWKB($1, $2)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_PolygonFromWKB(bytea)
@@ -5337,7 +5465,8 @@ CREATE OR REPLACE FUNCTION ST_PolygonFromWKB(bytea)
 	THEN @extschema at .ST_GeomFromWKB($1)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- PostGIS equivalent function: MPointFromWKB(text, int)
 CREATE OR REPLACE FUNCTION ST_MPointFromWKB(bytea, int)
@@ -5347,7 +5476,8 @@ CREATE OR REPLACE FUNCTION ST_MPointFromWKB(bytea, int)
 	THEN @extschema at .ST_GeomFromWKB($1, $2)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_MPointFromWKB(bytea)
@@ -5357,7 +5487,8 @@ CREATE OR REPLACE FUNCTION ST_MPointFromWKB(bytea)
 	THEN @extschema at .ST_GeomFromWKB($1)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_MultiPointFromWKB(bytea, int)
@@ -5367,7 +5498,8 @@ CREATE OR REPLACE FUNCTION ST_MultiPointFromWKB(bytea, int)
 	THEN @extschema at .ST_GeomFromWKB($1, $2)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_MultiPointFromWKB(bytea)
@@ -5377,7 +5509,8 @@ CREATE OR REPLACE FUNCTION ST_MultiPointFromWKB(bytea)
 	THEN @extschema at .ST_GeomFromWKB($1)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_MultiLineFromWKB(bytea)
@@ -5387,7 +5520,8 @@ CREATE OR REPLACE FUNCTION ST_MultiLineFromWKB(bytea)
 	THEN @extschema at .ST_GeomFromWKB($1)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- PostGIS equivalent function: MLineFromWKB(text, int)
 CREATE OR REPLACE FUNCTION ST_MLineFromWKB(bytea, int)
@@ -5397,7 +5531,8 @@ CREATE OR REPLACE FUNCTION ST_MLineFromWKB(bytea, int)
 	THEN @extschema at .ST_GeomFromWKB($1, $2)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_MLineFromWKB(bytea)
@@ -5407,7 +5542,8 @@ CREATE OR REPLACE FUNCTION ST_MLineFromWKB(bytea)
 	THEN @extschema at .ST_GeomFromWKB($1)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 1.2.2
 -- PostGIS equivalent function: MPolyFromWKB(bytea, int)
@@ -5418,7 +5554,8 @@ CREATE OR REPLACE FUNCTION ST_MPolyFromWKB(bytea, int)
 	THEN @extschema at .ST_GeomFromWKB($1, $2)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_MPolyFromWKB(bytea)
@@ -5438,7 +5575,8 @@ CREATE OR REPLACE FUNCTION ST_MultiPolyFromWKB(bytea, int)
 	THEN @extschema at .ST_GeomFromWKB($1, $2)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_MultiPolyFromWKB(bytea)
@@ -5448,7 +5586,8 @@ CREATE OR REPLACE FUNCTION ST_MultiPolyFromWKB(bytea)
 	THEN @extschema at .ST_GeomFromWKB($1)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_GeomCollFromWKB(bytea, int)
@@ -5459,7 +5598,8 @@ CREATE OR REPLACE FUNCTION ST_GeomCollFromWKB(bytea, int)
 	THEN @extschema at .ST_GeomFromWKB($1, $2)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_GeomCollFromWKB(bytea)
@@ -5470,7 +5610,8 @@ CREATE OR REPLACE FUNCTION ST_GeomCollFromWKB(bytea)
 	THEN @extschema at .ST_GeomFromWKB($1)
 	ELSE NULL END
 	'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 
 -- Maximum distance between linestrings.
@@ -5485,7 +5626,8 @@ CREATE OR REPLACE FUNCTION _ST_MaxDistance(geom1 geometry, geom2 geometry)
 CREATE OR REPLACE FUNCTION ST_MaxDistance(geom1 geometry, geom2 geometry)
 	RETURNS float8
 	AS 'SELECT @extschema at ._ST_MaxDistance(@extschema at .ST_ConvexHull($1), @extschema at .ST_ConvexHull($2))'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_HIGH;
 
 CREATE OR REPLACE FUNCTION ST_ClosestPoint(geom1 geometry, geom2 geometry)
 	RETURNS geometry
@@ -5508,7 +5650,8 @@ CREATE OR REPLACE FUNCTION _ST_LongestLine(geom1 geometry, geom2 geometry)
 CREATE OR REPLACE FUNCTION ST_LongestLine(geom1 geometry, geom2 geometry)
 	RETURNS geometry
 	AS 'SELECT @extschema at ._ST_LongestLine(@extschema at .ST_ConvexHull($1), @extschema at .ST_ConvexHull($2))'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_HIGH;
 
 -- Availability: 2.2.0
 CREATE OR REPLACE FUNCTION ST_SwapOrdinates(geom geometry, ords cstring)
@@ -5524,7 +5667,7 @@ CREATE OR REPLACE FUNCTION ST_FlipCoordinates(geometry)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME', 'ST_FlipCoordinates'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_MEDIUM;
+	_COST_LOW;
 
 --
 -- SFSQL 1.1
@@ -5877,7 +6020,7 @@ CREATE OR REPLACE FUNCTION ST_CoordDim(Geometry geometry)
 	RETURNS smallint
 	AS 'MODULE_PATHNAME', 'LWGEOM_ndims'
 	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
-	_COST_LOW;
+	_COST_DEFAULT;
 
 --
 -- SQL-MM
@@ -5924,7 +6067,8 @@ CREATE OR REPLACE FUNCTION ST_LineToCurve(Geometry geometry)
 CREATE OR REPLACE FUNCTION ST_Point(float8, float8)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME', 'LWGEOM_makepoint'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE _COST_LOW;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- PostGIS equivalent function: ST_MakePolygon(Geometry geometry)
 CREATE OR REPLACE FUNCTION ST_Polygon(geometry, int)
@@ -5932,7 +6076,8 @@ CREATE OR REPLACE FUNCTION ST_Polygon(geometry, int)
 	AS $$
 	SELECT @extschema at .ST_SetSRID(@extschema at .ST_MakePolygon($1), $2)
 	$$
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+	_COST_LOW;
 
 -- PostGIS equivalent function: GeomFromWKB(WKB bytea))
 -- Note: Defaults to an SRID=-1, not 0 as per SQL/MM specs.
@@ -5984,7 +6129,7 @@ CREATE OR REPLACE FUNCTION ST_Hexagon(size float8, cell_i integer, cell_j intege
 	AS 'MODULE_PATHNAME', 'ST_Hexagon'
 	LANGUAGE 'c' IMMUTABLE STRICT
 	PARALLEL SAFE
-	_COST_MEDIUM;
+	_COST_LOW;
 
 -- Availability: 3.1.0
 CREATE OR REPLACE FUNCTION ST_Square(size float8, cell_i integer, cell_j integer, origin geometry DEFAULT 'POINT(0 0)')
@@ -5992,7 +6137,7 @@ CREATE OR REPLACE FUNCTION ST_Square(size float8, cell_i integer, cell_j integer
 	AS 'MODULE_PATHNAME', 'ST_Square'
 	LANGUAGE 'c' IMMUTABLE STRICT
 	PARALLEL SAFE
-	_COST_MEDIUM;
+	_COST_LOW;
 
 -- Availability: 3.1.0
 CREATE OR REPLACE FUNCTION ST_HexagonGrid(size float8, bounds geometry, OUT geom geometry, OUT i integer, OUT j integer)
@@ -6269,13 +6414,15 @@ LANGUAGE 'plpgsql' IMMUTABLE STRICT PARALLEL SAFE _COST_HIGH;
 CREATE OR REPLACE FUNCTION _ST_AsX3D(int4, geometry, int4, int4, text)
 	RETURNS TEXT
 	AS 'MODULE_PATHNAME','LWGEOM_asX3D'
-	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE PARALLEL SAFE
+        _COST_MEDIUM;
 
 -- ST_AsX3D(geom, precision, options)
 CREATE OR REPLACE FUNCTION ST_AsX3D(geom geometry, maxdecimaldigits integer DEFAULT 15, options integer DEFAULT 0)
 	RETURNS TEXT
 	AS $$SELECT @extschema at ._ST_AsX3D(3,$1,$2,$3,'');$$
-	LANGUAGE 'sql' IMMUTABLE PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE PARALLEL SAFE
+        _COST_MEDIUM;
 
 -----------------------------------------------------------------------
 -- ST_Angle
@@ -6284,7 +6431,8 @@ CREATE OR REPLACE FUNCTION ST_AsX3D(geom geometry, maxdecimaldigits integer DEFA
 -- has to be here because need ST_StartPoint
 CREATE OR REPLACE FUNCTION ST_Angle(line1 geometry, line2 geometry)
 	RETURNS float8 AS 'SELECT ST_Angle(St_StartPoint($1), ST_EndPoint($1), St_StartPoint($2), ST_EndPoint($2))'
-	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'sql' IMMUTABLE STRICT PARALLEL SAFE
+        _COST_LOW;
 
 -- make views and spatial_ref_sys public viewable --
 GRANT SELECT ON TABLE geography_columns TO public;
@@ -6295,7 +6443,8 @@ GRANT SELECT ON TABLE spatial_ref_sys TO public;
 CREATE OR REPLACE FUNCTION ST_3DLineInterpolatePoint(geometry, float8)
 	RETURNS geometry
 	AS 'MODULE_PATHNAME', 'ST_3DLineInterpolatePoint'
-	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE;
+	LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
+        _COST_LOW;
 
 
 -- moved to separate file cause its invovled

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

Summary of changes:
 NEWS                     |   1 +
 postgis/geography.sql.in |  38 +--
 postgis/postgis.sql.in   | 673 +++++++++++++++++++++++++++++------------------
 postgis/sqldefines.h.in  |   4 +-
 4 files changed, 436 insertions(+), 280 deletions(-)


hooks/post-receive
-- 
PostGIS


More information about the postgis-tickets mailing list