Changeset: e49a8a7e18cf for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e49a8a7e18cf Modified Files: sql/backends/monet5/sql_upgrades.c sql/storage/bat/Makefile.ag sql/storage/bat/bat_logger.c sql/storage/store.c Branch: geo Log Message:
Added the upgrade code for the geom module diffs (truncated from 4333 to 300 lines): diff --git a/sql/backends/monet5/sql_upgrades.c b/sql/backends/monet5/sql_upgrades.c --- a/sql/backends/monet5/sql_upgrades.c +++ b/sql/backends/monet5/sql_upgrades.c @@ -1615,7 +1615,6 @@ sql_update_jul2015(Client c) return err; /* usually MAL_SUCCEED */ } -#if 0 static str sql_update_dec2015(Client c) { @@ -1639,7 +1638,4150 @@ sql_update_dec2015(Client c) "create procedure profiler.setpoolsize(poolsize int) external name profiler.setpoolsize;" "create procedure profiler.setstream(host string, port int) external name profiler.setstream;"); - if (schema) { + /* drop the previous geometry types */ + /* drop old types */ + /** Keep only the geometry type **/ + /** pos += snprintf(buf + pos, bufsize - pos, "DROP TYPE Geometry;"); **/ + pos += snprintf(buf + pos, bufsize - pos, "DROP TYPE Point;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP TYPE Curve;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP TYPE LineString;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP TYPE Surface;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP TYPE Polygon;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP TYPE MultiPoint;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP TYPE MultiCurve;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP TYPE MultiLineString;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP TYPE MultiSurface;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP TYPE MultiPolygon;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP TYPE GeomCollection;"); + + /* drop old functions */ + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION mbr;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION mbroverlaps;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION GeomFromText;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION PointFromText;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION LineFromText;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION PolyFromText;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION MPointFromText;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION MLineFromText;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION MPolyFromText;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION GeomCollectionFromText;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION PolygonFromText;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION AsText;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION X;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION Y;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION Point;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION Dimension;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION GeometryTypeId;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION SRID;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION Envelope;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION IsEmpty;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION IsSimple;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION Boundary;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION Equals;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION Disjoint;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION \"Intersect\";"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION Touches;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION Crosses;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION Within;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION Contains;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION Contains;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION Overlaps;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION Relate;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION Area;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION Length;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION Distance;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION Buffer;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION ConvexHull;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION Intersection;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION \"Union\";"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION Difference;"); + pos += snprintf(buf + pos, bufsize - pos, "DROP FUNCTION SymDifference;"); + + /* 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\";"); + + /* populate the spatial_ref_sys table */ + pos += snprintf(buf + pos, bufsize - pos, "COPY 3911 RECORDS INTO spatial_ref_sys FROM STDIN USING DELIMITERS ',';"); + pos += snprintf(buf + pos, bufsize - pos, "3819,EPSG,3819,GEOGCS[\"HD1909\"\\,DATUM[\"Hungarian_Datum_1909\"\\,SPHEROID[\"Bessel 1841\"\\,6377397.155\\,299.1528128\\,AUTHORITY[\"EPSG\"\\,\"7004\"]]\\,TOWGS84[595.48\\,121.69\\,515.35\\,4.115\\,-2.9383\\,0.853\\,-3.408]\\,AUTHORITY[\"EPSG\"\\,\"1024\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"3819\"]],+proj=longlat +ellps=bessel +towgs84=595.48\\,121.69\\,515.35\\,4.115\\,-2.9383\\,0.853\\,-3.408 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "3821,EPSG,3821,GEOGCS[\"TWD67\"\\,DATUM[\"Taiwan_Datum_1967\"\\,SPHEROID[\"GRS 1967 Modified\"\\,6378160\\,298.25\\,AUTHORITY[\"EPSG\"\\,\"7050\"]]\\,AUTHORITY[\"EPSG\"\\,\"1025\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"3821\"]],+proj=longlat +ellps=aust_SA +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "3824,EPSG,3824,GEOGCS[\"TWD97\"\\,DATUM[\"Taiwan_Datum_1997\"\\,SPHEROID[\"GRS 1980\"\\,6378137\\,298.257222101\\,AUTHORITY[\"EPSG\"\\,\"7019\"]]\\,TOWGS84[0\\,0\\,0\\,0\\,0\\,0\\,0]\\,AUTHORITY[\"EPSG\"\\,\"1026\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"3824\"]],+proj=longlat +ellps=GRS80 +towgs84=0\\,0\\,0\\,0\\,0\\,0\\,0 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "3889,EPSG,3889,GEOGCS[\"IGRS\"\\,DATUM[\"Iraqi_Geospatial_Reference_System\"\\,SPHEROID[\"GRS 1980\"\\,6378137\\,298.257222101\\,AUTHORITY[\"EPSG\"\\,\"7019\"]]\\,TOWGS84[0\\,0\\,0\\,0\\,0\\,0\\,0]\\,AUTHORITY[\"EPSG\"\\,\"1029\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"3889\"]],+proj=longlat +ellps=GRS80 +towgs84=0\\,0\\,0\\,0\\,0\\,0\\,0 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "3906,EPSG,3906,GEOGCS[\"MGI 1901\"\\,DATUM[\"MGI_1901\"\\,SPHEROID[\"Bessel 1841\"\\,6377397.155\\,299.1528128\\,AUTHORITY[\"EPSG\"\\,\"7004\"]]\\,TOWGS84[682\\,-203\\,480\\,0\\,0\\,0\\,0]\\,AUTHORITY[\"EPSG\"\\,\"1031\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"3906\"]],+proj=longlat +ellps=bessel +towgs84=682\\,-203\\,480\\,0\\,0\\,0\\,0 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4001,EPSG,4001,GEOGCS[\"Unknown datum based upon the Airy 1830 ellipsoid\"\\,DATUM[\"Not_specified_based_on_Airy_1830_ellipsoid\"\\,SPHEROID[\"Airy 1830\"\\,6377563.396\\,299.3249646\\,AUTHORITY[\"EPSG\"\\,\"7001\"]]\\,AUTHORITY[\"EPSG\"\\,\"6001\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4001\"]],+proj=longlat +ellps=airy +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4002,EPSG,4002,GEOGCS[\"Unknown datum based upon the Airy Modified 1849 ellipsoid\"\\,DATUM[\"Not_specified_based_on_Airy_Modified_1849_ellipsoid\"\\,SPHEROID[\"Airy Modified 1849\"\\,6377340.189\\,299.3249646\\,AUTHORITY[\"EPSG\"\\,\"7002\"]]\\,AUTHORITY[\"EPSG\"\\,\"6002\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4002\"]],+proj=longlat +ellps=mod_airy +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4003,EPSG,4003,GEOGCS[\"Unknown datum based upon the Australian National Spheroid\"\\,DATUM[\"Not_specified_based_on_Australian_National_Spheroid\"\\,SPHEROID[\"Australian National Spheroid\"\\,6378160\\,298.25\\,AUTHORITY[\"EPSG\"\\,\"7003\"]]\\,AUTHORITY[\"EPSG\"\\,\"6003\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4003\"]],+proj=longlat +ellps=aust_SA +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4004,EPSG,4004,GEOGCS[\"Unknown datum based upon the Bessel 1841 ellipsoid\"\\,DATUM[\"Not_specified_based_on_Bessel_1841_ellipsoid\"\\,SPHEROID[\"Bessel 1841\"\\,6377397.155\\,299.1528128\\,AUTHORITY[\"EPSG\"\\,\"7004\"]]\\,AUTHORITY[\"EPSG\"\\,\"6004\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4004\"]],+proj=longlat +ellps=bessel +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4005,EPSG,4005,GEOGCS[\"Unknown datum based upon the Bessel Modified ellipsoid\"\\,DATUM[\"Not_specified_based_on_Bessel_Modified_ellipsoid\"\\,SPHEROID[\"Bessel Modified\"\\,6377492.018\\,299.1528128\\,AUTHORITY[\"EPSG\"\\,\"7005\"]]\\,AUTHORITY[\"EPSG\"\\,\"6005\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4005\"]],+proj=longlat +a=6377492.018 +b=6356173.508712696 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4006,EPSG,4006,GEOGCS[\"Unknown datum based upon the Bessel Namibia ellipsoid\"\\,DATUM[\"Not_specified_based_on_Bessel_Namibia_ellipsoid\"\\,SPHEROID[\"Bessel Namibia (GLM)\"\\,6377483.865280419\\,299.1528128\\,AUTHORITY[\"EPSG\"\\,\"7046\"]]\\,AUTHORITY[\"EPSG\"\\,\"6006\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4006\"]],+proj=longlat +ellps=bess_nam +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4007,EPSG,4007,GEOGCS[\"Unknown datum based upon the Clarke 1858 ellipsoid\"\\,DATUM[\"Not_specified_based_on_Clarke_1858_ellipsoid\"\\,SPHEROID[\"Clarke 1858\"\\,6378293.645208759\\,294.2606763692569\\,AUTHORITY[\"EPSG\"\\,\"7007\"]]\\,AUTHORITY[\"EPSG\"\\,\"6007\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4007\"]],+proj=longlat +a=6378293.645208759 +b=6356617.987679838 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4008,EPSG,4008,GEOGCS[\"Unknown datum based upon the Clarke 1866 ellipsoid\"\\,DATUM[\"Not_specified_based_on_Clarke_1866_ellipsoid\"\\,SPHEROID[\"Clarke 1866\"\\,6378206.4\\,294.9786982139006\\,AUTHORITY[\"EPSG\"\\,\"7008\"]]\\,AUTHORITY[\"EPSG\"\\,\"6008\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4008\"]],+proj=longlat +ellps=clrk66 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4009,EPSG,4009,GEOGCS[\"Unknown datum based upon the Clarke 1866 Michigan ellipsoid\"\\,DATUM[\"Not_specified_based_on_Clarke_1866_Michigan_ellipsoid\"\\,SPHEROID[\"Clarke 1866 Michigan\"\\,6378450.047548896\\,294.9786971646739\\,AUTHORITY[\"EPSG\"\\,\"7009\"]]\\,AUTHORITY[\"EPSG\"\\,\"6009\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4009\"]],+proj=longlat +a=6378450.047548896 +b=6356826.621488444 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4010,EPSG,4010,GEOGCS[\"Unknown datum based upon the Clarke 1880 (Benoit) ellipsoid\"\\,DATUM[\"Not_specified_based_on_Clarke_1880_Benoit_ellipsoid\"\\,SPHEROID[\"Clarke 1880 (Benoit)\"\\,6378300.789\\,293.4663155389802\\,AUTHORITY[\"EPSG\"\\,\"7010\"]]\\,AUTHORITY[\"EPSG\"\\,\"6010\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4010\"]],+proj=longlat +a=6378300.789 +b=6356566.435 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4011,EPSG,4011,GEOGCS[\"Unknown datum based upon the Clarke 1880 (IGN) ellipsoid\"\\,DATUM[\"Not_specified_based_on_Clarke_1880_IGN_ellipsoid\"\\,SPHEROID[\"Clarke 1880 (IGN)\"\\,6378249.2\\,293.4660212936265\\,AUTHORITY[\"EPSG\"\\,\"7011\"]]\\,AUTHORITY[\"EPSG\"\\,\"6011\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4011\"]],+proj=longlat +a=6378249.2 +b=6356515 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4012,EPSG,4012,GEOGCS[\"Unknown datum based upon the Clarke 1880 (RGS) ellipsoid\"\\,DATUM[\"Not_specified_based_on_Clarke_1880_RGS_ellipsoid\"\\,SPHEROID[\"Clarke 1880 (RGS)\"\\,6378249.145\\,293.465\\,AUTHORITY[\"EPSG\"\\,\"7012\"]]\\,AUTHORITY[\"EPSG\"\\,\"6012\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4012\"]],+proj=longlat +ellps=clrk80 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4013,EPSG,4013,GEOGCS[\"Unknown datum based upon the Clarke 1880 (Arc) ellipsoid\"\\,DATUM[\"Not_specified_based_on_Clarke_1880_Arc_ellipsoid\"\\,SPHEROID[\"Clarke 1880 (Arc)\"\\,6378249.145\\,293.4663077\\,AUTHORITY[\"EPSG\"\\,\"7013\"]]\\,AUTHORITY[\"EPSG\"\\,\"6013\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4013\"]],+proj=longlat +a=6378249.145 +b=6356514.966398753 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4014,EPSG,4014,GEOGCS[\"Unknown datum based upon the Clarke 1880 (SGA 1922) ellipsoid\"\\,DATUM[\"Not_specified_based_on_Clarke_1880_SGA_1922_ellipsoid\"\\,SPHEROID[\"Clarke 1880 (SGA 1922)\"\\,6378249.2\\,293.46598\\,AUTHORITY[\"EPSG\"\\,\"7014\"]]\\,AUTHORITY[\"EPSG\"\\,\"6014\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4014\"]],+proj=longlat +a=6378249.2 +b=6356514.996941779 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4015,EPSG,4015,GEOGCS[\"Unknown datum based upon the Everest 1830 (1937 Adjustment) ellipsoid\"\\,DATUM[\"Not_specified_based_on_Everest_1830_1937_Adjustment_ellipsoid\"\\,SPHEROID[\"Everest 1830 (1937 Adjustment)\"\\,6377276.345\\,300.8017\\,AUTHORITY[\"EPSG\"\\,\"7015\"]]\\,AUTHORITY[\"EPSG\"\\,\"6015\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4015\"]],+proj=longlat +a=6377276.345 +b=6356075.41314024 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4016,EPSG,4016,GEOGCS[\"Unknown datum based upon the Everest 1830 (1967 Definition) ellipsoid\"\\,DATUM[\"Not_specified_based_on_Everest_1830_1967_Definition_ellipsoid\"\\,SPHEROID[\"Everest 1830 (1967 Definition)\"\\,6377298.556\\,300.8017\\,AUTHORITY[\"EPSG\"\\,\"7016\"]]\\,AUTHORITY[\"EPSG\"\\,\"6016\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4016\"]],+proj=longlat +ellps=evrstSS +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4018,EPSG,4018,GEOGCS[\"Unknown datum based upon the Everest 1830 Modified ellipsoid\"\\,DATUM[\"Not_specified_based_on_Everest_1830_Modified_ellipsoid\"\\,SPHEROID[\"Everest 1830 Modified\"\\,6377304.063\\,300.8017\\,AUTHORITY[\"EPSG\"\\,\"7018\"]]\\,AUTHORITY[\"EPSG\"\\,\"6018\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4018\"]],+proj=longlat +a=6377304.063 +b=6356103.038993155 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4019,EPSG,4019,GEOGCS[\"Unknown datum based upon the GRS 1980 ellipsoid\"\\,DATUM[\"Not_specified_based_on_GRS_1980_ellipsoid\"\\,SPHEROID[\"GRS 1980\"\\,6378137\\,298.257222101\\,AUTHORITY[\"EPSG\"\\,\"7019\"]]\\,AUTHORITY[\"EPSG\"\\,\"6019\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4019\"]],+proj=longlat +ellps=GRS80 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4020,EPSG,4020,GEOGCS[\"Unknown datum based upon the Helmert 1906 ellipsoid\"\\,DATUM[\"Not_specified_based_on_Helmert_1906_ellipsoid\"\\,SPHEROID[\"Helmert 1906\"\\,6378200\\,298.3\\,AUTHORITY[\"EPSG\"\\,\"7020\"]]\\,AUTHORITY[\"EPSG\"\\,\"6020\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4020\"]],+proj=longlat +ellps=helmert +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4021,EPSG,4021,GEOGCS[\"Unknown datum based upon the Indonesian National Spheroid\"\\,DATUM[\"Not_specified_based_on_Indonesian_National_Spheroid\"\\,SPHEROID[\"Indonesian National Spheroid\"\\,6378160\\,298.247\\,AUTHORITY[\"EPSG\"\\,\"7021\"]]\\,AUTHORITY[\"EPSG\"\\,\"6021\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4021\"]],+proj=longlat +a=6378160 +b=6356774.50408554 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4022,EPSG,4022,GEOGCS[\"Unknown datum based upon the International 1924 ellipsoid\"\\,DATUM[\"Not_specified_based_on_International_1924_ellipsoid\"\\,SPHEROID[\"International 1924\"\\,6378388\\,297\\,AUTHORITY[\"EPSG\"\\,\"7022\"]]\\,AUTHORITY[\"EPSG\"\\,\"6022\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4022\"]],+proj=longlat +ellps=intl +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4023,EPSG,4023,GEOGCS[\"MOLDREF99\"\\,DATUM[\"MOLDREF99\"\\,SPHEROID[\"GRS 1980\"\\,6378137\\,298.257222101\\,AUTHORITY[\"EPSG\"\\,\"7019\"]]\\,AUTHORITY[\"EPSG\"\\,\"1032\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4023\"]],+proj=longlat +ellps=GRS80 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4024,EPSG,4024,GEOGCS[\"Unknown datum based upon the Krassowsky 1940 ellipsoid\"\\,DATUM[\"Not_specified_based_on_Krassowsky_1940_ellipsoid\"\\,SPHEROID[\"Krassowsky 1940\"\\,6378245\\,298.3\\,AUTHORITY[\"EPSG\"\\,\"7024\"]]\\,AUTHORITY[\"EPSG\"\\,\"6024\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4024\"]],+proj=longlat +ellps=krass +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4025,EPSG,4025,GEOGCS[\"Unknown datum based upon the NWL 9D ellipsoid\"\\,DATUM[\"Not_specified_based_on_NWL_9D_ellipsoid\"\\,SPHEROID[\"NWL 9D\"\\,6378145\\,298.25\\,AUTHORITY[\"EPSG\"\\,\"7025\"]]\\,AUTHORITY[\"EPSG\"\\,\"6025\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4025\"]],+proj=longlat +ellps=WGS66 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4027,EPSG,4027,GEOGCS[\"Unknown datum based upon the Plessis 1817 ellipsoid\"\\,DATUM[\"Not_specified_based_on_Plessis_1817_ellipsoid\"\\,SPHEROID[\"Plessis 1817\"\\,6376523\\,308.64\\,AUTHORITY[\"EPSG\"\\,\"7027\"]]\\,AUTHORITY[\"EPSG\"\\,\"6027\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4027\"]],+proj=longlat +a=6376523 +b=6355862.933255573 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4028,EPSG,4028,GEOGCS[\"Unknown datum based upon the Struve 1860 ellipsoid\"\\,DATUM[\"Not_specified_based_on_Struve_1860_ellipsoid\"\\,SPHEROID[\"Struve 1860\"\\,6378298.3\\,294.73\\,AUTHORITY[\"EPSG\"\\,\"7028\"]]\\,AUTHORITY[\"EPSG\"\\,\"6028\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4028\"]],+proj=longlat +a=6378298.3 +b=6356657.142669561 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4029,EPSG,4029,GEOGCS[\"Unknown datum based upon the War Office ellipsoid\"\\,DATUM[\"Not_specified_based_on_War_Office_ellipsoid\"\\,SPHEROID[\"War Office\"\\,6378300\\,296\\,AUTHORITY[\"EPSG\"\\,\"7029\"]]\\,AUTHORITY[\"EPSG\"\\,\"6029\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4029\"]],+proj=longlat +a=6378300 +b=6356751.689189189 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4030,EPSG,4030,GEOGCS[\"Unknown datum based upon the WGS 84 ellipsoid\"\\,DATUM[\"Not_specified_based_on_WGS_84_ellipsoid\"\\,SPHEROID[\"WGS 84\"\\,6378137\\,298.257223563\\,AUTHORITY[\"EPSG\"\\,\"7030\"]]\\,AUTHORITY[\"EPSG\"\\,\"6030\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4030\"]],+proj=longlat +ellps=WGS84 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4031,EPSG,4031,GEOGCS[\"Unknown datum based upon the GEM 10C ellipsoid\"\\,DATUM[\"Not_specified_based_on_GEM_10C_ellipsoid\"\\,SPHEROID[\"GEM 10C\"\\,6378137\\,298.257223563\\,AUTHORITY[\"EPSG\"\\,\"7031\"]]\\,AUTHORITY[\"EPSG\"\\,\"6031\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4031\"]],+proj=longlat +ellps=WGS84 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4032,EPSG,4032,GEOGCS[\"Unknown datum based upon the OSU86F ellipsoid\"\\,DATUM[\"Not_specified_based_on_OSU86F_ellipsoid\"\\,SPHEROID[\"OSU86F\"\\,6378136.2\\,298.257223563\\,AUTHORITY[\"EPSG\"\\,\"7032\"]]\\,AUTHORITY[\"EPSG\"\\,\"6032\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4032\"]],+proj=longlat +a=6378136.2 +b=6356751.516927429 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4033,EPSG,4033,GEOGCS[\"Unknown datum based upon the OSU91A ellipsoid\"\\,DATUM[\"Not_specified_based_on_OSU91A_ellipsoid\"\\,SPHEROID[\"OSU91A\"\\,6378136.3\\,298.257223563\\,AUTHORITY[\"EPSG\"\\,\"7033\"]]\\,AUTHORITY[\"EPSG\"\\,\"6033\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4033\"]],+proj=longlat +a=6378136.3 +b=6356751.616592146 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4034,EPSG,4034,GEOGCS[\"Unknown datum based upon the Clarke 1880 ellipsoid\"\\,DATUM[\"Not_specified_based_on_Clarke_1880_ellipsoid\"\\,SPHEROID[\"Clarke 1880\"\\,6378249.144808011\\,293.4663076556349\\,AUTHORITY[\"EPSG\"\\,\"7034\"]]\\,AUTHORITY[\"EPSG\"\\,\"6034\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4034\"]],+proj=longlat +a=6378249.144808011 +b=6356514.966204134 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4035,EPSG,4035,GEOGCS[\"Unknown datum based upon the Authalic Sphere\"\\,DATUM[\"Not_specified_based_on_Authalic_Sphere\"\\,SPHEROID[\"Sphere\"\\,6371000\\,0\\,AUTHORITY[\"EPSG\"\\,\"7035\"]]\\,AUTHORITY[\"EPSG\"\\,\"6035\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9108\"]]\\,AUTHORITY[\"EPSG\"\\,\"4035\"]],+proj=longlat +a=6371000 +b=6371000 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4036,EPSG,4036,GEOGCS[\"Unknown datum based upon the GRS 1967 ellipsoid\"\\,DATUM[\"Not_specified_based_on_GRS_1967_ellipsoid\"\\,SPHEROID[\"GRS 1967\"\\,6378160\\,298.247167427\\,AUTHORITY[\"EPSG\"\\,\"7036\"]]\\,AUTHORITY[\"EPSG\"\\,\"6036\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4036\"]],+proj=longlat +ellps=GRS67 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4041,EPSG,4041,GEOGCS[\"Unknown datum based upon the Average Terrestrial System 1977 ellipsoid\"\\,DATUM[\"Not_specified_based_on_Average_Terrestrial_System_1977_ellipsoid\"\\,SPHEROID[\"Average Terrestrial System 1977\"\\,6378135\\,298.257\\,AUTHORITY[\"EPSG\"\\,\"7041\"]]\\,AUTHORITY[\"EPSG\"\\,\"6041\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4041\"]],+proj=longlat +a=6378135 +b=6356750.304921594 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4042,EPSG,4042,GEOGCS[\"Unknown datum based upon the Everest (1830 Definition) ellipsoid\"\\,DATUM[\"Not_specified_based_on_Everest_1830_Definition_ellipsoid\"\\,SPHEROID[\"Everest (1830 Definition)\"\\,6377299.36559538\\,300.8017255433552\\,AUTHORITY[\"EPSG\"\\,\"7042\"]]\\,AUTHORITY[\"EPSG\"\\,\"6042\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4042\"]],+proj=longlat +a=6377299.36559538 +b=6356098.359005156 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4043,EPSG,4043,GEOGCS[\"Unknown datum based upon the WGS 72 ellipsoid\"\\,DATUM[\"Not_specified_based_on_WGS_72_ellipsoid\"\\,SPHEROID[\"WGS 72\"\\,6378135\\,298.26\\,AUTHORITY[\"EPSG\"\\,\"7043\"]]\\,AUTHORITY[\"EPSG\"\\,\"6043\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4043\"]],+proj=longlat +ellps=WGS72 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4044,EPSG,4044,GEOGCS[\"Unknown datum based upon the Everest 1830 (1962 Definition) ellipsoid\"\\,DATUM[\"Not_specified_based_on_Everest_1830_1962_Definition_ellipsoid\"\\,SPHEROID[\"Everest 1830 (1962 Definition)\"\\,6377301.243\\,300.8017255\\,AUTHORITY[\"EPSG\"\\,\"7044\"]]\\,AUTHORITY[\"EPSG\"\\,\"6044\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4044\"]],+proj=longlat +a=6377301.243 +b=6356100.230165384 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4045,EPSG,4045,GEOGCS[\"Unknown datum based upon the Everest 1830 (1975 Definition) ellipsoid\"\\,DATUM[\"Not_specified_based_on_Everest_1830_1975_Definition_ellipsoid\"\\,SPHEROID[\"Everest 1830 (1975 Definition)\"\\,6377299.151\\,300.8017255\\,AUTHORITY[\"EPSG\"\\,\"7045\"]]\\,AUTHORITY[\"EPSG\"\\,\"6045\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4045\"]],+proj=longlat +a=6377299.151 +b=6356098.145120132 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4046,EPSG,4046,GEOGCS[\"RGRDC 2005\"\\,DATUM[\"Reseau_Geodesique_de_la_RDC_2005\"\\,SPHEROID[\"GRS 1980\"\\,6378137\\,298.257222101\\,AUTHORITY[\"EPSG\"\\,\"7019\"]]\\,TOWGS84[0\\,0\\,0\\,0\\,0\\,0\\,0]\\,AUTHORITY[\"EPSG\"\\,\"1033\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4046\"]],+proj=longlat +ellps=GRS80 +towgs84=0\\,0\\,0\\,0\\,0\\,0\\,0 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4047,EPSG,4047,GEOGCS[\"Unspecified datum based upon the GRS 1980 Authalic Sphere\"\\,DATUM[\"Not_specified_based_on_GRS_1980_Authalic_Sphere\"\\,SPHEROID[\"GRS 1980 Authalic Sphere\"\\,6371007\\,0\\,AUTHORITY[\"EPSG\"\\,\"7048\"]]\\,AUTHORITY[\"EPSG\"\\,\"6047\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4047\"]],+proj=longlat +a=6371007 +b=6371007 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4052,EPSG,4052,GEOGCS[\"Unspecified datum based upon the Clarke 1866 Authalic Sphere\"\\,DATUM[\"Not_specified_based_on_Clarke_1866_Authalic_Sphere\"\\,SPHEROID[\"Clarke 1866 Authalic Sphere\"\\,6370997\\,0\\,AUTHORITY[\"EPSG\"\\,\"7052\"]]\\,AUTHORITY[\"EPSG\"\\,\"6052\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4052\"]],+proj=longlat +a=6370997 +b=6370997 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4053,EPSG,4053,GEOGCS[\"Unspecified datum based upon the International 1924 Authalic Sphere\"\\,DATUM[\"Not_specified_based_on_International_1924_Authalic_Sphere\"\\,SPHEROID[\"International 1924 Authalic Sphere\"\\,6371228\\,0\\,AUTHORITY[\"EPSG\"\\,\"7057\"]]\\,AUTHORITY[\"EPSG\"\\,\"6053\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4053\"]],+proj=longlat +a=6371228 +b=6371228 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4054,EPSG,4054,GEOGCS[\"Unspecified datum based upon the Hughes 1980 ellipsoid\"\\,DATUM[\"Not_specified_based_on_Hughes_1980_ellipsoid\"\\,SPHEROID[\"Hughes 1980\"\\,6378273\\,298.279411123061\\,AUTHORITY[\"EPSG\"\\,\"7058\"]]\\,AUTHORITY[\"EPSG\"\\,\"6054\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4054\"]],+proj=longlat +a=6378273 +b=6356889.449 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4055,EPSG,4055,GEOGCS[\"Popular Visualisation CRS\"\\,DATUM[\"Popular_Visualisation_Datum\"\\,SPHEROID[\"Popular Visualisation Sphere\"\\,6378137\\,0\\,AUTHORITY[\"EPSG\"\\,\"7059\"]]\\,TOWGS84[0\\,0\\,0\\,0\\,0\\,0\\,0]\\,AUTHORITY[\"EPSG\"\\,\"6055\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4055\"]],+proj=longlat +a=6378137 +b=6378137 +towgs84=0\\,0\\,0\\,0\\,0\\,0\\,0 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4075,EPSG,4075,GEOGCS[\"SREF98\"\\,DATUM[\"Serbian_Reference_Network_1998\"\\,SPHEROID[\"GRS 1980\"\\,6378137\\,298.257222101\\,AUTHORITY[\"EPSG\"\\,\"7019\"]]\\,TOWGS84[0\\,0\\,0\\,0\\,0\\,0\\,0]\\,AUTHORITY[\"EPSG\"\\,\"1034\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4075\"]],+proj=longlat +ellps=GRS80 +towgs84=0\\,0\\,0\\,0\\,0\\,0\\,0 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4081,EPSG,4081,GEOGCS[\"REGCAN95\"\\,DATUM[\"Red_Geodesica_de_Canarias_1995\"\\,SPHEROID[\"GRS 1980\"\\,6378137\\,298.257222101\\,AUTHORITY[\"EPSG\"\\,\"7019\"]]\\,TOWGS84[0\\,0\\,0\\,0\\,0\\,0\\,0]\\,AUTHORITY[\"EPSG\"\\,\"1035\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4081\"]],+proj=longlat +ellps=GRS80 +towgs84=0\\,0\\,0\\,0\\,0\\,0\\,0 +no_defs "); + pos += snprintf(buf + pos, bufsize - pos, "4120,EPSG,4120,GEOGCS[\"Greek\"\\,DATUM[\"Greek\"\\,SPHEROID[\"Bessel 1841\"\\,6377397.155\\,299.1528128\\,AUTHORITY[\"EPSG\"\\,\"7004\"]]\\,AUTHORITY[\"EPSG\"\\,\"6120\"]]\\,PRIMEM[\"Greenwich\"\\,0\\,AUTHORITY[\"EPSG\"\\,\"8901\"]]\\,UNIT[\"degree\"\\,0.0174532925199433\\,AUTHORITY[\"EPSG\"\\,\"9122\"]]\\,AUTHORITY[\"EPSG\"\\,\"4120\"]],+proj=longlat +ellps=bessel +no_defs "); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list