]> granicus.if.org Git - postgis/commitdiff
#1433: Part 2 - merge what is left of sqlmm.sql.in.c into postgis.sql.in.c
authorRegina Obe <lr@pcorp.us>
Thu, 5 Jan 2012 20:31:29 +0000 (20:31 +0000)
committerRegina Obe <lr@pcorp.us>
Thu, 5 Jan 2012 20:31:29 +0000 (20:31 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@8682 b70326c6-7e19-0410-871a-916f4a2858ee

postgis/Makefile.in
postgis/postgis.sql.in.c
postgis/sqlmm.sql.in.c [deleted file]

index 8b6427b6f137c4e7ec0c04c5f70025e944819c5d..570de451352f25895123e4a4b4451a6192dd6766 100644 (file)
@@ -127,7 +127,7 @@ $(SQL_OBJS): %.in: %.in.c
 # SQL objects are also dependent on postgis_config.h for PostgreSQL version
 $(SQL_OBJS): ../postgis_config.h
 
-postgis.sql.in: sqldefines.h long_xact.sql.in.c sqlmm.sql.in.c geography.sql.in.c postgis_drop.sql.in.c
+postgis.sql.in: sqldefines.h long_xact.sql.in.c geography.sql.in.c postgis_drop.sql.in.c
 
 #uninstall_postgis.sql.in: sqldefines.h uninstall_sqlmm.sql.in.c uninstall_long_xact.sql.in.c uninstall_geography.sql.in.c
 uninstall_postgis.sql: postgis.sql ../utils/create_undef.pl 
index 61145f2ed6c891e9502321530d772fb1bb5c0cb2..e9059601f428b98821ea35f42b2fd499946e87fb 100644 (file)
@@ -4155,7 +4155,6 @@ $$
 LANGUAGE 'plpgsql' IMMUTABLE STRICT;\r
 \r
 #include "long_xact.sql.in.c"\r
-#include "sqlmm.sql.in.c"\r
 #include "geography.sql.in.c"\r
 \r
 \r
@@ -4409,7 +4408,11 @@ CREATE OR REPLACE FUNCTION ST_3DIntersects(geom1 geometry, geom2 geometry)
 ---------------------------------------------------------------\r
 -- SQL-MM\r
 ---------------------------------------------------------------\r
-\r
+-- PostGIS equivalent function: ST_ndims(geometry)\r
+CREATE OR REPLACE FUNCTION ST_CoordDim(geometry)\r
+       RETURNS smallint\r
+       AS 'MODULE_PATHNAME', 'LWGEOM_ndims'\r
+       LANGUAGE 'C' IMMUTABLE STRICT; \r
 --\r
 -- SQL-MM\r
 --\r
@@ -4443,6 +4446,72 @@ CREATE OR REPLACE FUNCTION ST_LineToCurve(geometry)
        RETURNS geometry\r
        AS 'MODULE_PATHNAME', 'LWGEOM_line_desegmentize'\r
        LANGUAGE 'C' IMMUTABLE STRICT;\r
+       \r
+-- Availability: 1.5.0\r
+CREATE OR REPLACE FUNCTION _ST_OrderingEquals(geometry, geometry)\r
+       RETURNS boolean\r
+       AS 'MODULE_PATHNAME', 'LWGEOM_same'\r
+       LANGUAGE 'C' IMMUTABLE STRICT\r
+       COST 100;\r
+\r
+-- Availability: 1.3.0\r
+CREATE OR REPLACE FUNCTION ST_OrderingEquals(geometry, geometry)\r
+       RETURNS boolean\r
+       AS $$ \r
+       SELECT $1 ~= $2 AND _ST_OrderingEquals($1, $2)\r
+       $$      \r
+       LANGUAGE 'SQL' IMMUTABLE STRICT; \r
+       \r
+-------------------------------------------------------------------------------\r
+-- SQL/MM - SQL Functions on type ST_Point\r
+-------------------------------------------------------------------------------\r
+\r
+-- PostGIS equivalent function: ST_MakePoint(float8,float8)\r
+CREATE OR REPLACE FUNCTION ST_Point(float8, float8)\r
+       RETURNS geometry\r
+       AS 'MODULE_PATHNAME', 'LWGEOM_makepoint'\r
+       LANGUAGE 'C' IMMUTABLE STRICT; \r
+       \r
+-- PostGIS equivalent function: ST_MakePolygon(geometry)\r
+CREATE OR REPLACE FUNCTION ST_Polygon(geometry, int)\r
+       RETURNS geometry\r
+       AS $$ \r
+       SELECT ST_SetSRID(ST_MakePolygon($1), $2)\r
+       $$      \r
+       LANGUAGE 'SQL' IMMUTABLE STRICT; \r
+       \r
+-- PostGIS equivalent function: GeomFromWKB(bytea))\r
+-- Note: Defaults to an SRID=-1, not 0 as per SQL/MM specs.\r
+\r
+CREATE OR REPLACE FUNCTION ST_WKBToSQL(bytea)\r
+       RETURNS geometry\r
+       AS 'MODULE_PATHNAME','LWGEOM_from_WKB'\r
+       LANGUAGE 'C' IMMUTABLE STRICT; \r
+       \r
+---\r
+-- Linear referencing functions\r
+---\r
+CREATE OR REPLACE FUNCTION ST_LocateBetween(geometry, float8, float8)\r
+       RETURNS geometry\r
+       AS 'MODULE_PATHNAME', 'LWGEOM_locate_between_m'\r
+       LANGUAGE 'C' IMMUTABLE STRICT;\r
+       \r
+CREATE OR REPLACE FUNCTION ST_LocateAlong(geometry, float8)\r
+       RETURNS geometry\r
+       AS $$ SELECT ST_LocateBetween($1, $2, $2) $$\r
+       LANGUAGE 'sql' IMMUTABLE STRICT;\r
+\r
+-- LRS with offset parameter\r
+CREATE OR REPLACE FUNCTION ST_LocateBetween(geometry, float8, float8, float8)\r
+       RETURNS geometry\r
+       AS 'MODULE_PATHNAME', 'LWGEOM_locate_between_m'\r
+       LANGUAGE 'C' IMMUTABLE STRICT;\r
+       \r
+-- LRS with offset parameter\r
+CREATE OR REPLACE FUNCTION ST_LocateAlong(geometry, float8, float8)\r
+       RETURNS geometry\r
+       AS $$ SELECT ST_LocateBetween($1, $2, $2) $$\r
+       LANGUAGE 'sql' IMMUTABLE STRICT;\r
 ---------------------------------------------------------------\r
 -- END\r
 ---------------------------------------------------------------\r
