]> granicus.if.org Git - postgis/commitdiff
Add costs to CPU intensive C functions and update doco to ensure 8.3 is the reference...
authorPaul Ramsey <pramsey@cleverelephant.ca>
Fri, 6 Nov 2009 20:46:38 +0000 (20:46 +0000)
committerPaul Ramsey <pramsey@cleverelephant.ca>
Fri, 6 Nov 2009 20:46:38 +0000 (20:46 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@4757 b70326c6-7e19-0410-871a-916f4a2858ee

README.postgis
doc/installation.xml
doc/release_notes.xml
postgis/geography.sql.in.c
postgis/postgis.sql.in.c

index 854b1500145324d5f41439fb177fbd8b39417671..b7fdf6700545492d8f40b9bc6097755233d92492 100644 (file)
@@ -32,7 +32,7 @@ Directory structure:
 REQUIREMENTS
 ------------
 
-PostGIS is compatible with PostgreSQL 8.2 and above.
+PostGIS is compatible with PostgreSQL 8.3 and above.
 
 You *must* have full PostgreSQL - including server headers - installed
 for this to work. 
index 6b51b233ce40bf4b3452f1f7ca65ad135603a739..3423013cbb7fd98163dad3407624c2e6cd454211 100644 (file)
@@ -205,7 +205,7 @@ tar -xvzf postgis-&last_release_version;.tar.gz</programlisting>
          The PostGIS module is an extension to the PostgreSQL backend server. As
          such, PostGIS &last_release_version; <emphasis>requires</emphasis> full
          PostgreSQL server headers access in order to compile. It can be built
-         against PostgreSQL versions 8.2.0 or higher. Earlier versions of
+         against PostgreSQL versions 8.3 or higher. Earlier versions of
          PostgreSQL are <emphasis>not</emphasis> supported.
        </para>
 
index 9aa27ca30b198be553f99b11c724d055544b734b..3bddd450859b49c0e5c5bd1537bf6d1d63aa992b 100644 (file)
@@ -3,6 +3,39 @@
   <title>Appendix</title>
     <subtitle>Release Notes</subtitle>
 
+      <sect1>
+        <title>Release 1.5.0</title>
+        <para>Release date: 2009/12/25</para>
+        <para>This release provides support for geographic coordinates (lat/lon) via a new GEOGRAPHY type. Also performance enhancements, new input format support (GLM) and general upkeep.</para>
+  
+        <simplesect>
+          <title>API Stability</title>
+          <para>The public API of PostGIS will not change during minor (0.0.X) releases.</para>
+        </simplesect>
+
+        <simplesect>
+          <title>Compatibility</title>
+          <para>The versions below are the *minimum* requirements for PostGIS 1.5</para>
+          <para>PostgreSQL 8.3 and higher on all platforms</para>
+          <para>GEOS 3.0 and higher only</para>
+          <para>PROJ4 4.5 and higher only</para>
+        </simplesect>
+
+        <simplesect>
+          <title>New Features</title>
+          <para></para>
+        </simplesect>
+
+        <simplesect>
+          <title>Enhancements</title>
+          <para></para>
+        </simplesect>
+        <simplesect>
+          <title>Bug fixes</title>
+          <para>http://trac.osgeo.org/postgis/query?status=closed&amp;milestone=postgis+1.5.0&amp;order=priority</para>
+        </simplesect>
+      </sect1>
+      
       <sect1>
         <title>Release 1.4.0</title>
         <para>Release date: 2009/07/24</para>
index 1266afd30e84ede77052b72f00b337f4cf71c260..8199beaa3ed885a44cb4a1b44b119e278f8e8893 100644 (file)
@@ -438,7 +438,8 @@ CREATE OR REPLACE FUNCTION ST_AsGeoJson(int4, geography, int4, int4)
 CREATE OR REPLACE FUNCTION _ST_Distance(geography, geography, float8, boolean)
        RETURNS float8
        AS 'MODULE_PATHNAME','geography_distance'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Availability: 1.5.0
 CREATE OR REPLACE FUNCTION ST_Distance(geography, geography, boolean)
@@ -477,7 +478,8 @@ CREATE OR REPLACE FUNCTION ST_DWithin(geography, geography, float8)
 CREATE OR REPLACE FUNCTION ST_Area(geography, boolean)
        RETURNS float8
        AS 'MODULE_PATHNAME','geography_area'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Currently defaulting to spheroid calculations
 -- Availability: 1.5.0
@@ -490,7 +492,8 @@ CREATE OR REPLACE FUNCTION ST_Area(geography)
 CREATE OR REPLACE FUNCTION ST_Length(geography, boolean)
        RETURNS float8
        AS 'MODULE_PATHNAME','geography_length'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Availability: 1.5.0
 CREATE OR REPLACE FUNCTION ST_Length(geography)
@@ -509,7 +512,8 @@ CREATE OR REPLACE FUNCTION ST_PointOutside(geography)
 CREATE OR REPLACE FUNCTION _ST_Covers(geography, geography)
        RETURNS boolean
        AS 'MODULE_PATHNAME','geography_covers'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Only implemented for polygon-over-point
 -- Availability: 1.5.0
index af83dca55d8a28e052720d8dbdd37edfb7ca3fba..308b9c8bef22b92597baeb91e9cd0d7b93c6a000 100644 (file)
@@ -1044,31 +1044,36 @@ CREATE OR REPLACE FUNCTION length3d_spheroid(geometry, spheroid)
 CREATE OR REPLACE FUNCTION ST_length3d_spheroid(geometry, spheroid)
        RETURNS FLOAT8
        AS 'MODULE_PATHNAME','LWGEOM_length_ellipsoid_linestring'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Deprecation in 1.2.3
 CREATE OR REPLACE FUNCTION length_spheroid(geometry, spheroid)
        RETURNS FLOAT8
        AS 'MODULE_PATHNAME','LWGEOM_length_ellipsoid_linestring'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_length_spheroid(geometry, spheroid)
        RETURNS FLOAT8
        AS 'MODULE_PATHNAME','LWGEOM_length_ellipsoid_linestring'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Deprecation in 1.2.3
 CREATE OR REPLACE FUNCTION length2d_spheroid(geometry, spheroid)
        RETURNS FLOAT8
        AS 'MODULE_PATHNAME','LWGEOM_length2d_ellipsoid'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_length2d_spheroid(geometry, spheroid)
        RETURNS FLOAT8
        AS 'MODULE_PATHNAME','LWGEOM_length2d_ellipsoid'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- this is a fake (for back-compatibility)
 -- uses 3d if 3d is available, 2d otherwise
@@ -1139,38 +1144,44 @@ CREATE OR REPLACE FUNCTION ST_Area(geometry)
 CREATE OR REPLACE FUNCTION distance_spheroid(geometry,geometry,spheroid)
        RETURNS FLOAT8
        AS 'MODULE_PATHNAME','LWGEOM_distance_ellipsoid'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_distance_spheroid(geometry,geometry,spheroid)
        RETURNS FLOAT8
        AS 'MODULE_PATHNAME','LWGEOM_distance_ellipsoid'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Deprecation in 1.2.3
 CREATE OR REPLACE FUNCTION distance_sphere(geometry,geometry)
        RETURNS FLOAT8
        AS 'MODULE_PATHNAME','LWGEOM_distance_sphere'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_distance_sphere(geometry,geometry)
        RETURNS FLOAT8
        AS 'MODULE_PATHNAME','LWGEOM_distance_sphere'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Minimum distance. 2d only.
 -- Deprecation in 1.2.3
 CREATE OR REPLACE FUNCTION distance(geometry,geometry)
        RETURNS float8
        AS 'MODULE_PATHNAME', 'LWGEOM_mindistance2d'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- PostGIS equivalent function: distance(geometry,geometry)
 CREATE OR REPLACE FUNCTION ST_Distance(geometry,geometry)
        RETURNS float8
        AS 'MODULE_PATHNAME', 'LWGEOM_mindistance2d'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Maximum distance between linestrings. 2d only. Very bogus.
 -- Deprecation in 1.2.3
@@ -1692,43 +1703,50 @@ CREATE OR REPLACE FUNCTION ST_MakePolygon(geometry)
 CREATE OR REPLACE FUNCTION BuildArea(geometry)
        RETURNS geometry
        AS 'MODULE_PATHNAME', 'LWGEOM_buildarea'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_BuildArea(geometry)
        RETURNS geometry
        AS 'MODULE_PATHNAME', 'LWGEOM_buildarea'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Deprecation in 1.2.3
 CREATE OR REPLACE FUNCTION Polygonize_GArray (geometry[])
        RETURNS geometry
        AS 'MODULE_PATHNAME', 'polygonize_garray'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
--- Availability: 1.2.2
+-- Deprecation in 1.5.0
 CREATE OR REPLACE FUNCTION ST_Polygonize_GArray (geometry[])
        RETURNS geometry
        AS 'MODULE_PATHNAME', 'polygonize_garray'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Availability: 1.4.0
 CREATE OR REPLACE FUNCTION ST_Polygonize (geometry[])
        RETURNS geometry
        AS 'MODULE_PATHNAME', 'polygonize_garray'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Deprecation in 1.2.3
 CREATE OR REPLACE FUNCTION LineMerge(geometry)
        RETURNS geometry
        AS 'MODULE_PATHNAME', 'linemerge'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_LineMerge(geometry)
        RETURNS geometry
        AS 'MODULE_PATHNAME', 'linemerge'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 
 CREATE TYPE geometry_dump AS (path integer[], geom geometry);
@@ -3529,28 +3547,32 @@ CREATE OR REPLACE FUNCTION intersection(geometry,geometry)
 CREATE OR REPLACE FUNCTION ST_Intersection(geometry,geometry)
        RETURNS geometry
        AS 'MODULE_PATHNAME','intersection'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Deprecation in 1.2.3
 CREATE OR REPLACE FUNCTION buffer(geometry,float8)
        RETURNS geometry
        AS 'MODULE_PATHNAME','buffer'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- PostGIS equivalent function: buffer(geometry,float8)
 CREATE OR REPLACE FUNCTION ST_Buffer(geometry,float8)
        RETURNS geometry
        AS 'MODULE_PATHNAME','buffer'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Availability: 1.5.0 - requires GEOS-3.2 or higher
-CREATE OR REPLACE FUNCTION _ST_buffer(geometry,float8,cstring)
+CREATE OR REPLACE FUNCTION _ST_Buffer(geometry,float8,cstring)
        RETURNS geometry
        AS 'MODULE_PATHNAME','buffer'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Availability: 1.2.2
-CREATE OR REPLACE FUNCTION ST_buffer(geometry,float8,integer)
+CREATE OR REPLACE FUNCTION ST_Buffer(geometry,float8,integer)
        RETURNS geometry
        AS $$ SELECT _ST_Buffer($1, $2,
                CAST('quad_segs='||CAST($3 AS text) as cstring))
@@ -3577,20 +3599,23 @@ CREATE OR REPLACE FUNCTION buffer(geometry,float8,integer)
 CREATE OR REPLACE FUNCTION convexhull(geometry)
        RETURNS geometry
        AS 'MODULE_PATHNAME','convexhull'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- PostGIS equivalent function: convexhull(geometry)
 CREATE OR REPLACE FUNCTION ST_ConvexHull(geometry)
        RETURNS geometry
        AS 'MODULE_PATHNAME','convexhull'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Only accepts LINESTRING as parameters.
 -- Availability: 1.4.0
 CREATE OR REPLACE FUNCTION _ST_LineCrossingDirection(geometry, geometry)
        RETURNS integer
        AS 'MODULE_PATHNAME', 'ST_LineCrossingDirection'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Availability: 1.4.0
 CREATE OR REPLACE FUNCTION ST_LineCrossingDirection(geometry, geometry)
@@ -3612,7 +3637,8 @@ CREATE OR REPLACE FUNCTION ST_LocateBetweenElevations(geometry, float8, float8)
 CREATE OR REPLACE FUNCTION ST_SimplifyPreserveTopology(geometry, float8)
        RETURNS geometry
        AS 'MODULE_PATHNAME','topologypreservesimplify'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 #endif
 
 #if POSTGIS_GEOS_VERSION >= 31
@@ -3621,7 +3647,8 @@ CREATE OR REPLACE FUNCTION ST_SimplifyPreserveTopology(geometry, float8)
 CREATE OR REPLACE FUNCTION ST_IsValidReason(geometry)
        RETURNS text
        AS 'MODULE_PATHNAME', 'isvalidreason'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 #endif
 
 #if POSTGIS_GEOS_VERSION >= 32
@@ -3630,7 +3657,8 @@ CREATE OR REPLACE FUNCTION ST_IsValidReason(geometry)
 CREATE OR REPLACE FUNCTION ST_HausdorffDistance(geometry, geometry)
        RETURNS FLOAT8
        AS 'MODULE_PATHNAME', 'hausdorffdistance'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 #endif
 
 #if POSTGIS_GEOS_VERSION >= 32
@@ -3639,7 +3667,8 @@ CREATE OR REPLACE FUNCTION ST_HausdorffDistance(geometry, geometry)
 CREATE OR REPLACE FUNCTION ST_HausdorffDistance(geometry, geometry, float8)
        RETURNS FLOAT8
        AS 'MODULE_PATHNAME', 'hausdorffdistancedensify'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 #endif
 
 -- Deprecation in 1.2.3
@@ -3950,7 +3979,8 @@ CREATE OR REPLACE FUNCTION touches(geometry,geometry)
 CREATE OR REPLACE FUNCTION _ST_Touches(geometry,geometry)
        RETURNS boolean
        AS 'MODULE_PATHNAME','touches'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Availability: 1.2.2
 -- Inlines index magic
@@ -3963,7 +3993,8 @@ CREATE OR REPLACE FUNCTION ST_Touches(geometry,geometry)
 CREATE OR REPLACE FUNCTION _ST_DWithin(geometry,geometry,float8)
        RETURNS boolean
        AS 'MODULE_PATHNAME', 'LWGEOM_dwithin'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_DWithin(geometry, geometry, float8)
@@ -3981,7 +4012,8 @@ CREATE OR REPLACE FUNCTION intersects(geometry,geometry)
 CREATE OR REPLACE FUNCTION _ST_Intersects(geometry,geometry)
        RETURNS boolean
        AS 'MODULE_PATHNAME','intersects'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Availability: 1.2.2
 -- Inlines index magic
@@ -4000,7 +4032,8 @@ CREATE OR REPLACE FUNCTION crosses(geometry,geometry)
 CREATE OR REPLACE FUNCTION _ST_Crosses(geometry,geometry)
        RETURNS boolean
        AS 'MODULE_PATHNAME','crosses'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Availability: 1.2.2
 -- Inlines index magic
@@ -4019,7 +4052,8 @@ CREATE OR REPLACE FUNCTION within(geometry,geometry)
 CREATE OR REPLACE FUNCTION _ST_Within(geometry,geometry)
        RETURNS boolean
        AS 'MODULE_PATHNAME','within'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Availability: 1.2.2
 -- Inlines index magic
@@ -4038,7 +4072,8 @@ CREATE OR REPLACE FUNCTION Contains(geometry,geometry)
 CREATE OR REPLACE FUNCTION _ST_Contains(geometry,geometry)
        RETURNS boolean
        AS 'MODULE_PATHNAME','contains'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Availability: 1.2.2
 -- Inlines index magic
@@ -4052,7 +4087,8 @@ CREATE OR REPLACE FUNCTION ST_Contains(geometry,geometry)
 CREATE OR REPLACE FUNCTION _ST_CoveredBy(geometry,geometry)
        RETURNS boolean
        AS 'MODULE_PATHNAME', 'coveredby'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_CoveredBy(geometry,geometry)
@@ -4064,7 +4100,8 @@ CREATE OR REPLACE FUNCTION ST_CoveredBy(geometry,geometry)
 CREATE OR REPLACE FUNCTION _ST_Covers(geometry,geometry)
        RETURNS boolean
        AS 'MODULE_PATHNAME', 'covers'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Availability: 1.2.2
 -- Inlines index magic
@@ -4079,7 +4116,8 @@ CREATE OR REPLACE FUNCTION ST_Covers(geometry,geometry)
 CREATE OR REPLACE FUNCTION _ST_ContainsProperly(geometry,geometry)
        RETURNS boolean
        AS 'MODULE_PATHNAME','containsproperly'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Availability: 1.4.0
 -- Inlines index magic
@@ -4099,7 +4137,8 @@ CREATE OR REPLACE FUNCTION overlaps(geometry,geometry)
 CREATE OR REPLACE FUNCTION _ST_Overlaps(geometry,geometry)
        RETURNS boolean
        AS 'MODULE_PATHNAME','overlaps'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Availability: 1.2.2
 -- Inlines index magic
@@ -4112,27 +4151,29 @@ CREATE OR REPLACE FUNCTION ST_Overlaps(geometry,geometry)
 CREATE OR REPLACE FUNCTION IsValid(geometry)
        RETURNS boolean
        AS 'MODULE_PATHNAME', 'isvalid'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- PostGIS equivalent function: IsValid(geometry)
 -- TODO: change null returns to true
 CREATE OR REPLACE FUNCTION ST_IsValid(geometry)
        RETURNS boolean
        AS 'MODULE_PATHNAME', 'isvalid'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- This is also available w/out GEOS
 CREATE OR REPLACE FUNCTION Centroid(geometry)
        RETURNS geometry
        AS 'MODULE_PATHNAME'
        LANGUAGE 'C' IMMUTABLE STRICT;
-
+       
 -- PostGIS equivalent function: Centroid(geometry)
 CREATE OR REPLACE FUNCTION ST_Centroid(geometry)
        RETURNS geometry
        AS 'MODULE_PATHNAME', 'centroid'
        LANGUAGE 'C' IMMUTABLE STRICT;
-
+       
 -- Deprecation in 1.2.3
 CREATE OR REPLACE FUNCTION IsRing(geometry)
        RETURNS boolean
@@ -4155,7 +4196,8 @@ CREATE OR REPLACE FUNCTION PointOnSurface(geometry)
 CREATE OR REPLACE FUNCTION ST_PointOnSurface(geometry)
        RETURNS geometry
        AS 'MODULE_PATHNAME', 'pointonsurface'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 -- Deprecation in 1.2.3
 CREATE OR REPLACE FUNCTION IsSimple(geometry)
@@ -4179,7 +4221,8 @@ CREATE OR REPLACE FUNCTION Equals(geometry,geometry)
 CREATE OR REPLACE FUNCTION ST_Equals(geometry,geometry)
        RETURNS boolean
        AS 'MODULE_PATHNAME','geomequals'
-       LANGUAGE 'C' IMMUTABLE STRICT;
+       LANGUAGE 'C' IMMUTABLE STRICT
+       COST 100;
 
 
 #if HAVE_LIBXML2