[prev in list] [next in list] [prev in thread] [next in thread] 

List:       monetdb-checkins
Subject:    MonetDB: geo - types should be dropped after dropping the relate...
From:       Kostis Kyzirakos <commits+kostis=cwi.nl () monetdb ! org>
Date:       2016-01-29 15:31:47
Message-ID: hg.cda5ba9639f6.1454081507.6315528441665844383 () monetdb2 ! cwi-incubator ! nl
[Download RAW message or body]

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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic