|
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
|
-- |
|
-- $Id: postgis.sql.in.c 5385 2010-03-09 00:22:41Z pramsey $ |
|
-- |
|
-- 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. |
|
-- |
|
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
|
-- |
|
-- WARNING: Any change in this file must be evaluated for compatibility. |
|
-- Changes cleanly handled by postgis_upgrade.sql are fine, |
|
-- other changes will require a bump in Major version. |
|
-- Currently only function replaceble by CREATE OR REPLACE |
|
-- are cleanly handled. |
|
-- |
|
-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- INSTALL VERSION: 1.5.1 |
|
|
|
SET client_min_messages TO warning; |
|
|
|
BEGIN; |
|
|
|
------------------------------------------------------------------- |
|
-- SPHEROID TYPE |
|
------------------------------------------------------------------- |
|
|
|
-- Deprecation in 1.5.0 |
|
CREATE OR REPLACE FUNCTION st_spheroid_in(cstring) |
|
RETURNS spheroid |
|
AS '$libdir/postgis-1.5','ellipsoid_in' |
|
LANGUAGE 'C' IMMUTABLE STRICT; |
|
|
|
-- Deprecation in 1.5.0 |
|
CREATE OR REPLACE FUNCTION st_spheroid_out(spheroid) |
|
RETURNS cstring |
|
AS '$libdir/postgis-1.5','ellipsoid_out' |
|
LANGUAGE 'C' IMMUTABLE STRICT; |
|
|
|
CREATE OR REPLACE FUNCTION spheroid_in(cstring) |
|
RETURNS spheroid |
|
AS '$libdir/postgis-1.5','ellipsoid_in' |
|
LANGUAGE 'C' IMMUTABLE STRICT; |
|
|
|
CREATE OR REPLACE FUNCTION spheroid_out(spheroid) |
|
RETURNS cstring |
|
AS '$libdir/postgis-1.5','ellipsoid_out' |
|
LANGUAGE 'C' IMMUTABLE STRICT; |
|
|
|
CREATE TYPE spheroid ( |
|
alignment = double, |
|
internallength = 65, |
|
input = spheroid_in, |
|
output = spheroid_out |
|
); |
|
|
|
------------------------------------------------------------------- |
|
-- GEOMETRY TYPE (lwgeom) |
|
------------------------------------------------------------------- |
|
|
|
-- Deprecation in 1.5.0 |
|
CREATE OR REPLACE FUNCTION st_geometry_in(cstring) |
|
RETURNS geometry |
|
AS '$libdir/postgis-1.5','LWGEOM_in' |
|
LANGUAGE 'C' IMMUTABLE STRICT; |
|
|
|
-- Deprecation in 1.5.0 |
|
CREATE OR REPLACE FUNCTION st_geometry_out(geometry) |
|
RETURNS cstring |
|
AS '$libdir/postgis-1.5','LWGEOM_out' |
|
LANGUAGE 'C' IMMUTABLE STRICT; |
|
|
|
-- Deprecation in 1.5.0 |
|
CREATE OR REPLACE FUNCTION st_geometry_analyze(internal) |
|
RETURNS bool |
|
AS '$libdir/postgis-1.5', 'LWGEOM_analyze' |
|
LANGUAGE 'C' VOLATILE STRICT; |
|
|
|
-- Deprecation in 1.5.0 |
|
CREATE OR REPLACE FUNCTION st_geometry_recv(internal) |
|
RETURNS geometry |
|
AS '$libdir/postgis-1.5','LWGEOM_recv' |
|
LANGUAGE 'C' IMMUTABLE STRICT; |
|
|
|
-- Deprecation in 1.5.0 |
|
CREATE OR REPLACE FUNCTION st_geometry_send(geometry) |
|
RETURNS bytea |
|
AS '$libdir/postgis-1.5','LWGEOM_send' |
|
LANGUAGE 'C' IMMUTABLE STRICT; |
|
|
|
CREATE OR REPLACE FUNCTION geometry_in(cstring) |
|
RETURNS geometry |
|
AS '$libdir/postgis-1.5','LWGEOM_in' |
|
LANGUAGE 'C' IMMUTABLE STRICT; |
|
|
|
CREATE OR REPLACE FUNCTION geometry_out(geometry) |
|
RETURNS cstring |
|
AS '$libdir/postgis-1.5','LWGEOM_out' |
|
LANGUAGE 'C' IMMUTABLE STRICT; |
|
|
|
CREATE OR REPLACE FUNCTION geometry_analyze(internal) |
|
RETURNS bool |
|
AS '$libdir/postgis-1.5', 'LWGEOM_analyze' |
|
LANGUAGE 'C' VOLATILE STRICT; |
|
|
|
CREATE OR REPLACE FUNCTION geometry_recv(internal) |
|
RETURNS geometry |
|
AS '$libdir/postgis-1.5','LWGEOM_recv' |
|
LANGUAGE 'C' IMMUTABLE STRICT; |
|
|
|
CREATE OR REPLACE FUNCTION geometry_send(geometry) |
|
RETURNS bytea |
|
AS '$libdir/postgis-1.5','LWGEOM_send' |
|
LANGUAGE 'C' IMMUTABLE STRICT; |
|
|
|
CREATE TYPE geometry ( |
|
internallength = variable, |
|
input = geometry_in, |
|
output = geometry_out, |
|
send = geometry_send, |
|
receive = geometry_recv, |
|
delimiter = ':', |
|
analyze = geometry_analyze, |
|
storage = main |
|
); |
|
|
|
------------------------------------------- |
|
-- Affine transforms |
|
------------------------------------------- |
|
|
|
-- Availability: 1.1.2 |
|
-- Deprecation in 1.2.3 |
|
CREATE OR REPLACE FUNCTION Affine(geometry,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8) |
|
RETURNS geometry |
|
AS '$libdir/postgis-1.5', 'LWGEOM_affine' |
|
LANGUAGE 'C' IMMUTABLE STRICT; |
|
|
|
-- Availability: 1.2.2 |
|
CREATE OR REPLACE FUNCTION ST_Affine(geometry,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8) |
|
RETURNS geometry |
|
AS '$libdir/postgis-1.5', 'LWGEOM_affine' |
|
LANGUAGE 'C' IMMUTABLE STRICT; |
|
|
|
-- Availability: 1.1.2 |
|
-- Deprecation in 1.2.3 |
|
CREATE OR REPLACE FUNCTION Affine(geometry,float8,float8,float8,float8,float8,float8) |
|
RETURNS geometry |
|
AS 'SELECT affine($1, $2, $3, 0, $4, $5, 0, 0, 0, 1, $6, $7, 0)' |
|
LANGUAGE 'SQL' IMMUTABLE STRICT; |
|
|
|
-- Availability: 1.2.2 |
|
CREATE OR REPLACE FUNCTION ST_Affine(geometry,float8,float8,float8,float8,float8,float8) |
|
RETURNS geometry |
|
AS 'SELECT affine($1, $2, $3, 0, $4, $5, 0, 0, 0, 1, $6, $7, 0)' |
|
LANGUAGE 'SQL' IMMUTABLE STRICT; |
|
|
|
-- Availability: 1.1.2 |
|
-- Deprecation in 1.2.3 |
|
CREATE OR REPLACE FUNCTION RotateZ(geometry,float8) |
|
RETURNS geometry |
|
AS 'SELECT affine($1, cos($2), -sin($2), 0, sin($2), cos($2), 0, 0, 0, 1, 0, 0, 0)' |
|
LANGUAGE 'SQL' IMMUTABLE STRICT; |
|
|
|
-- Availability: 1.2.2 |
|
CREATE OR REPLACE FUNCTION ST_RotateZ(geometry,float8) |
|
RETURNS geometry |
|
AS 'SELECT affine($1, cos($2), -sin($2), 0, sin($2), cos($2), 0, 0, 0, 1, 0, 0, 0)' |
|
LANGUAGE 'SQL' IMMUTABLE STRICT; |
|
|
|
-- Availability: 1.1.2 |
|
-- Deprecation in 1.2.3 |
|
CREATE OR REPLACE FUNCTION Rotate(geometry,float8) |
|
RETURNS geometry |
|
AS 'SELECT rotateZ($1, $2)' |
|
LANGUAGE 'SQL' IMMUTABLE STRICT; |
|
|
|
-- Availability: 1.2.2 |
|
CREATE OR REPLACE FUNCTION ST_Rotate(geometry,float8) |
|
RETURNS geometry |
|
AS 'SELECT rotateZ($1, $2)' |
|
LANGUAGE 'SQL' IMMUTABLE STRICT; |
|
|
|
-- Availability: 1.1.2 |
|
-- Deprecation in 1.2.3 |
|
CREATE OR REPLACE FUNCTION RotateX(geometry,float8) |
|
RETURNS geometry |
|
AS 'SELECT affine($1, 1, 0, 0, 0, cos($2), -sin($2), 0, sin($2), cos($2), 0, 0, 0)' |
|
LANGUAGE 'SQL' IMMUTABLE STRICT; |
|
|
|
-- Availability: 1.2.2 |
|
CREATE OR REPLACE FUNCTION ST_RotateX(geometry,float8) |
|
RETURNS geometry |
|
AS 'SELECT affine($1, 1, 0, 0, 0, cos($2), -sin($2), 0, sin($2), cos($2), 0, 0, 0)' |
|
LANGUAGE 'SQL' IMMUTABLE STRICT; |
|
|
|
-- Availability: 1.1.2 |
|
-- Deprecation in 1.2.3 |
|
CREATE OR REPLACE FUNCTION RotateY(geometry,float8) |
|
RETURNS geometry |
|
AS 'SELECT affine($1, cos($2), 0, sin($2), 0, 1, 0, -sin($2), 0, cos($2), 0, 0, 0)' |
|
LANGUAGE 'SQL' IMMUTABLE STRICT; |
|
|
|
-- Availability: 1.2.2 |
|
CREATE OR REPLACE FUNCTION ST_RotateY(geometry,float8) |
|
RETURNS geometry |
|
AS 'SELECT affine($1, cos($2), 0, sin($2), 0, 1, 0, -sin($2), 0, cos($2), 0, 0, 0)' |
|
LANGUAGE 'SQL' IMMUTABLE STRICT; |
|
|
|
-- Deprecation in 1.2.3 |
|
CREATE OR REPLACE FUNCTION Translate(geometry,float8,float8,float8) |
|
RETURNS geometry |
|
AS 'SELECT affine($1, 1, 0, 0, 0, 1, 0, 0, 0, 1, $2, $3, $4)' |
|
LANGUAGE 'SQL' IMMUTABLE STRICT; |
|
|
|
-- Availability: 1.2.2 |
|
CREATE OR REPLACE FUNCTION ST_Translate(geometry,float8,float8,float8) |
|
RETURNS geometry |
|
AS 'SELECT affine($1, 1, 0, 0, 0, 1, 0, 0, 0, 1, $2, $3, $4)' |
|
LANGUAGE 'SQL' IMMUTABLE STRICT; |
|
|
|
-- Deprecation in 1.2.3 |
|
CREATE OR REPLACE FUNCTION Translate(geometry,float8,float8) |
|
RETURNS geometry |
|
AS 'SELECT translate($1, $2, $3, 0)' |
|
LANGUAGE 'SQL' IMMUTABLE STRICT; |
|
|
|
-- Availability: 1.2.2 |
|
CREATE OR REPLACE FUNCTION ST_Translate(geometry,float8,float8) |
|
RETURNS geometry |
|
AS 'SELECT translate($1, $2, $3, 0)' |
|
LANGUAGE 'SQL' IMMUTABLE STRICT; |
|
|
|
-- Availability: 1.1.0 |
|
-- Deprecation in 1.2.3 |
|
CREATE OR REPLACE FUNCTION Scale(geometry,float8,float8,float8) |
|
RETURNS geometry |
|
AS 'SELECT affine($1, $2, 0, 0, 0, $3, 0, 0, 0, $4, 0, 0, 0)' |
|
LANGUAGE 'SQL' IMMUTABLE STRICT; |
|
|
|
-- Availability: 1.2.2 |
|
CREATE OR REPLACE FUNCTION ST_Scale(geometry,float8,float8,float8) |
|
RETURNS geometry |
|
AS 'SELECT affine($1, $2, 0, 0, 0, $3, 0, 0, 0, $4, 0, 0, 0)' |
|
LANGUAGE 'SQL' IMMUTABLE STRICT; |
|
|
|
-- Availability: 1.1.0 |
|
-- Deprecation in 1.2.3 |
|
CREATE OR REPLACE FUNCTION Scale(geometry,float8,float8) |
|
RETURNS geometry |
|
AS 'SELECT scale($1, $2, $3, 1)' |
|
LANGUAGE 'SQL' IMMUTABLE STRICT; |
|
|
|
-- Availability: 1.2.2 |
|
CREATE OR REPLACE FUNCTION ST_Scale(geometry,float8,float8) |
|
RETURNS geometry |
|
AS 'SELECT scale($1, $2, $3, 1)' |
|
LANGUAGE 'SQL' IMMUTABLE STRICT; |
|
|
|
-- Availability: 1.1.0 |
|
-- Deprecation in 1.2.3 |
|
CREATE OR REPLACE FUNCTION transscale(geometry,float8,float8,float8,float8) |
|
RETURNS geometry |
|
AS 'SELECT affine($1, $4, 0, 0, 0, $5, 0, |
|
0, 0, 1, $2 * $4, $3 * $5, 0)' |
|
LANGUAGE 'SQL' IMMUTABLE STRICT; |
|
|
|
-- Availability: 1.2.2 |
|
CREATE OR REPLACE FUNCTION ST_transscale(geometry,float8,float8,float8,float8) |
|
RETURNS geometry |
|
AS 'SELECT affine($1, $4, 0, 0, 0, $5, 0, |
|
0, 0, 1, $2 * $4, $3 * $5, 0)' |
|
LANGUAGE 'SQL' IMMUTABLE STRICT; |
|
|
|
-- Availability: 1.1.0 |
|
-- Deprecation in 1.2.3 |
|
CREATE OR REPLACE FUNCTION shift_longitude(geometry) |
|
RETURNS geometry |
|
AS '$libdir/postgis-1.5', 'LWGEOM_longitude_shift' |
|
LANGUAGE 'C' IMMUTABLE STRICT; |
|
|
|
-- Availability: 1.2.2 |
|
CREATE OR REPLACE FUNCTION ST_shift_longitude(geometry) |
|
RETURNS geometry |
|
AS '$libdir/postgis-1.5', 'LWGEOM_longitude_shift' |
|
LANGUAGE 'C' IMMUTABLE STRICT; |
|
|
|
------------------------------------------------------------------- |
|
-- BOX3D TYPE |
|
------------------------------------------------------------------- |
|
|
|
-- Deprecation in 1.5.0 |
|
CREATE OR REPLACE FUNCTION st_box3d_in(cstring) |
|
RETURNS box3d |
|
AS '$libdir/postgis-1.5', 'BOX3D_in' |
|
LANGUAGE 'C' IMMUTABLE STRICT; |
|
|
|
-- Deprecation in 1.5.0 |
|
CREATE OR REPLACE FUNCTION st_box3d_out(box3d) |
|
RETURNS cstring |
|
AS '$libdir/postgis-1.5', 'BOX3D_out' |
|
LANGUAGE 'C' IMMUTABLE STRICT; |
|
|
|
CREATE OR REPLACE FUNCTION box3d_in(cstring) |
|
RETURNS box3d |
|
AS '$libdir/postgis-1.5', 'BOX3D_in' |
|
LANGUAGE 'C' IMMUTABLE STRICT; |
|
|
|
CREATE OR REPLACE FUNCTION box3d_out(box3d) |
|
RETURNS cstring |
|
AS '$libdir/postgis-1.5', 'BOX3D_out' |
|
LANGUAGE 'C' IMMUTABLE STRICT; |
|
|
|
CREATE TYPE box3d ( |
|
alignment = double, |
|
internallength = 48, |
|
input = box3d_in, |
|
output = box3d_out |
|
); |
|
|
|
-- Temporary box3d aggregate type to retain full double precision |
|
-- for ST_Extent(). Should be removed when we change the output |
|
-- type of ST_Extent() to return something other than BOX2DFLOAT4. |
|
CREATE OR REPLACE FUNCTION box3d_extent_in(cstring) |
|
RETURNS box3d_extent |
|
AS '$libdir/postgis-1.5', 'BOX3D_in' |
|
LANGUAGE 'C' IMMUTABLE STRICT; |
|
|
|
CREATE OR REPLACE FUNCTION box3d_extent_out(box3d_extent) |
|
RETURNS cstring |
|
AS '$libdir/postgis-1.5', 'BOX3D_extent_out' |
|
LANGUAGE 'C' IMMUTABLE STRICT; |
|
|
|
CREATE TYPE box3d_extent ( |
|
alignment = double, |
|
internallength = 48, |
|
input = box3d_extent_in, |
|
output = box3d_extent_out |
|
); |
|
|
|
-- Availability: 1.4.0 |
|
CREATE OR REPLACE FUNCTION box3d_extent(box3d_extent) |
|
RETURNS box3d |
|
AS '$libdir/postgis-1.5', 'BOX3D_extent_to_BOX3D' |
|
LANGUAGE 'C' IMMUTABLE STRICT; |
|
|
|
CREATE OR REPLACE FUNCTION box2d(box3d_extent) |
|
RETURNS box2d |
|
AS '$libdir/postgis-1.5', 'BOX3D_to_BOX2DFLOAT4' |
|
LANGUAGE 'C' IMMUTABLE STRICT; |
|
|
|
CREATE OR REPLACE FUNCTION geometry(box3d_extent) |
|
RETURNS geometry |
|
AS '$libdir/postgis-1.5','BOX3D_to_LWGEOM' |
|
LANGUAGE 'C' IMMUTABLE STRICT; |
|
|
|
-- End of temporary hack |
|
|
|
-- Deprecation in 1.2.3 |
|
CREATE OR REPLA |