Changeset: cda5ba9639f6 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=cda5ba9639f6
Modified Files:
        geom/monetdb5/geom_upgrade.c
Branch: geo
Log Message:

types should be dropped after dropping the related functions


diffs (truncated from 384 to 300 lines):

diff --git a/geom/monetdb5/geom_upgrade.c b/geom/monetdb5/geom_upgrade.c
--- a/geom/monetdb5/geom_upgrade.c
+++ b/geom/monetdb5/geom_upgrade.c
@@ -430,20 +430,6 @@ geom_sql_upgrade(void)
        if ((buf = GDKmalloc(bufsize)) == NULL)
                return "";
 
-       /* drop old types (but keep the geometry type) **/
-       /** pos += snprintf(buf + pos, bufsize - pos, "DROP TYPE Geometry;"); 
**/
-       pos += snprintf(buf + pos, bufsize - pos, "drop type \"point\";\n");
-       pos += snprintf(buf + pos, bufsize - pos, "drop type \"curve\";\n");
-       pos += snprintf(buf + pos, bufsize - pos, "drop type 
\"linestring\"\n;");
-       pos += snprintf(buf + pos, bufsize - pos, "drop type \"surface\";\n");
-       pos += snprintf(buf + pos, bufsize - pos, "drop type \"polygon\";\n");
-       pos += snprintf(buf + pos, bufsize - pos, "drop type 
\"multipoint\";\n");
-       pos += snprintf(buf + pos, bufsize - pos, "drop type 
\"multicurve\";\n");
-       pos += snprintf(buf + pos, bufsize - pos, "drop type 
\"multilinestring\";\n");
-       pos += snprintf(buf + pos, bufsize - pos, "drop type 
\"multisurface\";\n");
-       pos += snprintf(buf + pos, bufsize - pos, "drop type 
\"multipolygon\";\n");
-       pos += snprintf(buf + pos, bufsize - pos, "drop type 
\"geomcollection\";\n");
-
        /* drop old functions */
        pos += snprintf(buf + pos, bufsize - pos, "drop function \"mbr\";\n");
        pos += snprintf(buf + pos, bufsize - pos, "drop function 
\"mbroverlaps\";\n");
@@ -486,176 +472,190 @@ geom_sql_upgrade(void)
        pos += snprintf(buf + pos, bufsize - pos, "drop function 
\"difference\";");
        pos += snprintf(buf + pos, bufsize - pos, "drop function 
\"symdifference\";");
 
