From: Regina Obe Date: Thu, 5 Jan 2012 19:56:18 +0000 (+0000) Subject: #1433: part 1 -- get rid of SE functions X-Git-Tag: 2.0.0alpha1~195 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6cfe4e2981f2348788e62cbe9169063315208d83;p=postgis #1433: part 1 -- get rid of SE functions git-svn-id: http://svn.osgeo.org/postgis/trunk@8680 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/postgis/legacy.sql.in.c b/postgis/legacy.sql.in.c index f8565e3b7..5a02caf6b 100644 --- a/postgis/legacy.sql.in.c +++ b/postgis/legacy.sql.in.c @@ -50,6 +50,54 @@ CREATE OR REPLACE FUNCTION noop(geometry) AS 'MODULE_PATHNAME', 'LWGEOM_noop' LANGUAGE 'C' VOLATILE STRICT; +-- ESRI ArcSDE compatibility functions -- +-- We are remiving these because we don't +-- think ESRI relies on them +-- so their existence is pointless +-- Availability: 1.5.0 +-- PostGIS equivalent function: none +CREATE OR REPLACE FUNCTION SE_EnvelopesIntersect(geometry,geometry) + RETURNS boolean + AS $$ + SELECT $1 && $2 + $$ + LANGUAGE 'SQL' IMMUTABLE STRICT; + +CREATE OR REPLACE FUNCTION SE_Is3D(geometry) + RETURNS bool + AS 'MODULE_PATHNAME', 'LWGEOM_hasz' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- Availability: 1.5.0 +CREATE OR REPLACE FUNCTION SE_IsMeasured(geometry) + RETURNS bool + AS 'MODULE_PATHNAME', 'LWGEOM_hasm' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- PostGIS equivalent function: Z(geometry) +CREATE OR REPLACE FUNCTION SE_Z(geometry) + RETURNS float8 + AS 'MODULE_PATHNAME','LWGEOM_z_point' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- PostGIS equivalent function: M(geometry) +CREATE OR REPLACE FUNCTION SE_M(geometry) + RETURNS float8 + AS 'MODULE_PATHNAME','LWGEOM_m_point' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- PostGIS equivalent function: locate_between_measures(geometry, float8, float8) +CREATE OR REPLACE FUNCTION SE_LocateBetween(geometry, float8, float8) + RETURNS geometry + AS 'MODULE_PATHNAME', 'LWGEOM_locate_between_m' + LANGUAGE 'C' IMMUTABLE STRICT; + +-- PostGIS equivalent function: locate_along_measure(geometry, float8) +CREATE OR REPLACE FUNCTION SE_LocateAlong(geometry, float8) + RETURNS geometry + AS $$ SELECT SE_LocateBetween($1, $2, $2) $$ + LANGUAGE 'sql' IMMUTABLE STRICT; + --- Deprecation in 1.5.0 CREATE OR REPLACE FUNCTION st_box2d(geometry) diff --git a/postgis/sqlmm.sql.in.c b/postgis/sqlmm.sql.in.c index 695f39a61..459aaf8ec 100644 --- a/postgis/sqlmm.sql.in.c +++ b/postgis/sqlmm.sql.in.c @@ -28,18 +28,7 @@ -- * ESRI in DB2 : RETURNS 1 if TRUE, 0 if FALSE, NULL if NULL -- * PostGIS : RETURNS 1 if TRUE, 0 if FALSE, NULL if NULL -- --- TODO: Implement ESRI's Shape constructors --- * SE_AsShape(geometry) --- * SE_ShapeToSQL --- * SE_GeomFromShape --- * SE_PointFromShape --- * SE_LineFromShape --- * SE_PolyFromShape --- * SE_MPointFromShape --- * SE_MLineFromShape --- * SE_MPolyFromShape --- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +-- #include "sqldefines.h" ------------------------------------------------------------------------------- @@ -112,17 +101,6 @@ CREATE OR REPLACE FUNCTION ST_WKBToSQL(bytea) -- ST_AsBinary(geometry) - already defined -------------------------------------------------------------------------------- --- SQL/MM (ArcSDE subset) - SQL Functions for obtaining the ESRI Shape --- representation of an ST_Geometry -------------------------------------------------------------------------------- - --- TODO: SE_AsShape(geometry) ---CREATE OR REPLACE FUNCTION SE_AsShape(geometry) --- RETURNS bytea --- AS 'MODULE_PATHNAME','LWGEOM_AsShape' --- LANGUAGE 'C' IMMUTABLE STRICT; - ------------------------------------------------------------------------------- -- SQL/MM (ArcSDE subset) - SQL Functions on type ST_Geometry ------------------------------------------------------------------------------- @@ -163,20 +141,8 @@ CREATE OR REPLACE FUNCTION ST_OrderingEquals(geometry, geometry) $$ LANGUAGE 'SQL' IMMUTABLE STRICT; --- Availability: 1.5.0 -CREATE OR REPLACE FUNCTION SE_Is3D(geometry) - RETURNS bool - AS 'MODULE_PATHNAME', 'LWGEOM_hasz' - LANGUAGE 'C' IMMUTABLE STRICT; - --- Availability: 1.5.0 -CREATE OR REPLACE FUNCTION SE_IsMeasured(geometry) - RETURNS bool - AS 'MODULE_PATHNAME', 'LWGEOM_hasm' - LANGUAGE 'C' IMMUTABLE STRICT; - ------------------------------------------------------------------------------- --- SQL/MM (ArcSDE subset) - SQL Functions on type ST_Point +-- SQL/MM - SQL Functions on type ST_Point ------------------------------------------------------------------------------- -- PostGIS equivalent function: makePoint(float8,float8) @@ -185,18 +151,6 @@ CREATE OR REPLACE FUNCTION ST_Point(float8, float8) AS 'MODULE_PATHNAME', 'LWGEOM_makepoint' LANGUAGE 'C' IMMUTABLE STRICT; --- PostGIS equivalent function: Z(geometry) -CREATE OR REPLACE FUNCTION SE_Z(geometry) - RETURNS float8 - AS 'MODULE_PATHNAME','LWGEOM_z_point' - LANGUAGE 'C' IMMUTABLE STRICT; - --- PostGIS equivalent function: M(geometry) -CREATE OR REPLACE FUNCTION SE_M(geometry) - RETURNS float8 - AS 'MODULE_PATHNAME','LWGEOM_m_point' - LANGUAGE 'C' IMMUTABLE STRICT; - ------------------------------------------------------------------------------- -- SQL/MM (ArcSDE subset) - SQL Functions on type ST_Curve ------------------------------------------------------------------------------- @@ -276,14 +230,6 @@ CREATE OR REPLACE FUNCTION ST_Polygon(geometry, int) -- ST_Contains(geometry, geometry) - already defined. -- ST_Relate(geometry, geometry, text) - already defined. --- PostGIS equivalent function: none -CREATE OR REPLACE FUNCTION SE_EnvelopesIntersect(geometry,geometry) - RETURNS boolean - AS $$ - SELECT $1 && $2 - $$ - LANGUAGE 'SQL' IMMUTABLE STRICT; - ------------------------------------------------------------------------------- -- SQL/MM (ArcSDE subset) - SQL Functions for distance relationships ------------------------------------------------------------------------------- @@ -301,18 +247,6 @@ CREATE OR REPLACE FUNCTION SE_EnvelopesIntersect(geometry,geometry) -- ST_Buffer(geometry, float8) - already defined. -- ST_ConvexHull(geometry) already defined. --- PostGIS equivalent function: locate_between_measures(geometry, float8, float8) -CREATE OR REPLACE FUNCTION SE_LocateBetween(geometry, float8, float8) - RETURNS geometry - AS 'MODULE_PATHNAME', 'LWGEOM_locate_between_m' - LANGUAGE 'C' IMMUTABLE STRICT; - --- PostGIS equivalent function: locate_along_measure(geometry, float8) -CREATE OR REPLACE FUNCTION SE_LocateAlong(geometry, float8) - RETURNS geometry - AS $$ SELECT SE_LocateBetween($1, $2, $2) $$ - LANGUAGE 'sql' IMMUTABLE STRICT; - --- -- Linear referencing functions (move to postgis.sql.in.c?) --- @@ -323,7 +257,7 @@ CREATE OR REPLACE FUNCTION ST_LocateBetween(geometry, float8, float8) CREATE OR REPLACE FUNCTION ST_LocateAlong(geometry, float8) RETURNS geometry - AS $$ SELECT SE_LocateBetween($1, $2, $2) $$ + AS $$ SELECT ST_LocateBetween($1, $2, $2) $$ LANGUAGE 'sql' IMMUTABLE STRICT; -- LRS with offset parameter @@ -335,11 +269,10 @@ CREATE OR REPLACE FUNCTION ST_LocateBetween(geometry, float8, float8, float8) -- LRS with offset parameter CREATE OR REPLACE FUNCTION ST_LocateAlong(geometry, float8, float8) RETURNS geometry - AS $$ SELECT SE_LocateBetween($1, $2, $2) $$ + AS $$ SELECT ST_LocateBetween($1, $2, $2) $$ LANGUAGE 'sql' IMMUTABLE STRICT; - ------------------------------------------------------------------------------- -- END ------------------------------------------------------------------------------- diff --git a/postgis/uninstall_legacy.sql.in.c b/postgis/uninstall_legacy.sql.in.c index 6d521f025..b3e838ed2 100644 --- a/postgis/uninstall_legacy.sql.in.c +++ b/postgis/uninstall_legacy.sql.in.c @@ -125,3 +125,12 @@ DROP FUNCTION IF EXISTS SnapToGrid(geometry, geometry, float8, float8, float8, f DROP FUNCTION IF EXISTS SnapToGrid(geometry, float8, float8); DROP FUNCTION IF EXISTS transform(geometry,integer); +-- ESRI compatibility functions -- +DROP FUNCTION IF EXISTS SE_Is3D(geometry); +DROP FUNCTION IF EXISTS SE_IsMeasured(geometry); +DROP FUNCTION IF EXISTS SE_Z(geometry); +DROP FUNCTION IF EXISTS SE_M(geometry); +DROP FUNCTION IF EXISTS SE_LocateBetween(geometry, float8, float8); +DROP FUNCTION IF EXISTS SE_LocateAlong(geometry, float8); +DROP FUNCTION IF EXISTS SE_EnvelopesIntersect(geometry,geometry); +DROP FUNCTION IF EXISTS SE_AsShape(geometry);