diff --git a/postgis/sqlmm.sql.in.c b/postgis/sqlmm.sql.in.c
deleted file mode 100644 (file)
index 459aaf8..0000000
+++ /dev/null
@@ -1,279 +0,0 @@
--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
--- 
--- $Id$
---
--- PostGIS - Spatial Types for PostgreSQL
--- http://postgis.refractions.net
--- Copyright 2001-2003 Refractions Research Inc.
---
--- This is free software; you can redistribute and/or modify it under
--- the terms of the GNU General Public Licence. See the COPYING file.
---  
--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
--- This file defines a subset of SQL/MM functions (that is, only those
--- currently defined by ESRI's ArcSDE). Since these functions already exist
--- in PostGIS (for the most part), these functions simply expose the current
--- functions. Although mostly complying with SQL/MM standards, these prototypes
--- follow ESRI's ArcSDE SQL Specifications and not SQL/MM standards where 
--- disparities exist.
---
--- Specification Disparity Notes:
---   * ST_OrderingEquals(geometry, geometry) is implemented as per
---     ESRI's ArcSDE SQL specifications, not SQL/MM specifications.
---     (http://edndoc.esri.com/arcsde/9.1/sql_api/sqlapi3.htm#ST_OrderingEquals)
---   * Geometry constructors default to an SRID of -1, not 0 as per SQL/MM specs.
---   * Boolean return type methods (ie. ST_IsValid, ST_IsEmpty, ...)
---      * SQL/MM           : RETURNS 1 if TRUE, 0 if (FALSE, NULL)
---      * ESRI in Informix : RETURNS 1 if (TRUE, NULL), 0 if FALSE
---      * ESRI in DB2      : RETURNS 1 if TRUE, 0 if FALSE, NULL if NULL 
---      * PostGIS          : RETURNS 1 if TRUE, 0 if FALSE, NULL if NULL 
---
---
-#include "sqldefines.h"
-
--------------------------------------------------------------------------------
--- SQL/MM (ArcSDE subset) - SQL Functions for constructing an ST_Geometry
---     value given its WTK representation
--- (http://edndoc.esri.com/arcsde/9.1/general_topics/storing_geo_in_rdbms.html)
--------------------------------------------------------------------------------
-
--- PostGIS equivalent function: ST_GeometryFromText(text)
--- Note: Defaults to an SRID=-1, not 0 as per SQL/MM specs.
-CREATE OR REPLACE FUNCTION ST_WKTToSQL(text)
-       RETURNS geometry
-       AS 'MODULE_PATHNAME','LWGEOM_from_text'
-       LANGUAGE 'C' IMMUTABLE STRICT; 
-
--- ST_GeomFromText(text, int4) - already defined
--- ST_PointFromText(text, int4) - already defined
--- ST_LineFromText(text, int4) - already defined
--- ST_PolyFromText(text, int4) - already defined
--- ST_MPointFromText(text, int4) - already defined
--- ST_MLineFromText(text, int4) - already defined
--- ST_MPolyFromText(text, int4) - already defined
-
--------------------------------------------------------------------------------
--- SQL/MM (ArcSDE subset) - SQL Functions for constructing an ST_Geometry
---     value given its WKB representation
--------------------------------------------------------------------------------
-
--- PostGIS equivalent function: GeomFromWKB(bytea))
--- Note: Defaults to an SRID=-1, not 0 as per SQL/MM specs.
-
-CREATE OR REPLACE FUNCTION ST_WKBToSQL(bytea)
-       RETURNS geometry
-       AS 'MODULE_PATHNAME','LWGEOM_from_WKB'
-       LANGUAGE 'C' IMMUTABLE STRICT; 
-
--- ST_GeomFromWKB(bytea, int) - already defined
--- ST_PointFromWKB(bytea, int) - already defined
--- ST_LineFromWKB(bytea, int) - already defined
--- ST_PolyFromWKB(bytea, int) - already defined
--- ST_MPointFromWKB(bytea, int) - already defined
--- ST_MLineFromWKB(bytea, int) - already defined
--- ST_MPolyFromWKB(bytea, int) - already defined
-
--------------------------------------------------------------------------------
--- SQL/MM (ArcSDE subset) - SQL Functions for constructing an ST_Geometry
---     value given an ESRI Shape representation
--------------------------------------------------------------------------------
-
--- TODO: SE_ShapeToSQL
--- TODO: SE_GeomFromShape
--- TODO: SE_PointFromShape
--- TODO: SE_LineFromShape
--- TODO: SE_PolyFromShape
--- TODO: SE_MPointFromShape
--- TODO: SE_MLineFromShape
--- TODO: SE_MPolyFromShape
-
--------------------------------------------------------------------------------
--- SQL/MM (ArcSDE subset) - SQL Functions for obtaining the WKT representation
---     of an ST_Geometry
--------------------------------------------------------------------------------
-
--- ST_AsText(geometry) - already defined
-
--------------------------------------------------------------------------------
--- SQL/MM (ArcSDE subset) - SQL Functions for obtaining the WKB representation
---     of an ST_Geometry
--------------------------------------------------------------------------------
-
--- ST_AsBinary(geometry) - already defined
-
--------------------------------------------------------------------------------
--- SQL/MM (ArcSDE subset) - SQL Functions on type ST_Geometry
--------------------------------------------------------------------------------
-
--- PostGIS equivalent function: ndims(geometry)
-CREATE OR REPLACE FUNCTION ST_CoordDim(geometry)
-       RETURNS smallint
-       AS 'MODULE_PATHNAME', 'LWGEOM_ndims'
-       LANGUAGE 'C' IMMUTABLE STRICT; 
-
--- ST_Dimension(geometry) - already defined.
--- ST_GeometryType(geometry) - already defined.
--- ST_SRID(geometry) - already defined.
--- ST_IsEmpty(geometry) - already defined.
--- ST_IsSimple(geometry) - already defined.
--- ST_IsValid(geometry) - already defined.
--- ST_Boundary(geometry) - already defined.
--- ST_Envelope(geometry) - already defined.
--- ST_Transform(geometry) - already defined.
--- ST_AsText(geometry) - already defined.
--- ST_AsBinary(geometry) - already defined.
--- SE_AsShape(geometry) - already defined.
--- ST_X(geometry) - already defined.
--- ST_Y(geometry) - already defined.
-
--- Availability: 1.5.0
-CREATE OR REPLACE FUNCTION _ST_OrderingEquals(geometry, geometry)
-       RETURNS boolean
-       AS 'MODULE_PATHNAME', 'LWGEOM_same'
-       LANGUAGE 'C' IMMUTABLE STRICT
-       COST 100;
-
--- Availability: 1.3.0
-CREATE OR REPLACE FUNCTION ST_OrderingEquals(geometry, geometry)
-       RETURNS boolean
-       AS $$ 
-       SELECT $1 ~= $2 AND _ST_OrderingEquals($1, $2)
-       $$      
-       LANGUAGE 'SQL' IMMUTABLE STRICT; 
-
--------------------------------------------------------------------------------
--- SQL/MM - SQL Functions on type ST_Point
--------------------------------------------------------------------------------
-
--- PostGIS equivalent function: makePoint(float8,float8)
-CREATE OR REPLACE FUNCTION ST_Point(float8, float8)
-       RETURNS geometry
-       AS 'MODULE_PATHNAME', 'LWGEOM_makepoint'
-       LANGUAGE 'C' IMMUTABLE STRICT; 
-
--------------------------------------------------------------------------------
--- SQL/MM (ArcSDE subset) - SQL Functions on type ST_Curve
--------------------------------------------------------------------------------
-
--- ST_StartPoint(geometry) - already defined.
--- ST_EndPoint(geometry) - already defined.
--- ST_IsClosed(geometry) - already defined.
--- ST_IsRing(geometry) - already defined.
--- ST_Length(geometry) - already defined.
-
--------------------------------------------------------------------------------
--- SQL/MM (ArcSDE subset) - SQL Functions on type ST_LineString
--------------------------------------------------------------------------------
-
--- ST_NumPoints(geometry) - already defined.
--- ST_PointN(geometry) - already defined.
-
--------------------------------------------------------------------------------
--- SQL/MM (ArcSDE subset) - SQL Functions on type ST_Surface
--------------------------------------------------------------------------------
-
--- ST_Centroid(geometry) - already defined.
--- ST_PointOnSurface(geometry) - already defined.
--- ST_Area(geometry) - already defined.
--- ST_Perimeter(geometry) - already defined.
-
--------------------------------------------------------------------------------
--- SQL/MM (ArcSDE subset) - SQL Functions on type ST_Polygon
--------------------------------------------------------------------------------
-
--- PostGIS equivalent function: ST_MakePolygon(geometry)
-CREATE OR REPLACE FUNCTION ST_Polygon(geometry, int)
-       RETURNS geometry
-       AS $$ 
-       SELECT ST_SetSRID(ST_MakePolygon($1), $2)
-       $$      
-       LANGUAGE 'SQL' IMMUTABLE STRICT; 
-
--- ST_ExteriorRing(geometry) - already defined.
--- ST_NumInteriorRing(geometry) - already defined.
--- ST_InteriorRingN(geometry, integer) - already defined.
-
--------------------------------------------------------------------------------
--- SQL/MM (ArcSDE subset) - SQL Functions on type ST_GeomCollection
--------------------------------------------------------------------------------
-
--- ST_NumGeometries(geometry) - already defined.
--- ST_GeometryN(geometry, integer) - already defined.
-
--------------------------------------------------------------------------------
--- SQL/MM (ArcSDE subset) - SQL Functions on type ST_MultiCurve
--------------------------------------------------------------------------------
-
--- ST_IsClosed(geometry) - already defined.
--- ST_Length(geometry) - already defined.
-
--------------------------------------------------------------------------------
--- SQL/MM (ArcSDE subset) - SQL Functions on type ST_MultiSurface
--------------------------------------------------------------------------------
-
--- ST_Centroid(geometry) - already defined.
--- ST_PointOnSurface(geometry) - already defined.
--- ST_Area(geometry) - already defined.
--- ST_Perimeter(geometry) - already defined.
-
--------------------------------------------------------------------------------
--- SQL/MM (ArcSDE subset) - SQL Functions that test spatial relationships
--------------------------------------------------------------------------------
-
--- ST_Equals(geometry, geometry) - already defined.
--- ST_Disjoint(geometry, geometry) - already defined.
--- ST_Touches(geometry, geometry) - already defined.
--- ST_Within(geometry, geometry) - already defined.
--- ST_Overlaps(geometry, geometry) - already defined.
--- ST_Crosses(geometry, geometry) - already defined.
--- ST_Intersects(geometry, geometry) - already defined.
--- ST_Contains(geometry, geometry) - already defined.
--- ST_Relate(geometry, geometry, text) - already defined.
-
--------------------------------------------------------------------------------
--- SQL/MM (ArcSDE subset) - SQL Functions for distance relationships
--------------------------------------------------------------------------------
-
--- ST_Distance(geometry, geometry) - already defined.
-
--------------------------------------------------------------------------------
--- SQL/MM (ArcSDE subset) - SQL Functions that implement spatial operators
--------------------------------------------------------------------------------
-
--- ST_Intersection(geometry, geometry) - already defined.
--- ST_Difference(geometry, geometry) - already defined.
--- ST_Union(geometry, geometry) - already defined.
--- ST_SymDifference(geometry, geometry) - already defined.
--- ST_Buffer(geometry, float8) - already defined.
--- ST_ConvexHull(geometry) already defined.
-
----
--- Linear referencing functions (move to postgis.sql.in.c?)
----
-CREATE OR REPLACE FUNCTION ST_LocateBetween(geometry, float8, float8)
-       RETURNS geometry
-       AS 'MODULE_PATHNAME', 'LWGEOM_locate_between_m'
-       LANGUAGE 'C' IMMUTABLE STRICT;
-       
-CREATE OR REPLACE FUNCTION ST_LocateAlong(geometry, float8)
-       RETURNS geometry
-       AS $$ SELECT ST_LocateBetween($1, $2, $2) $$
-       LANGUAGE 'sql' IMMUTABLE STRICT;
-
--- LRS with offset parameter
-CREATE OR REPLACE FUNCTION ST_LocateBetween(geometry, float8, float8, float8)
-       RETURNS geometry
-       AS 'MODULE_PATHNAME', 'LWGEOM_locate_between_m'
-       LANGUAGE 'C' IMMUTABLE STRICT;
-       
--- LRS with offset parameter
-CREATE OR REPLACE FUNCTION ST_LocateAlong(geometry, float8, float8)
-       RETURNS geometry
-       AS $$ SELECT ST_LocateBetween($1, $2, $2) $$
-       LANGUAGE 'sql' IMMUTABLE STRICT;
-
-
--------------------------------------------------------------------------------
--- END
--------------------------------------------------------------------------------
-