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