\r
SET client_min_messages TO warning;\r
\r
-\r
-- INSTALL VERSION: POSTGIS_LIB_VERSION\r
\r
BEGIN;\r
CREATE CAST (geometry AS geometry) WITH FUNCTION geometry(geometry, integer, boolean) AS IMPLICIT;\r
\r
\r
--------------------------------------------\r
--- Affine transforms\r
--------------------------------------------\r
--- Availability: 1.2.2\r
-CREATE OR REPLACE FUNCTION ST_Affine(geometry,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8)\r
- RETURNS geometry\r
- AS 'MODULE_PATHNAME', 'LWGEOM_affine'\r
- LANGUAGE 'C' IMMUTABLE STRICT;\r
-\r
--- Availability: 1.2.2\r
-CREATE OR REPLACE FUNCTION ST_Affine(geometry,float8,float8,float8,float8,float8,float8)\r
- RETURNS geometry\r
- AS 'SELECT ST_Affine($1, $2, $3, 0, $4, $5, 0, 0, 0, 1, $6, $7, 0)'\r
- LANGUAGE 'SQL' IMMUTABLE STRICT;\r
-\r
--- Availability: 1.2.2\r
-CREATE OR REPLACE FUNCTION ST_RotateZ(geometry,float8)\r
- RETURNS geometry\r
- AS 'SELECT ST_Affine($1, cos($2), -sin($2), 0, sin($2), cos($2), 0, 0, 0, 1, 0, 0, 0)'\r
- LANGUAGE 'SQL' IMMUTABLE STRICT;\r
-\r
--- Availability: 1.2.2\r
-CREATE OR REPLACE FUNCTION ST_Rotate(geometry,float8)\r
- RETURNS geometry\r
- AS 'SELECT ST_RotateZ($1, $2)'\r
- LANGUAGE 'SQL' IMMUTABLE STRICT;\r
-\r
--- Availability: 1.2.2\r
-CREATE OR REPLACE FUNCTION ST_RotateX(geometry,float8)\r
- RETURNS geometry\r
- AS 'SELECT ST_Affine($1, 1, 0, 0, 0, cos($2), -sin($2), 0, sin($2), cos($2), 0, 0, 0)'\r
- LANGUAGE 'SQL' IMMUTABLE STRICT;\r
-\r
--- Availability: 1.2.2\r
-CREATE OR REPLACE FUNCTION ST_RotateY(geometry,float8)\r
- RETURNS geometry\r
- AS 'SELECT ST_Affine($1, cos($2), 0, sin($2), 0, 1, 0, -sin($2), 0, cos($2), 0, 0, 0)'\r
- LANGUAGE 'SQL' IMMUTABLE STRICT;\r
-\r
--- Availability: 1.2.2\r
-CREATE OR REPLACE FUNCTION ST_Translate(geometry,float8,float8,float8)\r
- RETURNS geometry\r
- AS 'SELECT ST_Affine($1, 1, 0, 0, 0, 1, 0, 0, 0, 1, $2, $3, $4)'\r
- LANGUAGE 'SQL' IMMUTABLE STRICT;\r
-\r
--- Availability: 1.2.2\r
-CREATE OR REPLACE FUNCTION ST_Translate(geometry,float8,float8)\r
- RETURNS geometry\r
- AS 'SELECT ST_Translate($1, $2, $3, 0)'\r
- LANGUAGE 'SQL' IMMUTABLE STRICT;\r
-\r
--- Availability: 1.2.2\r
-CREATE OR REPLACE FUNCTION ST_Scale(geometry,float8,float8,float8)\r
- RETURNS geometry\r
- AS 'SELECT ST_Affine($1, $2, 0, 0, 0, $3, 0, 0, 0, $4, 0, 0, 0)'\r
- LANGUAGE 'SQL' IMMUTABLE STRICT;\r
-\r
--- Availability: 1.2.2\r
-CREATE OR REPLACE FUNCTION ST_Scale(geometry,float8,float8)\r
- RETURNS geometry\r
- AS 'SELECT ST_Scale($1, $2, $3, 1)'\r
- LANGUAGE 'SQL' IMMUTABLE STRICT;\r
-\r
--- Availability: 1.2.2\r
-CREATE OR REPLACE FUNCTION ST_Transscale(geometry,float8,float8,float8,float8)\r
- RETURNS geometry\r
- AS 'SELECT ST_Affine($1, $4, 0, 0, 0, $5, 0,\r
- 0, 0, 1, $2 * $4, $3 * $5, 0)'\r
- LANGUAGE 'SQL' IMMUTABLE STRICT;\r
-\r
--- Availability: 1.2.2\r
-CREATE OR REPLACE FUNCTION ST_Shift_Longitude(geometry)\r
- RETURNS geometry\r
- AS 'MODULE_PATHNAME', 'LWGEOM_longitude_shift'\r
- LANGUAGE 'C' IMMUTABLE STRICT;\r
-\r
-------------------------------------------------------------------\r
-- BOX3D TYPE\r
-------------------------------------------------------------------\r
output = box3d_out\r
);\r
\r
--- Availability: 1.2.2\r
-CREATE OR REPLACE FUNCTION ST_XMin(box3d)\r
- RETURNS FLOAT8\r
- AS 'MODULE_PATHNAME','BOX3D_xmin'\r
- LANGUAGE 'C' IMMUTABLE STRICT;\r
-\r
--- Availability: 1.2.2\r
-CREATE OR REPLACE FUNCTION ST_YMin(box3d)\r
- RETURNS FLOAT8\r
- AS 'MODULE_PATHNAME','BOX3D_ymin'\r
- LANGUAGE 'C' IMMUTABLE STRICT;\r
-\r
--- Availability: 1.2.2\r
-CREATE OR REPLACE FUNCTION ST_ZMin(box3d)\r
- RETURNS FLOAT8\r
- AS 'MODULE_PATHNAME','BOX3D_zmin'\r
- LANGUAGE 'C' IMMUTABLE STRICT;\r
-\r
--- Availability: 1.2.2\r
-CREATE OR REPLACE FUNCTION ST_XMax(box3d)\r
- RETURNS FLOAT8\r
- AS 'MODULE_PATHNAME','BOX3D_xmax'\r
- LANGUAGE 'C' IMMUTABLE STRICT;\r
-\r
--- Availability: 1.2.2\r
-CREATE OR REPLACE FUNCTION ST_YMax(box3d)\r
- RETURNS FLOAT8\r
- AS 'MODULE_PATHNAME','BOX3D_ymax'\r
- LANGUAGE 'C' IMMUTABLE STRICT;\r
-\r
--- Availability: 1.2.2\r
-CREATE OR REPLACE FUNCTION ST_ZMax(box3d)\r
- RETURNS FLOAT8\r
- AS 'MODULE_PATHNAME','BOX3D_zmax'\r
- LANGUAGE 'C' IMMUTABLE STRICT;\r
-\r
-----------------------------------------------------------------------\r
-- BOX2D\r
-----------------------------------------------------------------------\r
storage = plain\r
);\r
\r
--- Availability: 1.2.2\r
-CREATE OR REPLACE FUNCTION ST_expand(box2d,float8)\r
- RETURNS box2d\r
- AS 'MODULE_PATHNAME', 'BOX2DFLOAT4_expand'\r
- LANGUAGE 'C' IMMUTABLE STRICT;\r
-\r
--- Availability: 1.5.0\r
-CREATE OR REPLACE FUNCTION postgis_getbbox(geometry)\r
- RETURNS box2d\r
- AS 'MODULE_PATHNAME','LWGEOM_to_BOX2DFLOAT4'\r
- LANGUAGE 'C' IMMUTABLE STRICT;\r
-\r
--- Availability: 1.2.2\r
-CREATE OR REPLACE FUNCTION ST_MakeBox2d(geom1 geometry, geom2 geometry)\r
- RETURNS box2d\r
- AS 'MODULE_PATHNAME', 'BOX2DFLOAT4_construct'\r
- LANGUAGE 'C' IMMUTABLE STRICT;\r
-\r
-\r
--- Availability: 1.2.2\r
-CREATE OR REPLACE FUNCTION ST_Combine_BBox(box2d,geometry)\r
- RETURNS box2d\r
- AS 'MODULE_PATHNAME', 'BOX2DFLOAT4_combine'\r
- LANGUAGE 'C' IMMUTABLE;\r
+-------------------------------------------------------------------\r
+-- BOX2DF TYPE (INTERNAL ONLY)\r
+-------------------------------------------------------------------\r
+--\r
+-- Box2Df type is used by the GiST index bindings. \r
+-- In/out functions are stubs, as all access should be internal.\r
+---\r
+-- Availability: 2.0.0\r
+CREATE OR REPLACE FUNCTION box2df_in(cstring)\r
+ RETURNS box2df\r
+ AS 'MODULE_PATHNAME','box2df_in'\r
+ LANGUAGE 'C' IMMUTABLE STRICT; \r
\r
------------------------------------------------------------------------\r
--- ESTIMATED_EXTENT( <schema name>, <table name>, <column name> )\r
------------------------------------------------------------------------\r
--- Availability: 1.2.2\r
-CREATE OR REPLACE FUNCTION ST_estimated_extent(text,text,text) RETURNS box2d AS\r
- 'MODULE_PATHNAME', 'geometry_estimated_extent'\r
- LANGUAGE 'C' IMMUTABLE STRICT SECURITY DEFINER;\r
+-- Availability: 2.0.0\r
+CREATE OR REPLACE FUNCTION box2df_out(box2df)\r
+ RETURNS cstring\r
+ AS 'MODULE_PATHNAME','box2df_out'\r
+ LANGUAGE 'C' IMMUTABLE STRICT; \r
\r
------------------------------------------------------------------------\r
--- ESTIMATED_EXTENT( <table name>, <column name> )\r
------------------------------------------------------------------------\r
--- Availability: 1.2.2\r
-CREATE OR REPLACE FUNCTION ST_estimated_extent(text,text) RETURNS box2d AS\r
- 'MODULE_PATHNAME', 'geometry_estimated_extent'\r
- LANGUAGE 'C' IMMUTABLE STRICT SECURITY DEFINER;\r
+-- Availability: 2.0.0\r
+CREATE TYPE box2df (\r
+ internallength = 16,\r
+ input = box2df_in,\r
+ output = box2df_out,\r
+ storage = plain,\r
+ alignment = double\r
+);\r
\r
------------------------------------------------------------------------\r
--- FIND_EXTENT( <schema name>, <table name>, <column name> )\r
------------------------------------------------------------------------\r
--- Availability: 1.2.2\r
-CREATE OR REPLACE FUNCTION ST_find_extent(text,text,text) RETURNS box2d AS\r
-$$\r
-DECLARE\r
- schemaname alias for $1;\r
- tablename alias for $2;\r
- columnname alias for $3;\r
- myrec RECORD;\r
\r
-BEGIN\r
- FOR myrec IN EXECUTE 'SELECT ST_Extent("' || columnname || '") As extent FROM "' || schemaname || '"."' || tablename || '"' LOOP\r
- return myrec.extent;\r
- END LOOP;\r
-END;\r
-$$\r
-LANGUAGE 'plpgsql' IMMUTABLE STRICT;\r
+-------------------------------------------------------------------\r
+-- GIDX TYPE (INTERNAL ONLY)\r
+-------------------------------------------------------------------\r
+--\r
+-- GIDX type is used by the N-D and GEOGRAPHY GiST index bindings. \r
+-- In/out functions are stubs, as all access should be internal.\r
+---\r
\r
+-- Availability: 1.5.0\r
+CREATE OR REPLACE FUNCTION gidx_in(cstring)\r
+ RETURNS gidx\r
+ AS 'MODULE_PATHNAME','gidx_in'\r
+ LANGUAGE 'C' IMMUTABLE STRICT; \r
\r
------------------------------------------------------------------------\r
--- FIND_EXTENT( <table name>, <column name> )\r
------------------------------------------------------------------------\r
--- Availability: 1.2.2\r
-CREATE OR REPLACE FUNCTION ST_find_extent(text,text) RETURNS box2d AS\r
-$$\r
-DECLARE\r
- tablename alias for $1;\r
- columnname alias for $2;\r
- myrec RECORD;\r
+-- Availability: 1.5.0\r
+CREATE OR REPLACE FUNCTION gidx_out(gidx)\r
+ RETURNS cstring\r
+ AS 'MODULE_PATHNAME','gidx_out'\r
+ LANGUAGE 'C' IMMUTABLE STRICT; \r
\r
-BEGIN\r
- FOR myrec IN EXECUTE 'SELECT ST_Extent("' || columnname || '") As extent FROM "' || tablename || '"' LOOP\r
- return myrec.extent;\r
- END LOOP;\r
-END;\r
-$$\r
-LANGUAGE 'plpgsql' IMMUTABLE STRICT;\r
+-- Availability: 1.5.0\r
+CREATE TYPE gidx (\r
+ internallength = variable,\r
+ input = gidx_in,\r
+ output = gidx_out,\r
+ storage = plain,\r
+ alignment = double\r
+);\r
\r
-------------------------------------------------------------------\r
-- BTREE indexes\r
FUNCTION 1 geometry_cmp (geom1 geometry, geom2 geometry);\r
\r
\r
-\r
-----------------------------------------------------------------------------\r
--- GiST 2D GEOMETRY-over-GSERIALIZED\r
+-- GiST 2D GEOMETRY-over-GSERIALIZED INDEX\r
-----------------------------------------------------------------------------\r
---\r
--- Box2Df type is used by the GiST index bindings. \r
--- In/out functions are stubs, as all access should be internal.\r
----\r
--- Availability: 2.0.0\r
-CREATE OR REPLACE FUNCTION box2df_in(cstring)\r
- RETURNS box2df\r
- AS 'MODULE_PATHNAME','box2df_in'\r
- LANGUAGE 'C' IMMUTABLE STRICT; \r
\r
--- Availability: 2.0.0\r
-CREATE OR REPLACE FUNCTION box2df_out(box2df)\r
- RETURNS cstring\r
- AS 'MODULE_PATHNAME','box2df_out'\r
- LANGUAGE 'C' IMMUTABLE STRICT; \r
-\r
--- Availability: 2.0.0\r
-CREATE TYPE box2df (\r
- internallength = 16,\r
- input = box2df_in,\r
- output = box2df_out,\r
- storage = plain,\r
- alignment = double\r
-);\r
+-- ---------- ---------- ---------- ---------- ---------- ---------- ----------\r
+-- GiST Support Functions\r
+-- ---------- ---------- ---------- ---------- ---------- ---------- ----------\r
\r
-- Availability: 2.0.0\r
CREATE OR REPLACE FUNCTION geometry_gist_distance_2d(internal,geometry,int4) \r
-- GEOMETRY Operators\r
-----------------------------------------------------------------------------\r
\r
+-- ---------- ---------- ---------- ---------- ---------- ---------- ----------\r
+-- 2D GEOMETRY Operators\r
+-- ---------- ---------- ---------- ---------- ---------- ---------- ----------\r
+\r
-- Availability: 2.0.0\r
CREATE OR REPLACE FUNCTION geometry_overlaps(geom1 geometry, geom2 geometry) \r
RETURNS boolean \r
FUNCTION 7 geometry_gist_same_2d (geom1 geometry, geom2 geometry, internal);\r
\r
\r
+-----------------------------------------------------------------------------\r
+-- GiST ND GEOMETRY-over-GSERIALIZED\r
+-----------------------------------------------------------------------------\r
+\r
+-- ---------- ---------- ---------- ---------- ---------- ---------- ----------\r
+-- GiST Support Functions\r
+-- ---------- ---------- ---------- ---------- ---------- ---------- ----------\r
+\r
+-- Availability: 2.0.0\r
+CREATE OR REPLACE FUNCTION geometry_gist_consistent_nd(internal,geometry,int4) \r
+ RETURNS bool \r
+ AS 'MODULE_PATHNAME' ,'gserialized_gist_consistent'\r
+ LANGUAGE 'C';\r
+\r
+-- Availability: 2.0.0\r
+CREATE OR REPLACE FUNCTION geometry_gist_compress_nd(internal) \r
+ RETURNS internal \r
+ AS 'MODULE_PATHNAME','gserialized_gist_compress'\r
+ LANGUAGE 'C';\r
+\r
+-- Availability: 2.0.0\r
+CREATE OR REPLACE FUNCTION geometry_gist_penalty_nd(internal,internal,internal) \r
+ RETURNS internal \r
+ AS 'MODULE_PATHNAME' ,'gserialized_gist_penalty'\r
+ LANGUAGE 'C';\r
+\r
+-- Availability: 2.0.0\r
+CREATE OR REPLACE FUNCTION geometry_gist_picksplit_nd(internal, internal) \r
+ RETURNS internal \r
+ AS 'MODULE_PATHNAME' ,'gserialized_gist_picksplit'\r
+ LANGUAGE 'C';\r
+\r
+-- Availability: 2.0.0\r
+CREATE OR REPLACE FUNCTION geometry_gist_union_nd(bytea, internal) \r
+ RETURNS internal \r
+ AS 'MODULE_PATHNAME' ,'gserialized_gist_union'\r
+ LANGUAGE 'C';\r
+\r
+-- Availability: 2.0.0\r
+CREATE OR REPLACE FUNCTION geometry_gist_same_nd(geometry, geometry, internal) \r
+ RETURNS internal \r
+ AS 'MODULE_PATHNAME' ,'gserialized_gist_same'\r
+ LANGUAGE 'C';\r
+\r
+-- Availability: 2.0.0\r
+CREATE OR REPLACE FUNCTION geometry_gist_decompress_nd(internal) \r
+ RETURNS internal \r
+ AS 'MODULE_PATHNAME' ,'gserialized_gist_decompress'\r
+ LANGUAGE 'C';\r
+\r
+-- Availability: 2.0.0\r
+--CREATE OR REPLACE FUNCTION geometry_gist_selectivity_nd (internal, oid, internal, int4)\r
+-- RETURNS float8\r
+-- AS 'MODULE_PATHNAME', 'geometry_gist_selectivity_nd'\r
+-- LANGUAGE 'C';\r
+\r
+-- Availability: 2.0.0\r
+--CREATE OR REPLACE FUNCTION geography_gist_join_selectivity_nd(internal, oid, internal, smallint)\r
+-- RETURNS float8\r
+-- AS 'MODULE_PATHNAME', 'geometry_gist_join_selectivity_nd'\r
+-- LANGUAGE 'C';\r
+\r
+-- ---------- ---------- ---------- ---------- ---------- ---------- ----------\r
+-- N-D GEOMETRY Operators\r
+-- ---------- ---------- ---------- ---------- ---------- ---------- ----------\r
+\r
+-- Availability: 2.0.0\r
+CREATE OR REPLACE FUNCTION geometry_overlaps_nd(geometry, geometry) \r
+ RETURNS boolean \r
+ AS 'MODULE_PATHNAME' ,'gserialized_overlaps'\r
+ LANGUAGE 'C' IMMUTABLE STRICT;\r
+\r
+-- Availability: 2.0.0\r
+CREATE OPERATOR &&& (\r
+ LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = geometry_overlaps_nd,\r
+ COMMUTATOR = '&&&'\r
+ ,RESTRICT = contsel, JOIN = contjoinsel\r
+-- ,RESTRICT = geometry_gist_selectivity_nd \r
+-- ,JOIN = geometry_gist_join_selectivity_nd\r
+);\r
+\r
+-- Availability: 2.0.0\r
+CREATE OPERATOR CLASS gist_geometry_ops_nd\r
+ FOR TYPE geometry USING GIST AS\r
+ STORAGE gidx,\r
+ OPERATOR 3 &&& ,\r
+-- OPERATOR 6 ~= ,\r
+-- OPERATOR 7 ~ ,\r
+-- OPERATOR 8 @ ,\r
+ FUNCTION 1 geometry_gist_consistent_nd (internal, geometry, int4),\r
+ FUNCTION 2 geometry_gist_union_nd (bytea, internal),\r
+ FUNCTION 3 geometry_gist_compress_nd (internal),\r
+ FUNCTION 4 geometry_gist_decompress_nd (internal),\r
+ FUNCTION 5 geometry_gist_penalty_nd (internal, internal, internal),\r
+ FUNCTION 6 geometry_gist_picksplit_nd (internal, internal),\r
+ FUNCTION 7 geometry_gist_same_nd (geometry, geometry, internal);\r
+\r
+\r
+-----------------------------------------------------------------------------\r
+-- Affine transforms\r
+-----------------------------------------------------------------------------\r
+\r
+-- Availability: 1.2.2\r
+CREATE OR REPLACE FUNCTION ST_Affine(geometry,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8)\r
+ RETURNS geometry\r
+ AS 'MODULE_PATHNAME', 'LWGEOM_affine'\r
+ LANGUAGE 'C' IMMUTABLE STRICT;\r
+\r
+-- Availability: 1.2.2\r
+CREATE OR REPLACE FUNCTION ST_Affine(geometry,float8,float8,float8,float8,float8,float8)\r
+ RETURNS geometry\r
+ AS 'SELECT ST_Affine($1, $2, $3, 0, $4, $5, 0, 0, 0, 1, $6, $7, 0)'\r
+ LANGUAGE 'SQL' IMMUTABLE STRICT;\r
+\r
+-- Availability: 1.2.2\r
+CREATE OR REPLACE FUNCTION ST_RotateZ(geometry,float8)\r
+ RETURNS geometry\r
+ AS 'SELECT ST_Affine($1, cos($2), -sin($2), 0, sin($2), cos($2), 0, 0, 0, 1, 0, 0, 0)'\r
+ LANGUAGE 'SQL' IMMUTABLE STRICT;\r
+\r
+-- Availability: 1.2.2\r
+CREATE OR REPLACE FUNCTION ST_Rotate(geometry,float8)\r
+ RETURNS geometry\r
+ AS 'SELECT ST_RotateZ($1, $2)'\r
+ LANGUAGE 'SQL' IMMUTABLE STRICT;\r
+\r
+-- Availability: 1.2.2\r
+CREATE OR REPLACE FUNCTION ST_RotateX(geometry,float8)\r
+ RETURNS geometry\r
+ AS 'SELECT ST_Affine($1, 1, 0, 0, 0, cos($2), -sin($2), 0, sin($2), cos($2), 0, 0, 0)'\r
+ LANGUAGE 'SQL' IMMUTABLE STRICT;\r
+\r
+-- Availability: 1.2.2\r
+CREATE OR REPLACE FUNCTION ST_RotateY(geometry,float8)\r
+ RETURNS geometry\r
+ AS 'SELECT ST_Affine($1, cos($2), 0, sin($2), 0, 1, 0, -sin($2), 0, cos($2), 0, 0, 0)'\r
+ LANGUAGE 'SQL' IMMUTABLE STRICT;\r
+\r
+-- Availability: 1.2.2\r
+CREATE OR REPLACE FUNCTION ST_Translate(geometry,float8,float8,float8)\r
+ RETURNS geometry\r
+ AS 'SELECT ST_Affine($1, 1, 0, 0, 0, 1, 0, 0, 0, 1, $2, $3, $4)'\r
+ LANGUAGE 'SQL' IMMUTABLE STRICT;\r
+\r
+-- Availability: 1.2.2\r
+CREATE OR REPLACE FUNCTION ST_Translate(geometry,float8,float8)\r
+ RETURNS geometry\r
+ AS 'SELECT ST_Translate($1, $2, $3, 0)'\r
+ LANGUAGE 'SQL' IMMUTABLE STRICT;\r
+\r
+-- Availability: 1.2.2\r
+CREATE OR REPLACE FUNCTION ST_Scale(geometry,float8,float8,float8)\r
+ RETURNS geometry\r
+ AS 'SELECT ST_Affine($1, $2, 0, 0, 0, $3, 0, 0, 0, $4, 0, 0, 0)'\r
+ LANGUAGE 'SQL' IMMUTABLE STRICT;\r
+\r
+-- Availability: 1.2.2\r
+CREATE OR REPLACE FUNCTION ST_Scale(geometry,float8,float8)\r
+ RETURNS geometry\r
+ AS 'SELECT ST_Scale($1, $2, $3, 1)'\r
+ LANGUAGE 'SQL' IMMUTABLE STRICT;\r
+\r
+-- Availability: 1.2.2\r
+CREATE OR REPLACE FUNCTION ST_Transscale(geometry,float8,float8,float8,float8)\r
+ RETURNS geometry\r
+ AS 'SELECT ST_Affine($1, $4, 0, 0, 0, $5, 0,\r
+ 0, 0, 1, $2 * $4, $3 * $5, 0)'\r
+ LANGUAGE 'SQL' IMMUTABLE STRICT;\r
+\r
+-- Availability: 1.2.2\r
+CREATE OR REPLACE FUNCTION ST_Shift_Longitude(geometry)\r
+ RETURNS geometry\r
+ AS 'MODULE_PATHNAME', 'LWGEOM_longitude_shift'\r
+ LANGUAGE 'C' IMMUTABLE STRICT;\r
+\r
+-----------------------------------------------------------------------------\r
+-- BOX3D FUNCTIONS\r
+-----------------------------------------------------------------------------\r
+\r
+-- Availability: 1.2.2\r
+CREATE OR REPLACE FUNCTION ST_XMin(box3d)\r
+ RETURNS FLOAT8\r
+ AS 'MODULE_PATHNAME','BOX3D_xmin'\r
+ LANGUAGE 'C' IMMUTABLE STRICT;\r
+\r
+-- Availability: 1.2.2\r
+CREATE OR REPLACE FUNCTION ST_YMin(box3d)\r
+ RETURNS FLOAT8\r
+ AS 'MODULE_PATHNAME','BOX3D_ymin'\r
+ LANGUAGE 'C' IMMUTABLE STRICT;\r
+\r
+-- Availability: 1.2.2\r
+CREATE OR REPLACE FUNCTION ST_ZMin(box3d)\r
+ RETURNS FLOAT8\r
+ AS 'MODULE_PATHNAME','BOX3D_zmin'\r
+ LANGUAGE 'C' IMMUTABLE STRICT;\r
+\r
+-- Availability: 1.2.2\r
+CREATE OR REPLACE FUNCTION ST_XMax(box3d)\r
+ RETURNS FLOAT8\r
+ AS 'MODULE_PATHNAME','BOX3D_xmax'\r
+ LANGUAGE 'C' IMMUTABLE STRICT;\r
+\r
+-- Availability: 1.2.2\r
+CREATE OR REPLACE FUNCTION ST_YMax(box3d)\r
+ RETURNS FLOAT8\r
+ AS 'MODULE_PATHNAME','BOX3D_ymax'\r
+ LANGUAGE 'C' IMMUTABLE STRICT;\r
+\r
+-- Availability: 1.2.2\r
+CREATE OR REPLACE FUNCTION ST_ZMax(box3d)\r
+ RETURNS FLOAT8\r
+ AS 'MODULE_PATHNAME','BOX3D_zmax'\r
+ LANGUAGE 'C' IMMUTABLE STRICT;\r
+\r
+-----------------------------------------------------------------------------\r
+-- BOX2D FUNCTIONS\r
+-----------------------------------------------------------------------------\r
+\r
+-- Availability: 1.2.2\r
+CREATE OR REPLACE FUNCTION ST_expand(box2d,float8)\r
+ RETURNS box2d\r
+ AS 'MODULE_PATHNAME', 'BOX2DFLOAT4_expand'\r
+ LANGUAGE 'C' IMMUTABLE STRICT;\r
+\r
+-- Availability: 1.5.0\r
+CREATE OR REPLACE FUNCTION postgis_getbbox(geometry)\r
+ RETURNS box2d\r
+ AS 'MODULE_PATHNAME','LWGEOM_to_BOX2DFLOAT4'\r
+ LANGUAGE 'C' IMMUTABLE STRICT;\r
+\r
+-- Availability: 1.2.2\r
+CREATE OR REPLACE FUNCTION ST_MakeBox2d(geom1 geometry, geom2 geometry)\r
+ RETURNS box2d\r
+ AS 'MODULE_PATHNAME', 'BOX2DFLOAT4_construct'\r
+ LANGUAGE 'C' IMMUTABLE STRICT;\r
+\r
+\r
+-- Availability: 1.2.2\r
+CREATE OR REPLACE FUNCTION ST_Combine_BBox(box2d,geometry)\r
+ RETURNS box2d\r
+ AS 'MODULE_PATHNAME', 'BOX2DFLOAT4_combine'\r
+ LANGUAGE 'C' IMMUTABLE;\r
+\r
+-----------------------------------------------------------------------\r
+-- ESTIMATED_EXTENT( <schema name>, <table name>, <column name> )\r
+-----------------------------------------------------------------------\r
+-- Availability: 1.2.2\r
+CREATE OR REPLACE FUNCTION ST_estimated_extent(text,text,text) RETURNS box2d AS\r
+ 'MODULE_PATHNAME', 'geometry_estimated_extent'\r
+ LANGUAGE 'C' IMMUTABLE STRICT SECURITY DEFINER;\r
+\r
+-----------------------------------------------------------------------\r
+-- ESTIMATED_EXTENT( <table name>, <column name> )\r
+-----------------------------------------------------------------------\r
+-- Availability: 1.2.2\r
+CREATE OR REPLACE FUNCTION ST_estimated_extent(text,text) RETURNS box2d AS\r
+ 'MODULE_PATHNAME', 'geometry_estimated_extent'\r
+ LANGUAGE 'C' IMMUTABLE STRICT SECURITY DEFINER;\r
+\r
+-----------------------------------------------------------------------\r
+-- FIND_EXTENT( <schema name>, <table name>, <column name> )\r
+-----------------------------------------------------------------------\r
+-- Availability: 1.2.2\r
+CREATE OR REPLACE FUNCTION ST_find_extent(text,text,text) RETURNS box2d AS\r
+$$\r
+DECLARE\r
+ schemaname alias for $1;\r
+ tablename alias for $2;\r
+ columnname alias for $3;\r
+ myrec RECORD;\r
+\r
+BEGIN\r
+ FOR myrec IN EXECUTE 'SELECT ST_Extent("' || columnname || '") As extent FROM "' || schemaname || '"."' || tablename || '"' LOOP\r
+ return myrec.extent;\r
+ END LOOP;\r
+END;\r
+$$\r
+LANGUAGE 'plpgsql' IMMUTABLE STRICT;\r
+\r
+\r
+-----------------------------------------------------------------------\r
+-- FIND_EXTENT( <table name>, <column name> )\r
+-----------------------------------------------------------------------\r
+-- Availability: 1.2.2\r
+CREATE OR REPLACE FUNCTION ST_find_extent(text,text) RETURNS box2d AS\r
+$$\r
+DECLARE\r
+ tablename alias for $1;\r
+ columnname alias for $2;\r
+ myrec RECORD;\r
+\r
+BEGIN\r
+ FOR myrec IN EXECUTE 'SELECT ST_Extent("' || columnname || '") As extent FROM "' || tablename || '"' LOOP\r
+ return myrec.extent;\r
+ END LOOP;\r
+END;\r
+$$\r
+LANGUAGE 'plpgsql' IMMUTABLE STRICT;\r
+\r
+\r
-------------------------------------------\r
-- other lwgeom functions\r
-------------------------------------------\r
LANGUAGE 'C' IMMUTABLE STRICT;\r
\r
------------------------------------------------------------------------\r
--- Misures\r
+-- Measures\r
------------------------------------------------------------------------\r
-- Availability: 2.0.0\r
CREATE OR REPLACE FUNCTION ST_3DLength(geometry)\r
AS 'MODULE_PATHNAME', 'LWGEOM_makepoint'\r
LANGUAGE 'C' IMMUTABLE STRICT;\r
\r
-\r
-- Availability: 1.2.2\r
CREATE OR REPLACE FUNCTION ST_MakePoint(float8, float8, float8, float8)\r
RETURNS geometry\r