+       /* drop old types (but keep the geometry type) **/
+       /** pos += snprintf(buf + pos, bufsize - pos, "DROP TYPE Geometry;"); 
**/
+       pos += snprintf(buf + pos, bufsize - pos, "drop type \"point\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "drop type \"curve\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "drop type 
\"linestring\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "drop type \"surface\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "drop type \"polygon\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "drop type 
\"multipoint\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "drop type 
\"multicurve\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "drop type 
\"multilinestring\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "drop type 
\"multisurface\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "drop type 
\"multipolygon\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "drop type 
\"geomcollection\";\n");
+
        /* create the new geometry types */
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION Has_Z(info 
integer) RETURNS integer EXTERNAL NAME geom.\"hasZ\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION Has_M(info 
integer) RETURNS integer EXTERNAL NAME geom.\"hasM\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
get_type(info integer, format integer) RETURNS string EXTERNAL NAME 
geom.\"getType\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE TABLE spatial_ref_sys 
(srid INTEGER NOT NULL PRIMARY KEY, auth_name VARCHAR (256), auth_srid INTEGER, 
srtext VARCHAR (2048), proj4text VARCHAR (2048));");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE VIEW geometry_columns 
AS");
-       pos += snprintf(buf + pos, bufsize - pos, "     SELECT e.value AS 
f_table_catalog, s.name AS f_table_schema, y.f_table_name, y.f_geometry_column, 
y.coord_dimension, y.srid, y.type");
-       pos += snprintf(buf + pos, bufsize - pos, "     FROM schemas s, 
environment e, (");
-       pos += snprintf(buf + pos, bufsize - pos, "             SELECT 
t.schema_id,");
-       pos += snprintf(buf + pos, bufsize - pos, "                     t.name 
AS f_table_name,");
-       pos += snprintf(buf + pos, bufsize - pos, "                     x.name 
AS f_geometry_column,");
-       pos += snprintf(buf + pos, bufsize - pos, "                     
has_z(info)+has_m(info)+2 AS coord_dimension,");
-       pos += snprintf(buf + pos, bufsize - pos, "                     srid, 
get_type(info, 0) AS type");
-       pos += snprintf(buf + pos, bufsize - pos, "             FROM tables t, 
(");
-       pos += snprintf(buf + pos, bufsize - pos, "                     SELECT 
name, table_id, type_digits AS info, type_scale AS srid");
-       pos += snprintf(buf + pos, bufsize - pos, "                     FROM 
columns");
-       pos += snprintf(buf + pos, bufsize - pos, "                     WHERE 
type IN ( SELECT DISTINCT sqlname FROM types WHERE systemname='wkb')");
-       pos += snprintf(buf + pos, bufsize - pos, "                     ) AS 
x");
-       pos += snprintf(buf + pos, bufsize - pos, "             WHERE 
t.id=x.table_id");
-       pos += snprintf(buf + pos, bufsize - pos, "             ) y");
-       pos += snprintf(buf + pos, bufsize - pos, "     WHERE y.schema_id=s.id 
AND e.name='gdk_dbname';");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION mbr(geom 
Geometry) RETURNS mbr external name geom.\"mbr\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Overlaps(box1 mbr, box2 mbr) RETURNS boolean EXTERNAL NAME 
geom.\"mbrOverlaps\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Contains(box1 mbr, box2 mbr) RETURNS boolean EXTERNAL NAME 
geom.\"mbrContains\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Equals(box1 mbr, box2 mbr) RETURNS boolean EXTERNAL NAME 
geom.\"mbrEqual\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Distance(box1 mbr, box2 mbr) RETURNS double EXTERNAL NAME 
geom.\"mbrDistance\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_WKTToSQL(wkt string) RETURNS Geometry external name geom.\"GeomFromText\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_WKBToSQL(geom string) RETURNS Geometry EXTERNAL NAME geom.\"FromBinary\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_AsText(geom Geometry) RETURNS string EXTERNAL NAME geom.\"AsText\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_AsBinary(geom Geometry) RETURNS string EXTERNAL NAME geom.\"AsBinary\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Dimension(geom Geometry) RETURNS integer EXTERNAL NAME geom.\"Dimension\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_GeometryType(geom Geometry) RETURNS string EXTERNAL NAME 
geom.\"GeometryType2\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION ST_SRID(geom 
Geometry) RETURNS integer EXTERNAL NAME geom.\"getSRID\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_SetSRID(geom Geometry, srid integer) RETURNS Geometry EXTERNAL NAME 
geom.\"setSRID\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_IsEmpty(geom Geometry) RETURNS boolean EXTERNAL NAME geom.\"IsEmpty\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_IsSimple(geom Geometry) RETURNS boolean EXTERNAL NAME geom.\"IsSimple\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Boundary(geom Geometry) RETURNS Geometry EXTERNAL NAME geom.\"Boundary\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Envelope(geom Geometry) RETURNS Geometry EXTERNAL NAME geom.\"Envelope\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Equals(geom1 Geometry, geom2 Geometry) RETURNS boolean EXTERNAL NAME 
geom.\"Equals\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Disjoint(geom1 Geometry, geom2 Geometry) RETURNS boolean EXTERNAL NAME 
geom.\"Disjoint\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Intersects(geom1 Geometry, geom2 Geometry) RETURNS boolean EXTERNAL NAME 
geom.\"Intersects\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Touches(geom1 Geometry, geom2 Geometry) RETURNS boolean EXTERNAL NAME 
geom.\"Touches\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Crosses(geom1 Geometry, geom2 Geometry) RETURNS boolean EXTERNAL NAME 
geom.\"Crosses\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Within(geom1 Geometry, geom2 Geometry) RETURNS boolean EXTERNAL NAME 
geom.\"Within\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Contains(geom1 Geometry, geom2 Geometry) RETURNS boolean EXTERNAL NAME 
geom.\"Contains\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Overlaps(geom1 Geometry, geom2 Geometry) RETURNS boolean EXTERNAL NAME 
geom.\"Overlaps\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Relate(geom1 Geometry, geom2 Geometry, intersection_matrix_pattern string) 
RETURNS boolean EXTERNAL NAME geom.\"Relate\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Distance(geom1 Geometry, geom2 Geometry) RETURNS double EXTERNAL NAME 
geom.\"Distance\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Intersection(geom1 Geometry, geom2 Geometry) RETURNS Geometry EXTERNAL NAME 
geom.\"Intersection\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Difference(geom1 Geometry, geom2 Geometry) RETURNS Geometry EXTERNAL NAME 
geom.\"Difference\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Union(geom1 Geometry, geom2 Geometry) RETURNS Geometry EXTERNAL NAME 
geom.\"Union\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE AGGREGATE 
ST_Union(geom Geometry) RETURNS Geometry external name geom.\"Union\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_SymDifference(geom1 Geometry, geom2 Geometry) RETURNS Geometry EXTERNAL NAME 
geom.\"SymDifference\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Buffer(geom Geometry, radius double) RETURNS Geometry EXTERNAL NAME 
geom.\"Buffer\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_ConvexHull(geom Geometry) RETURNS Geometry EXTERNAL NAME 
geom.\"ConvexHull\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION ST_X(geom 
Geometry) RETURNS double EXTERNAL NAME geom.\"X\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION ST_Y(geom 
Geometry) RETURNS double EXTERNAL NAME geom.\"Y\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION ST_Z(geom 
Geometry) RETURNS double EXTERNAL NAME geom.\"Z\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_StartPoint(geom Geometry) RETURNS Geometry EXTERNAL NAME 
geom.\"StartPoint\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_EndPoint(geom Geometry) RETURNS Geometry EXTERNAL NAME geom.\"EndPoint\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_IsRing(geom Geometry) RETURNS boolean EXTERNAL NAME geom.\"IsRing\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Length(geom Geometry) RETURNS double EXTERNAL NAME geom.\"Length\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_IsClosed(geom Geometry) RETURNS boolean EXTERNAL NAME geom.\"IsClosed\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_NumPoints(geom Geometry) RETURNS integer EXTERNAL NAME geom.\"NumPoints\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_PointN(geom Geometry, positionNum integer) RETURNS Geometry EXTERNAL NAME 
geom.\"PointN\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Centroid(geom Geometry) RETURNS Geometry EXTERNAL NAME geom.\"Centroid\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_PointOnSurface(geom Geometry) RETURNS Geometry EXTERNAL NAME 
geom.\"PointOnSurface\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION ST_Area(geom 
Geometry) RETURNS double EXTERNAL NAME geom.\"Area\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_ExteriorRing(geom Geometry) RETURNS Geometry EXTERNAL NAME 
geom.\"ExteriorRing\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_SetExteriorRing(geom Geometry) RETURNS Geometry external name 
geom.\"MakePolygon\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_NumInteriorRing(geom Geometry) RETURNS integer EXTERNAL NAME 
geom.\"NumInteriorRings\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_InteriorRingN(geom Geometry, positionNum integer) RETURNS Geometry EXTERNAL 
NAME geom.\"InteriorRingN\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_InteriorRings(geom Geometry) RETURNS GeometryA EXTERNAL NAME 
geom.\"InteriorRings\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_NumGeometries(geom Geometry) RETURNS integer EXTERNAL NAME 
geom.\"NumGeometries\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_GeometryN(geom Geometry, positionNum integer) RETURNS Geometry EXTERNAL NAME 
geom.\"GeometryN\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_NumPatches(geom Geometry) RETURNS integer ");
-       pos += snprintf(buf + pos, bufsize - pos, "BEGIN ");
-       pos += snprintf(buf + pos, bufsize - pos, " RETURN SELECT 
ST_NumGeometries(geom);");
-       pos += snprintf(buf + pos, bufsize - pos, "END;");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_PatchN(geom Geometry, patchNum integer) RETURNS Geometry ");
-       pos += snprintf(buf + pos, bufsize - pos, "BEGIN");
-       pos += snprintf(buf + pos, bufsize - pos, " RETURN SELECT 
ST_GeometryN(geom, patchNum);");
-       pos += snprintf(buf + pos, bufsize - pos, "END; ");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_GeomFromText(wkt string, srid integer) RETURNS Geometry EXTERNAL NAME 
geom.\"GeomFromText\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_PointFromText(wkt string, srid integer) RETURNS Geometry EXTERNAL NAME 
geom.\"PointFromText\"; ");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_LineFromText(wkt string, srid integer) RETURNS Geometry EXTERNAL NAME 
geom.\"LineFromText\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_PolygonFromText(wkt string, srid integer) RETURNS Geometry EXTERNAL NAME 
geom.\"PolygonFromText\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_MPointFromText(wkt string, srid integer) RETURNS Geometry EXTERNAL NAME 
geom.\"MPointFromText\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_MLineFromText(wkt string, srid integer) RETURNS Geometry EXTERNAL NAME 
geom.\"MLineFromText\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_MPolyFromText(wkt string, srid integer) RETURNS Geometry EXTERNAL NAME 
geom.\"MPolyFromText\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_GeomCollFromText(wkt string, srid integer) RETURNS Geometry EXTERNAL NAME 
geom.\"GeomCollFromText\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_BdPolyFromText(wkt string, srid integer) RETURNS Geometry external name 
geom.\"BdPolyFromText\"; ");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_BdMPolyFromText(wkt string, srid integer) RETURNS Geometry external name 
geom.\"BdMPolyFromText\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_GeometryFromText(wkt string, srid integer) RETURNS Geometry EXTERNAL NAME 
geom.\"GeomFromText\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_GeomFromText(wkt string) RETURNS Geometry EXTERNAL NAME 
geom.\"GeomFromText\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_GeometryFromText(wkt string) RETURNS Geometry EXTERNAL NAME 
geom.\"GeomFromText\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_PointFromText(wkt string) RETURNS Geometry EXTERNAL NAME 
geom.\"PointFromText\"; ");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_LineFromText(wkt string) RETURNS Geometry EXTERNAL NAME 
geom.\"LineFromText\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_PolygonFromText(wkt string) RETURNS Geometry EXTERNAL NAME 
geom.\"PolygonFromText\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_MPointFromText(wkt string) RETURNS Geometry EXTERNAL NAME 
geom.\"MPointFromText\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_MLineFromText(wkt string) RETURNS Geometry EXTERNAL NAME 
geom.\"MLineFromText\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_MPolyFromText(wkt string) RETURNS Geometry EXTERNAL NAME 
geom.\"MPolyFromText\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_GeomCollFromText(wkt string) RETURNS Geometry EXTERNAL NAME 
geom.\"GeomCollFromText\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_MakePoint(x double, y double) RETURNS Geometry EXTERNAL NAME 
geom.\"MakePoint\"; ");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION ST_Point(x 
double, y double) RETURNS Geometry EXTERNAL NAME geom.\"MakePoint\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_MakePoint(x double, y double, z double) RETURNS Geometry EXTERNAL NAME 
geom.\"MakePoint\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_MakePoint(x double, y double, z double, m double) RETURNS Geometry EXTERNAL 
NAME geom.\"MakePoint\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_MakePointM(x double, y double, m double) RETURNS Geometry EXTERNAL NAME 
geom.\"MakePointM\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE AGGREGATE 
ST_MakeLine(geom Geometry) RETURNS Geometry external name geom.\"MakeLine\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_MakeLine(geom1 Geometry, geom2 Geometry) RETURNS Geometry external name 
geom.\"MakeLine\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_MakeEnvelope(xmin double, ymin double, xmax double, ymax double, srid 
integer) RETURNS Geometry external name geom.\"MakeEnvelope\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_MakeEnvelope(xmin double, ymin double, xmax double, ymax double) RETURNS 
Geometry external name geom.\"MakeEnvelope\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_MakePolygon(geom Geometry) RETURNS Geometry external name 
geom.\"MakePolygon\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Polygon(geom Geometry, srid integer) RETURNS Geometry external name 
geom.\"MakePolygon\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_MakeBox2D(lowLeftPointGeom Geometry, upRightPointGeom Geometry) RETURNS mbr 
external name geom.\"MakeBox2D\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
GeometryType(geom Geometry) RETURNS string EXTERNAL NAME 
geom.\"GeometryType1\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_CoordDim(geom Geometry) RETURNS integer EXTERNAL NAME geom.\"CoordDim\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_IsValid(geom Geometry) RETURNS boolean EXTERNAL NAME geom.\"IsValid\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_IsValidReason(geom Geometry) RETURNS string EXTERNAL NAME 
geom.\"IsValidReason\"; ");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_NPoints(geom Geometry) RETURNS integer EXTERNAL NAME geom.\"NPoints\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_NRings(geom Geometry) RETURNS integer EXTERNAL NAME geom.\"NRings\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_NumInteriorRings(geom Geometry) RETURNS integer EXTERNAL NAME 
geom.\"NumInteriorRings\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION ST_XMax(geom 
Geometry) RETURNS double EXTERNAL NAME geom.\"XMaxFromWKB\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION ST_XMax(box 
mbr) RETURNS double EXTERNAL NAME geom.\"XMaxFromMBR\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION ST_XMin(geom 
Geometry) RETURNS double EXTERNAL NAME geom.\"XMinFromWKB\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION ST_XMin(box 
mbr) RETURNS double EXTERNAL NAME geom.\"XMinFromMBR\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION ST_YMax(geom 
Geometry) RETURNS double EXTERNAL NAME geom.\"YMaxFromWKB\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION ST_YMax(box 
mbr) RETURNS double EXTERNAL NAME geom.\"YMaxFromMBR\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION ST_YMin(geom 
Geometry) RETURNS double EXTERNAL NAME geom.\"YMinFromWKB\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION ST_YMin(box 
mbr) RETURNS double EXTERNAL NAME geom.\"YMinFromMBR\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Force2D(geom Geometry) RETURNS Geometry EXTERNAL NAME geom.\"Force2D\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Force3D(geom Geometry) RETURNS Geometry EXTERNAL NAME geom.\"Force3D\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Segmentize(geom Geometry, sz double) RETURNS Geometry EXTERNAL NAME 
geom.\"Segmentize\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
getProj4(srid_in integer) RETURNS string ");
-       pos += snprintf(buf + pos, bufsize - pos, "BEGIN");
-       pos += snprintf(buf + pos, bufsize - pos, " RETURN SELECT proj4text 
FROM spatial_ref_sys WHERE srid=srid_in; ");
-       pos += snprintf(buf + pos, bufsize - pos, "END;");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
InternalTransform(geom Geometry, srid_src integer, srid_dest integer, proj4_src 
string, proj4_dest string) RETURNS Geometry EXTERNAL NAME geom.\"Transform\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Transform(geom Geometry, srid integer) RETURNS Geometry ");
-       pos += snprintf(buf + pos, bufsize - pos, "BEGIN");
-       pos += snprintf(buf + pos, bufsize - pos, " DECLARE srid_src integer;");
-       pos += snprintf(buf + pos, bufsize - pos, " DECLARE proj4_src string;");
-       pos += snprintf(buf + pos, bufsize - pos, " DECLARE proj4_dest 
string;");
-       pos += snprintf(buf + pos, bufsize - pos, " SELECT st_srid(geom) INTO 
srid_src;");
-       pos += snprintf(buf + pos, bufsize - pos, " SELECT getProj4(srid_src) 
INTO proj4_src;");
-       pos += snprintf(buf + pos, bufsize - pos, " SELECT getProj4(srid) INTO 
proj4_dest;");
-       pos += snprintf(buf + pos, bufsize - pos, " IF proj4_src IS NULL THEN");
-       pos += snprintf(buf + pos, bufsize - pos, "  RETURN SELECT 
InternalTransform(geom, srid_src, srid, 'null', proj4_dest); ");
-       pos += snprintf(buf + pos, bufsize - pos, " ELSE");
-       pos += snprintf(buf + pos, bufsize - pos, "  IF proj4_dest IS NULL 
THEN");
-       pos += snprintf(buf + pos, bufsize - pos, "   RETURN SELECT 
InternalTransform(geom, srid_src, srid, proj4_src, 'null'); ");
-       pos += snprintf(buf + pos, bufsize - pos, "  ELSE");
-       pos += snprintf(buf + pos, bufsize - pos, "   RETURN SELECT 
InternalTransform(geom, srid_src, srid, proj4_src, proj4_dest);");
-       pos += snprintf(buf + pos, bufsize - pos, "  END IF;");
-       pos += snprintf(buf + pos, bufsize - pos, " END IF;");
-       pos += snprintf(buf + pos, bufsize - pos, "END;");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Translate(geom Geometry, dx double, dy double) RETURNS Geometry EXTERNAL 
NAME geom.\"Translate\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Translate(geom Geometry, dx double, dy double, dz double) RETURNS Geometry 
EXTERNAL NAME geom.\"Translate\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_AsEWKT(geom Geometry) RETURNS string EXTERNAL NAME geom.\"AsEWKT\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Covers(geom1 Geometry, geom2 Geometry) RETURNS boolean EXTERNAL NAME 
geom.\"Covers\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_CoveredBy(geom1 Geometry, geom2 Geometry) RETURNS boolean EXTERNAL NAME 
geom.\"CoveredBy\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_DWithin(geom1 Geometry, geom2 Geometry, dst double) RETURNS boolean EXTERNAL 
NAME geom.\"DWithin\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Length2D(geom Geometry) RETURNS double EXTERNAL NAME geom.\"Length\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Collect(geom1 Geometry, geom2 Geometry) RETURNS Geometry EXTERNAL NAME 
geom.\"Union\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE AGGREGATE 
ST_Collect(geom Geometry) RETURNS Geometry external name geom.\"Union\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_DelaunayTriangles(geom Geometry, tolerance double, flags integer) RETURNS 
Geometry EXTERNAL NAME geom.\"DelaunayTriangles\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION ST_Dump(geom 
Geometry) RETURNS TABLE(id string, polygonWKB Geometry) EXTERNAL NAME 
geom.\"Dump\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_DumpPoints(geom Geometry) RETURNS TABLE(path string, pointG Geometry) 
EXTERNAL NAME geom.\"DumpPoints\";");
-       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION Contains(a 
Geometry, x double, y double) RETURNS BOOLEAN external name 
geom.\"Contains\";");
-       pos += snprintf(buf + pos, bufsize - pos, "UPDATE _tables set system = 
true where name='spatial_ref_sys';");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION Has_Z(info 
integer) RETURNS integer EXTERNAL NAME geom.\"hasZ\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION Has_M(info 
integer) RETURNS integer EXTERNAL NAME geom.\"hasM\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
get_type(info integer, format integer) RETURNS string EXTERNAL NAME 
geom.\"getType\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE TABLE spatial_ref_sys 
(srid INTEGER NOT NULL PRIMARY KEY, auth_name VARCHAR (256), auth_srid INTEGER, 
srtext VARCHAR (2048), proj4text VARCHAR (2048));\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE VIEW geometry_columns 
AS\n");
+       pos += snprintf(buf + pos, bufsize - pos, "     SELECT e.value AS 
f_table_catalog, s.name AS f_table_schema, y.f_table_name, y.f_geometry_column, 
y.coord_dimension, y.srid, y.type\n");
+       pos += snprintf(buf + pos, bufsize - pos, "     FROM schemas s, 
environment e, (\n");
+       pos += snprintf(buf + pos, bufsize - pos, "             SELECT 
t.schema_id,\n");
+       pos += snprintf(buf + pos, bufsize - pos, "                     t.name 
AS f_table_name,\n");
+       pos += snprintf(buf + pos, bufsize - pos, "                     x.name 
AS f_geometry_column,\n");
+       pos += snprintf(buf + pos, bufsize - pos, "                     
has_z(info)+has_m(info)+2 AS coord_dimension,\n");
+       pos += snprintf(buf + pos, bufsize - pos, "                     srid, 
get_type(info, 0) AS type\n");
+       pos += snprintf(buf + pos, bufsize - pos, "             FROM tables t, 
(\n");
+       pos += snprintf(buf + pos, bufsize - pos, "                     SELECT 
name, table_id, type_digits AS info, type_scale AS srid\n");
+       pos += snprintf(buf + pos, bufsize - pos, "                     FROM 
columns\n");
+       pos += snprintf(buf + pos, bufsize - pos, "                     WHERE 
type IN ( SELECT DISTINCT sqlname FROM types WHERE systemname='wkb')\n");
+       pos += snprintf(buf + pos, bufsize - pos, "                     ) AS 
x\n");
+       pos += snprintf(buf + pos, bufsize - pos, "             WHERE 
t.id=x.table_id\n");
+       pos += snprintf(buf + pos, bufsize - pos, "             ) y\n");
+       pos += snprintf(buf + pos, bufsize - pos, "     WHERE y.schema_id=s.id 
AND e.name='gdk_dbname';\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION mbr(geom 
Geometry) RETURNS mbr external name geom.\"mbr\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Overlaps(box1 mbr, box2 mbr) RETURNS boolean EXTERNAL NAME 
geom.\"mbrOverlaps\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Contains(box1 mbr, box2 mbr) RETURNS boolean EXTERNAL NAME 
geom.\"mbrContains\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Equals(box1 mbr, box2 mbr) RETURNS boolean EXTERNAL NAME 
geom.\"mbrEqual\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Distance(box1 mbr, box2 mbr) RETURNS double EXTERNAL NAME 
geom.\"mbrDistance\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_WKTToSQL(wkt string) RETURNS Geometry external name 
geom.\"GeomFromText\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_WKBToSQL(geom string) RETURNS Geometry EXTERNAL NAME 
geom.\"FromBinary\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_AsText(geom Geometry) RETURNS string EXTERNAL NAME geom.\"AsText\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_AsBinary(geom Geometry) RETURNS string EXTERNAL NAME geom.\"AsBinary\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Dimension(geom Geometry) RETURNS integer EXTERNAL NAME 
geom.\"Dimension\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_GeometryType(geom Geometry) RETURNS string EXTERNAL NAME 
geom.\"GeometryType2\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION ST_SRID(geom 
Geometry) RETURNS integer EXTERNAL NAME geom.\"getSRID\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_SetSRID(geom Geometry, srid integer) RETURNS Geometry EXTERNAL NAME 
geom.\"setSRID\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_IsEmpty(geom Geometry) RETURNS boolean EXTERNAL NAME geom.\"IsEmpty\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_IsSimple(geom Geometry) RETURNS boolean EXTERNAL NAME geom.\"IsSimple\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Boundary(geom Geometry) RETURNS Geometry EXTERNAL NAME 
geom.\"Boundary\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Envelope(geom Geometry) RETURNS Geometry EXTERNAL NAME 
geom.\"Envelope\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Equals(geom1 Geometry, geom2 Geometry) RETURNS boolean EXTERNAL NAME 
geom.\"Equals\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Disjoint(geom1 Geometry, geom2 Geometry) RETURNS boolean EXTERNAL NAME 
geom.\"Disjoint\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Intersects(geom1 Geometry, geom2 Geometry) RETURNS boolean EXTERNAL NAME 
geom.\"Intersects\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Touches(geom1 Geometry, geom2 Geometry) RETURNS boolean EXTERNAL NAME 
geom.\"Touches\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Crosses(geom1 Geometry, geom2 Geometry) RETURNS boolean EXTERNAL NAME 
geom.\"Crosses\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Within(geom1 Geometry, geom2 Geometry) RETURNS boolean EXTERNAL NAME 
geom.\"Within\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Contains(geom1 Geometry, geom2 Geometry) RETURNS boolean EXTERNAL NAME 
geom.\"Contains\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Overlaps(geom1 Geometry, geom2 Geometry) RETURNS boolean EXTERNAL NAME 
geom.\"Overlaps\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Relate(geom1 Geometry, geom2 Geometry, intersection_matrix_pattern string) 
RETURNS boolean EXTERNAL NAME geom.\"Relate\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Distance(geom1 Geometry, geom2 Geometry) RETURNS double EXTERNAL NAME 
geom.\"Distance\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Intersection(geom1 Geometry, geom2 Geometry) RETURNS Geometry EXTERNAL NAME 
geom.\"Intersection\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Difference(geom1 Geometry, geom2 Geometry) RETURNS Geometry EXTERNAL NAME 
geom.\"Difference\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Union(geom1 Geometry, geom2 Geometry) RETURNS Geometry EXTERNAL NAME 
geom.\"Union\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE AGGREGATE 
ST_Union(geom Geometry) RETURNS Geometry external name geom.\"Union\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_SymDifference(geom1 Geometry, geom2 Geometry) RETURNS Geometry EXTERNAL NAME 
geom.\"SymDifference\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Buffer(geom Geometry, radius double) RETURNS Geometry EXTERNAL NAME 
geom.\"Buffer\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_ConvexHull(geom Geometry) RETURNS Geometry EXTERNAL NAME 
geom.\"ConvexHull\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION ST_X(geom 
Geometry) RETURNS double EXTERNAL NAME geom.\"X\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION ST_Y(geom 
Geometry) RETURNS double EXTERNAL NAME geom.\"Y\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION ST_Z(geom 
Geometry) RETURNS double EXTERNAL NAME geom.\"Z\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_StartPoint(geom Geometry) RETURNS Geometry EXTERNAL NAME 
geom.\"StartPoint\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_EndPoint(geom Geometry) RETURNS Geometry EXTERNAL NAME 
geom.\"EndPoint\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_IsRing(geom Geometry) RETURNS boolean EXTERNAL NAME geom.\"IsRing\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Length(geom Geometry) RETURNS double EXTERNAL NAME geom.\"Length\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_IsClosed(geom Geometry) RETURNS boolean EXTERNAL NAME geom.\"IsClosed\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_NumPoints(geom Geometry) RETURNS integer EXTERNAL NAME 
geom.\"NumPoints\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_PointN(geom Geometry, positionNum integer) RETURNS Geometry EXTERNAL NAME 
geom.\"PointN\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_Centroid(geom Geometry) RETURNS Geometry EXTERNAL NAME 
geom.\"Centroid\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_PointOnSurface(geom Geometry) RETURNS Geometry EXTERNAL NAME 
geom.\"PointOnSurface\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION ST_Area(geom 
Geometry) RETURNS double EXTERNAL NAME geom.\"Area\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_ExteriorRing(geom Geometry) RETURNS Geometry EXTERNAL NAME 
geom.\"ExteriorRing\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_SetExteriorRing(geom Geometry) RETURNS Geometry external name 
geom.\"MakePolygon\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_NumInteriorRing(geom Geometry) RETURNS integer EXTERNAL NAME 
geom.\"NumInteriorRings\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_InteriorRingN(geom Geometry, positionNum integer) RETURNS Geometry EXTERNAL 
NAME geom.\"InteriorRingN\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_InteriorRings(geom Geometry) RETURNS GeometryA EXTERNAL NAME 
geom.\"InteriorRings\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_NumGeometries(geom Geometry) RETURNS integer EXTERNAL NAME 
geom.\"NumGeometries\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_GeometryN(geom Geometry, positionNum integer) RETURNS Geometry EXTERNAL NAME 
geom.\"GeometryN\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_NumPatches(geom Geometry) RETURNS integer \n");
+       pos += snprintf(buf + pos, bufsize - pos, "BEGIN \n");
+       pos += snprintf(buf + pos, bufsize - pos, " RETURN SELECT 
ST_NumGeometries(geom);\n");
+       pos += snprintf(buf + pos, bufsize - pos, "END;\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_PatchN(geom Geometry, patchNum integer) RETURNS Geometry \n");
+       pos += snprintf(buf + pos, bufsize - pos, "BEGIN\n");
+       pos += snprintf(buf + pos, bufsize - pos, " RETURN SELECT 
ST_GeometryN(geom, patchNum);\n");
+       pos += snprintf(buf + pos, bufsize - pos, "END; \n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_GeomFromText(wkt string, srid integer) RETURNS Geometry EXTERNAL NAME 
geom.\"GeomFromText\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_PointFromText(wkt string, srid integer) RETURNS Geometry EXTERNAL NAME 
geom.\"PointFromText\"; \n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_LineFromText(wkt string, srid integer) RETURNS Geometry EXTERNAL NAME 
geom.\"LineFromText\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_PolygonFromText(wkt string, srid integer) RETURNS Geometry EXTERNAL NAME 
geom.\"PolygonFromText\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_MPointFromText(wkt string, srid integer) RETURNS Geometry EXTERNAL NAME 
geom.\"MPointFromText\";\n");
+       pos += snprintf(buf + pos, bufsize - pos, "CREATE FUNCTION 
ST_MLineFromText(wkt string, srid integer) RETURNS Geometry EXTERNAL NAME 
geom.\"MLineFromText\";\n");
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to