mirror of
https://git.osgeo.org/gitea/postgis/postgis
synced 2024-10-26 10:02:50 +00:00
All type definitions moved at the beginning of the file.
Left to compat: what was in postgis_sql_end_VER_. git-svn-id: http://svn.osgeo.org/postgis/trunk@575 b70326c6-7e19-0410-871a-916f4a2858ee
This commit is contained in:
parent
5826682dc1
commit
012ed444f5
749
postgis.sql.in
749
postgis.sql.in
|
@ -29,8 +29,9 @@ BEGIN TRANSACTION;
|
|||
(select 'PL/PgSQL is installed.' as message from pg_language where lanname='plpgsql') union (select 'You must install PL/PgSQL before running this SQL file,\nor you will get an error. To install PL/PgSQL run:\n\tcreatelang plpgsql <dbname>'::text as message) order by message limit 1;
|
||||
|
||||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-- HISTOGRAM2D
|
||||
-------------------------------------------------------------------
|
||||
-- HISTOGRAM2D TYPE
|
||||
-------------------------------------------------------------------
|
||||
|
||||
#if USE_VERSION < 73
|
||||
# define HISTOGRAM_IN_REP opaque
|
||||
|
@ -58,24 +59,25 @@ CREATE TYPE histogram2d (
|
|||
storage = main
|
||||
);
|
||||
|
||||
-------------------------------------------------------------------
|
||||
-- BOX3D TYPE
|
||||
-------------------------------------------------------------------
|
||||
|
||||
-----------------------------------------
|
||||
-- THESE WERE postgis_sql_VER_start.sql.in
|
||||
-----------------------------------------
|
||||
#if USE_VERSION < 73
|
||||
# define BOX3D_IN_REP opaque
|
||||
# define BOX3D_OUT_REP opaque
|
||||
#else
|
||||
# define BOX3D_IN_REP box3d
|
||||
# define BOX3D_OUT_REP cstring
|
||||
#endif
|
||||
|
||||
|
||||
#if USE_VERSION == 71
|
||||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-- BOX3D
|
||||
|
||||
CREATEFUNCTION box3d_in(opaque)
|
||||
RETURNS opaque
|
||||
CREATEFUNCTION box3d_in(BOX3D_OUT_REP)
|
||||
RETURNS BOX3D_IN_REP
|
||||
AS '@MODULE_FILENAME@'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATEFUNCTION box3d_out(opaque)
|
||||
RETURNS opaque
|
||||
CREATEFUNCTION box3d_out(BOX3D_IN_REP)
|
||||
RETURNS BOX3D_OUT_REP
|
||||
AS '@MODULE_FILENAME@'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
|
@ -86,16 +88,25 @@ CREATE TYPE box3d (
|
|||
output = box3d_out
|
||||
);
|
||||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-- SPHEROID
|
||||
-------------------------------------------------------------------
|
||||
-- SPHEROID TYPE
|
||||
-------------------------------------------------------------------
|
||||
|
||||
CREATEFUNCTION spheroid_in(opaque)
|
||||
RETURNS opaque
|
||||
#if USE_VERSION < 73
|
||||
# define SPHEROID_IN_REP opaque
|
||||
# define SPHEROID_OUT_REP opaque
|
||||
#else
|
||||
# define SPHEROID_IN_REP spheroid
|
||||
# define SPHEROID_OUT_REP cstring
|
||||
#endif
|
||||
|
||||
CREATEFUNCTION spheroid_in(SPHEROID_OUT_REP)
|
||||
RETURNS SPHEROID_IN_REP
|
||||
AS '@MODULE_FILENAME@','ellipsoid_in'
|
||||
LANGUAGE 'C' WITH (isstrict,iscachable);
|
||||
|
||||
CREATEFUNCTION spheroid_out(opaque)
|
||||
RETURNS opaque
|
||||
CREATEFUNCTION spheroid_out(SPHEROID_IN_REP)
|
||||
RETURNS SPHEROID_OUT_REP
|
||||
AS '@MODULE_FILENAME@','ellipsoid_out'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
|
@ -106,374 +117,70 @@ CREATE TYPE spheroid (
|
|||
output = spheroid_out
|
||||
);
|
||||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-- WKB
|
||||
-------------------------------------------------------------------
|
||||
-- WKB TYPE
|
||||
-------------------------------------------------------------------
|
||||
|
||||
CREATEFUNCTION wkb_in(opaque)
|
||||
RETURNS opaque
|
||||
#if USE_VERSION < 73
|
||||
# define WKB_IN_REP opaque
|
||||
# define WKB_OUT_REP opaque
|
||||
#else
|
||||
# define WKB_IN_REP wkb
|
||||
# define WKB_OUT_REP cstring
|
||||
#endif
|
||||
|
||||
CREATEFUNCTION wkb_in(WKB_OUT_REP)
|
||||
RETURNS WKB_IN_REP
|
||||
AS '@MODULE_FILENAME@','WKB_in'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATEFUNCTION wkb_out(opaque)
|
||||
RETURNS opaque
|
||||
AS '@MODULE_FILENAME@','WKB_out'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATE TYPE wkb (
|
||||
internallength = variable,
|
||||
input = wkb_in,
|
||||
output = wkb_out,
|
||||
storage = extended
|
||||
);
|
||||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-- CHIP
|
||||
|
||||
CREATEFUNCTION chip_in(opaque)
|
||||
RETURNS opaque
|
||||
AS '@MODULE_FILENAME@','CHIP_in'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATEFUNCTION chip_out(opaque)
|
||||
RETURNS opaque
|
||||
AS '@MODULE_FILENAME@','CHIP_out'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATE TYPE chip (
|
||||
alignment = double,
|
||||
internallength = variable,
|
||||
input = chip_in,
|
||||
output = chip_out,
|
||||
storage = extended
|
||||
);
|
||||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-- GEOMETRY
|
||||
|
||||
CREATEFUNCTION geometry_in(opaque)
|
||||
RETURNS opaque
|
||||
AS '@MODULE_FILENAME@'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATEFUNCTION geometry_out(opaque)
|
||||
RETURNS opaque
|
||||
AS '@MODULE_FILENAME@'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATE TYPE geometry (
|
||||
alignment = double,
|
||||
internallength = variable,
|
||||
input = geometry_in,
|
||||
output = geometry_out,
|
||||
storage = main
|
||||
);
|
||||
|
||||
--
|
||||
-- GiST Selectivity Function
|
||||
--
|
||||
|
||||
CREATEFUNCTION postgis_gist_sel(oid, oid, int2, opaque, int4)
|
||||
RETURNS float8
|
||||
AS '@MODULE_FILENAME@'
|
||||
LANGUAGE 'C';
|
||||
|
||||
#elif USE_VERSION == 72
|
||||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-- BOX3D
|
||||
|
||||
CREATEFUNCTION box3d_in(opaque)
|
||||
RETURNS opaque
|
||||
AS '@MODULE_FILENAME@'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATEFUNCTION box3d_out(opaque)
|
||||
RETURNS opaque
|
||||
AS '@MODULE_FILENAME@'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATE TYPE box3d (
|
||||
alignment = double,
|
||||
internallength = 48,
|
||||
input = box3d_in,
|
||||
output = box3d_out
|
||||
);
|
||||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-- SPHEROID
|
||||
|
||||
CREATEFUNCTION spheroid_in(opaque)
|
||||
RETURNS opaque
|
||||
AS '@MODULE_FILENAME@','ellipsoid_in'
|
||||
LANGUAGE 'C' WITH (isstrict,iscachable);
|
||||
|
||||
CREATEFUNCTION spheroid_out(opaque)
|
||||
RETURNS opaque
|
||||
AS '@MODULE_FILENAME@','ellipsoid_out'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATE TYPE spheroid (
|
||||
alignment = double,
|
||||
internallength = 65,
|
||||
input = spheroid_in,
|
||||
output = spheroid_out
|
||||
);
|
||||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-- WKB
|
||||
|
||||
CREATEFUNCTION wkb_in(opaque)
|
||||
RETURNS opaque
|
||||
AS '@MODULE_FILENAME@','WKB_in'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATEFUNCTION wkb_out(opaque)
|
||||
RETURNS opaque
|
||||
AS '@MODULE_FILENAME@','WKB_out'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATE TYPE wkb (
|
||||
internallength = variable,
|
||||
input = wkb_in,
|
||||
output = wkb_out,
|
||||
storage = extended
|
||||
);
|
||||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-- CHIP
|
||||
|
||||
CREATEFUNCTION chip_in(opaque)
|
||||
RETURNS opaque
|
||||
AS '@MODULE_FILENAME@','CHIP_in'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATEFUNCTION chip_out(opaque)
|
||||
RETURNS opaque
|
||||
AS '@MODULE_FILENAME@','CHIP_out'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATE TYPE chip (
|
||||
alignment = double,
|
||||
internallength = variable,
|
||||
input = chip_in,
|
||||
output = chip_out,
|
||||
storage = extended
|
||||
);
|
||||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-- GEOMETRY
|
||||
|
||||
CREATEFUNCTION geometry_in(opaque)
|
||||
RETURNS opaque
|
||||
AS '@MODULE_FILENAME@'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATEFUNCTION geometry_out(opaque)
|
||||
RETURNS opaque
|
||||
AS '@MODULE_FILENAME@'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATE TYPE geometry (
|
||||
alignment = double,
|
||||
internallength = variable,
|
||||
input = geometry_in,
|
||||
output = geometry_out,
|
||||
storage = main
|
||||
);
|
||||
|
||||
--
|
||||
-- GiST Selectivity Function
|
||||
--
|
||||
|
||||
CREATEFUNCTION postgis_gist_sel(opaque, oid, opaque, int4)
|
||||
RETURNS float8
|
||||
AS '@MODULE_FILENAME@'
|
||||
LANGUAGE'C';
|
||||
|
||||
#elif USE_VERSION == 73
|
||||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-- BOX3D
|
||||
|
||||
CREATEFUNCTION box3d_in(cstring)
|
||||
RETURNS box3d
|
||||
AS '@MODULE_FILENAME@'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATEFUNCTION box3d_out(box3d)
|
||||
RETURNS cstring
|
||||
AS '@MODULE_FILENAME@'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATE TYPE box3d (
|
||||
alignment = double,
|
||||
internallength = 48,
|
||||
input = box3d_in,
|
||||
output = box3d_out
|
||||
);
|
||||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-- SPHEROID
|
||||
|
||||
CREATEFUNCTION spheroid_in(cstring)
|
||||
RETURNS spheroid
|
||||
AS '@MODULE_FILENAME@','ellipsoid_in'
|
||||
LANGUAGE 'C' WITH (isstrict,iscachable);
|
||||
|
||||
CREATEFUNCTION spheroid_out(spheroid)
|
||||
RETURNS cstring
|
||||
AS '@MODULE_FILENAME@','ellipsoid_out'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATE TYPE spheroid (
|
||||
alignment = double,
|
||||
internallength = 65,
|
||||
input = spheroid_in,
|
||||
output = spheroid_out
|
||||
);
|
||||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-- WKB
|
||||
|
||||
CREATEFUNCTION wkb_in(cstring)
|
||||
RETURNS wkb
|
||||
AS '@MODULE_FILENAME@','WKB_in'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATEFUNCTION wkb_out(wkb)
|
||||
RETURNS cstring
|
||||
AS '@MODULE_FILENAME@','WKB_out'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATE TYPE wkb (
|
||||
internallength = variable,
|
||||
input = wkb_in,
|
||||
output = wkb_out,
|
||||
storage = extended
|
||||
);
|
||||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-- CHIP
|
||||
|
||||
CREATEFUNCTION chip_in(cstring)
|
||||
RETURNS chip
|
||||
AS '@MODULE_FILENAME@','CHIP_in'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATEFUNCTION chip_out(chip)
|
||||
RETURNS cstring
|
||||
AS '@MODULE_FILENAME@','CHIP_out'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATE TYPE chip (
|
||||
alignment = double,
|
||||
internallength = variable,
|
||||
input = chip_in,
|
||||
output = chip_out,
|
||||
storage = extended
|
||||
);
|
||||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-- GEOMETRY
|
||||
|
||||
CREATEFUNCTION geometry_in(cstring)
|
||||
RETURNS geometry
|
||||
AS '@MODULE_FILENAME@'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATEFUNCTION geometry_out(geometry)
|
||||
RETURNS cstring
|
||||
AS '@MODULE_FILENAME@'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATE TYPE geometry (
|
||||
alignment = double,
|
||||
internallength = variable,
|
||||
input = geometry_in,
|
||||
output = geometry_out,
|
||||
storage = main
|
||||
);
|
||||
|
||||
--
|
||||
-- GiST selectivity function
|
||||
--
|
||||
|
||||
CREATEFUNCTION postgis_gist_sel (internal, oid, internal, int4)
|
||||
RETURNS float8
|
||||
AS '@MODULE_FILENAME@'
|
||||
LANGUAGE 'C';
|
||||
|
||||
#elif USE_VERSION == 74
|
||||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-- BOX3D
|
||||
|
||||
CREATEFUNCTION box3d_in(cstring)
|
||||
RETURNS box3d
|
||||
AS '@MODULE_FILENAME@'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATEFUNCTION box3d_out(box3d)
|
||||
RETURNS cstring
|
||||
AS '@MODULE_FILENAME@'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATE TYPE box3d (
|
||||
alignment = double,
|
||||
internallength = 48,
|
||||
input = box3d_in,
|
||||
output = box3d_out
|
||||
);
|
||||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-- SPHEROID
|
||||
|
||||
CREATEFUNCTION spheroid_in(cstring)
|
||||
RETURNS spheroid
|
||||
AS '@MODULE_FILENAME@','ellipsoid_in'
|
||||
LANGUAGE 'C' WITH (isstrict,iscachable);
|
||||
|
||||
CREATEFUNCTION spheroid_out(spheroid)
|
||||
RETURNS cstring
|
||||
AS '@MODULE_FILENAME@','ellipsoid_out'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATE TYPE spheroid (
|
||||
alignment = double,
|
||||
internallength = 65,
|
||||
input = spheroid_in,
|
||||
output = spheroid_out
|
||||
);
|
||||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-- WKB
|
||||
|
||||
CREATEFUNCTION wkb_in(cstring)
|
||||
RETURNS wkb
|
||||
AS '@MODULE_FILENAME@','WKB_in'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATEFUNCTION wkb_out(wkb)
|
||||
RETURNS cstring
|
||||
CREATEFUNCTION wkb_out(WKB_IN_REP)
|
||||
RETURNS WKB_OUT_REP
|
||||
AS '@MODULE_FILENAME@','WKB_out'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
#if USE_VERSION > 73
|
||||
CREATEFUNCTION wkb_recv(internal)
|
||||
RETURNS wkb
|
||||
AS '@MODULE_FILENAME@','WKB_recv'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATEFUNCTION wkb_send(wkb)
|
||||
RETURNS bytea
|
||||
AS '@MODULE_FILENAME@','WKBtoBYTEA'
|
||||
LANGUAGE 'C' WITH (iscachable,isstrict);
|
||||
#endif
|
||||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-- CHIP
|
||||
CREATE TYPE wkb (
|
||||
internallength = variable,
|
||||
input = wkb_in,
|
||||
output = wkb_out,
|
||||
#if USE_VERSION > 73
|
||||
send = wkb_send,
|
||||
receive = wkb_recv,
|
||||
#endif
|
||||
storage = extended
|
||||
);
|
||||
|
||||
CREATEFUNCTION chip_in(cstring)
|
||||
RETURNS chip
|
||||
-------------------------------------------------------------------
|
||||
-- CHIP TYPE
|
||||
-------------------------------------------------------------------
|
||||
|
||||
#if USE_VERSION < 73
|
||||
# define CHIP_IN_REP opaque
|
||||
# define CHIP_OUT_REP opaque
|
||||
#else
|
||||
# define CHIP_IN_REP chip
|
||||
# define CHIP_OUT_REP cstring
|
||||
#endif
|
||||
|
||||
CREATEFUNCTION chip_in(CHIP_OUT_REP)
|
||||
RETURNS CHIP_IN_REP
|
||||
AS '@MODULE_FILENAME@','CHIP_in'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATEFUNCTION chip_out(chip)
|
||||
RETURNS cstring
|
||||
CREATEFUNCTION chip_out(CHIP_IN_REP)
|
||||
RETURNS CHIP_OUT_REP
|
||||
AS '@MODULE_FILENAME@','CHIP_out'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
|
@ -485,166 +192,76 @@ CREATE TYPE chip (
|
|||
storage = extended
|
||||
);
|
||||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-- GEOMETRY
|
||||
-------------------------------------------------------------------
|
||||
-- GEOMETRY TYPE
|
||||
-------------------------------------------------------------------
|
||||
|
||||
CREATEFUNCTION geometry_in(cstring)
|
||||
RETURNS geometry
|
||||
#if USE_VERSION < 73
|
||||
# define GEOMETRY_IN_REP opaque
|
||||
# define GEOMETRY_OUT_REP opaque
|
||||
#else
|
||||
# define GEOMETRY_IN_REP geometry
|
||||
# define GEOMETRY_OUT_REP cstring
|
||||
#endif
|
||||
|
||||
CREATEFUNCTION geometry_in(GEOMETRY_OUT_REP)
|
||||
RETURNS GEOMETRY_IN_REP
|
||||
AS '@MODULE_FILENAME@'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATEFUNCTION geometry_out(geometry)
|
||||
RETURNS cstring
|
||||
AS '@MODULE_FILENAME@'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATE TYPE geometry (
|
||||
alignment = double,
|
||||
internallength = variable,
|
||||
input = geometry_in,
|
||||
output = geometry_out,
|
||||
storage = main
|
||||
);
|
||||
|
||||
--
|
||||
-- GiST selectivity function
|
||||
--
|
||||
|
||||
CREATEFUNCTION postgis_gist_sel (internal, oid, internal, int4)
|
||||
RETURNS float8
|
||||
AS '@MODULE_FILENAME@'
|
||||
LANGUAGE 'C';
|
||||
|
||||
|
||||
#elif USE_VERSION == 75
|
||||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-- BOX3D
|
||||
|
||||
CREATEFUNCTION box3d_in(cstring)
|
||||
RETURNS box3d
|
||||
AS '@MODULE_FILENAME@'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATEFUNCTION box3d_out(box3d)
|
||||
RETURNS cstring
|
||||
AS '@MODULE_FILENAME@'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATE TYPE box3d (
|
||||
alignment = double,
|
||||
internallength = 48,
|
||||
input = box3d_in,
|
||||
output = box3d_out
|
||||
);
|
||||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-- SPHEROID
|
||||
|
||||
CREATEFUNCTION spheroid_in(cstring)
|
||||
RETURNS spheroid
|
||||
AS '@MODULE_FILENAME@','ellipsoid_in'
|
||||
LANGUAGE 'C' WITH (isstrict,iscachable);
|
||||
|
||||
CREATEFUNCTION spheroid_out(spheroid)
|
||||
RETURNS cstring
|
||||
AS '@MODULE_FILENAME@','ellipsoid_out'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATE TYPE spheroid (
|
||||
alignment = double,
|
||||
internallength = 65,
|
||||
input = spheroid_in,
|
||||
output = spheroid_out
|
||||
);
|
||||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-- WKB
|
||||
|
||||
CREATEFUNCTION wkb_in(cstring)
|
||||
RETURNS wkb
|
||||
AS '@MODULE_FILENAME@','WKB_in'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATEFUNCTION wkb_out(wkb)
|
||||
RETURNS cstring
|
||||
AS '@MODULE_FILENAME@','WKB_out'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATEFUNCTION wkb_recv(internal)
|
||||
RETURNS wkb
|
||||
AS '@MODULE_FILENAME@','WKB_recv'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-- CHIP
|
||||
|
||||
CREATEFUNCTION chip_in(cstring)
|
||||
RETURNS chip
|
||||
AS '@MODULE_FILENAME@','CHIP_in'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATEFUNCTION chip_out(chip)
|
||||
RETURNS cstring
|
||||
AS '@MODULE_FILENAME@','CHIP_out'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATE TYPE chip (
|
||||
alignment = double,
|
||||
internallength = variable,
|
||||
input = chip_in,
|
||||
output = chip_out,
|
||||
storage = extended
|
||||
);
|
||||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-- GEOMETRY
|
||||
|
||||
CREATEFUNCTION geometry_in(cstring)
|
||||
RETURNS geometry
|
||||
AS '@MODULE_FILENAME@'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
CREATEFUNCTION geometry_out(geometry)
|
||||
RETURNS cstring
|
||||
CREATEFUNCTION geometry_out(GEOMETRY_IN_REP)
|
||||
RETURNS GEOMETRY_OUT_REP
|
||||
AS '@MODULE_FILENAME@'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
|
||||
#if USE_VERSION >= 75
|
||||
CREATEFUNCTION geometry_analyze(internal)
|
||||
RETURNS bool
|
||||
AS '@MODULE_FILENAME@'
|
||||
LANGUAGE 'C' WITH (isstrict);
|
||||
#endif
|
||||
|
||||
CREATE TYPE geometry (
|
||||
alignment = double,
|
||||
internallength = variable,
|
||||
input = geometry_in,
|
||||
output = geometry_out,
|
||||
storage = main,
|
||||
analyze = geometry_analyze
|
||||
#if USE_VERSION >= 75
|
||||
analyze = geometry_analyze,
|
||||
#endif
|
||||
storage = main
|
||||
);
|
||||
|
||||
--
|
||||
-- GiST selectivity function
|
||||
--
|
||||
|
||||
-------------------------------------------------------------------
|
||||
-- Workaround for old user defined variable length datatype
|
||||
-- default value bug. Should not be necessary > 7.2
|
||||
-------------------------------------------------------------------
|
||||
#if USE_VERSION <= 72
|
||||
UPDATE pg_type SET typdefault = NULL WHERE typname = 'wkb';
|
||||
UPDATE pg_type SET typdefault = NULL WHERE typname = 'geometry';
|
||||
UPDATE pg_type SET typdefault = NULL WHERE typname = 'histogram2d';
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
-------------------------------------------------------------------
|
||||
-- GiST Selectivity Function
|
||||
-------------------------------------------------------------------
|
||||
#if USE_VERSION == 71
|
||||
CREATEFUNCTION postgis_gist_sel(oid, oid, int2, opaque, int4)
|
||||
#elif USE_VERSION == 72
|
||||
CREATEFUNCTION postgis_gist_sel(opaque, oid, opaque, int4)
|
||||
#else
|
||||
CREATEFUNCTION postgis_gist_sel (internal, oid, internal, int4)
|
||||
#endif
|
||||
RETURNS float8
|
||||
AS '@MODULE_FILENAME@'
|
||||
LANGUAGE 'C';
|
||||
|
||||
|
||||
|
||||
#endif // USE_VERSION == ...
|
||||
|
||||
---------------------------------------
|
||||
-- THIS WAS postgis_sql_common.sql.in
|
||||
---------------------------------------
|
||||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-------------------------------------------------------------------
|
||||
-- SPATIAL_REF_SYS
|
||||
|
||||
-------------------------------------------------------------------
|
||||
CREATE TABLE spatial_ref_sys (
|
||||
srid integer not null primary key,
|
||||
auth_name varchar(256),
|
||||
|
@ -653,9 +270,9 @@ CREATE TABLE spatial_ref_sys (
|
|||
proj4text varchar(2048)
|
||||
);
|
||||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-------------------------------------------------------------------
|
||||
-- GEOMETRY_COLUMNS
|
||||
|
||||
-------------------------------------------------------------------
|
||||
CREATE TABLE geometry_columns (
|
||||
f_table_catalog varchar(256) not null,
|
||||
f_table_schema varchar(256) not null,
|
||||
|
@ -675,18 +292,9 @@ CREATE TABLE geometry_columns (
|
|||
f_table_name,
|
||||
f_geometry_column ) );
|
||||
|
||||
--
|
||||
-- Workaround for old user defined variable length datatype
|
||||
-- default value bug. Should not be necessary > 7.2
|
||||
--
|
||||
|
||||
UPDATE pg_type SET typdefault = NULL WHERE typname = 'wkb';
|
||||
UPDATE pg_type SET typdefault = NULL WHERE typname = 'geometry';
|
||||
UPDATE pg_type SET typdefault = NULL WHERE typname = 'histogram2d';
|
||||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-----------------------------------------------------------------------
|
||||
-- POSTGIS_VERSION()
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
CREATEFUNCTION postgis_version() RETURNS text
|
||||
AS 'SELECT \'@POSTGIS_VERSION@\'::text AS version'
|
||||
LANGUAGE 'sql';
|
||||
|
@ -694,7 +302,6 @@ LANGUAGE 'sql';
|
|||
-----------------------------------------------------------------------
|
||||
-- FIND_SRID( <schema>, <table>, <geom col> )
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
CREATEFUNCTION find_srid(varchar,varchar,varchar) RETURNS int4 AS
|
||||
'DECLARE
|
||||
schem text;
|
||||
|
@ -731,9 +338,9 @@ END;
|
|||
'
|
||||
LANGUAGE 'plpgsql' WITH (iscachable);
|
||||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-----------------------------------------------------------------------
|
||||
-- GET_PROJ4_FROM_SRID( <srid> )
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
CREATEFUNCTION get_proj4_from_srid(integer) RETURNS text AS
|
||||
'SELECT proj4text::text FROM spatial_ref_sys WHERE srid= $1'
|
||||
LANGUAGE 'sql' WITH (iscachable,isstrict);
|
||||
|
@ -742,55 +349,59 @@ LANGUAGE 'sql' WITH (iscachable,isstrict);
|
|||
-----------------------------------------------------------------------
|
||||
-- FIX_GEOMETRY_COLUMNS()
|
||||
-----------------------------------------------------------------------
|
||||
--
|
||||
|
||||
CREATEFUNCTION fix_geometry_columns() RETURNS text
|
||||
AS
|
||||
'
|
||||
DECLARE
|
||||
result text;
|
||||
linked integer;
|
||||
deleted integer;
|
||||
BEGIN
|
||||
|
||||
#if USE_VERSION >= 73
|
||||
-- Since 7.3 schema support has been added.
|
||||
-- Previous postgis versions used to put the database name in
|
||||
-- the schema column. This needs to be fixed, so we set to the
|
||||
-- empty string any schema value not existing in pg_namespace
|
||||
-- the schema column. This needs to be fixed, so we set to
|
||||
-- "public" any schema value not existing in pg_namespace
|
||||
--
|
||||
-- it would be better to find the correct schema name
|
||||
UPDATE geometry_columns SET f_table_schema = ''public''
|
||||
WHERE f_table_schema is NULL or f_table_schema NOT IN
|
||||
( SELECT nspname::varchar FROM pg_namespace );
|
||||
WHERE f_table_schema is NULL or f_table_schema = ''''
|
||||
OR f_table_schema NOT IN ( SELECT nspname::varchar
|
||||
FROM pg_namespace );
|
||||
#endif
|
||||
|
||||
#if USE_VERSION < 75
|
||||
-- Until PG75 we mantain a custom statistic field
|
||||
|
||||
UPDATE geometry_columns SET
|
||||
attrelid = NULL,
|
||||
varattnum = NULL;
|
||||
varattnum = NULL,
|
||||
stats = NULL;
|
||||
|
||||
UPDATE geometry_columns SET attrelid = (
|
||||
SELECT c.oid
|
||||
UPDATE geometry_columns SET
|
||||
attrelid = c.oid,
|
||||
varattnum = a.attnum
|
||||
#if USE_VERSION >= 73
|
||||
FROM pg_class c, pg_attribute a, pg_namespace n
|
||||
WHERE c.relname = geometry_columns.f_table_name::name
|
||||
AND a.attrelid = c.oid AND c.relnamespace = n.oid
|
||||
AND a.attname = geometry_columns.f_geometry_column::name
|
||||
AND n.nspname = geometry_columns.f_table_schema::name
|
||||
);
|
||||
WHERE n.nspname = f_table_schema::name
|
||||
AND c.relname = f_table_name::name
|
||||
AND c.relnamespace = n.oid
|
||||
#else // USE_VERSION < 73
|
||||
FROM pg_class c, pg_attribute a
|
||||
WHERE c.relname = f_table_name::name
|
||||
#endif
|
||||
AND a.attname = f_geometry_column::name
|
||||
AND a.attrelid = c.oid;
|
||||
|
||||
UPDATE geometry_columns SET varattnum = (
|
||||
SELECT a.attnum
|
||||
FROM pg_class c, pg_attribute a, pg_namespace n
|
||||
WHERE n.nspname = geometry_columns.f_table_schema::name
|
||||
AND c.relname = geometry_columns.f_table_name::name
|
||||
AND a.attname = geometry_columns.f_geometry_column::name
|
||||
AND a.attrelid = c.oid AND c.relnamespace = n.oid
|
||||
);
|
||||
GET DIAGNOSTICS linked = ROW_COUNT;
|
||||
|
||||
-- remove stale records
|
||||
DELETE FROM geometry_columns WHERE attrelid IS NULL;
|
||||
#endif
|
||||
|
||||
RETURN ''geometry_columns table is now linked to the system tables'';
|
||||
GET DIAGNOSTICS deleted = ROW_COUNT;
|
||||
|
||||
result = ''link:'' || linked::text || '' '' ||
|
||||
''del:'' || deleted::text;
|
||||
|
||||
return result;
|
||||
|
||||
END;
|
||||
'
|
||||
|
@ -799,7 +410,6 @@ LANGUAGE 'plpgsql' ;
|
|||
-----------------------------------------------------------------------
|
||||
-- FIND_EXTENT( <schema name>, <table name>, <column name> )
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
CREATEFUNCTION find_extent(text,text,text) RETURNS box3d AS
|
||||
'
|
||||
DECLARE
|
||||
|
@ -819,7 +429,7 @@ LANGUAGE 'plpgsql' WITH (isstrict);
|
|||
|
||||
-----------------------------------------------------------------------
|
||||
-- FIND_EXTENT( <table name>, <column name> )
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
CREATEFUNCTION find_extent(text,text) RETURNS box3d AS
|
||||
'
|
||||
DECLARE
|
||||
|
@ -836,8 +446,10 @@ END;
|
|||
'
|
||||
LANGUAGE 'plpgsql' WITH (isstrict);
|
||||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
-- TRANSFORM ( <geometry>, <srid> )
|
||||
-----------------------------------------------------------------------
|
||||
--
|
||||
-- Test:
|
||||
--
|
||||
|
@ -851,7 +463,7 @@ LANGUAGE 'plpgsql' WITH (isstrict);
|
|||
-- select transform( 'SRID=1;POINT(-120.8 50.3)', 2);
|
||||
-- -> 'SRID=2;POINT(1370033.37046971 600755.810968684)'
|
||||
--
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
CREATEFUNCTION transform_geometry(geometry,text,text,int)
|
||||
RETURNS geometry
|
||||
AS '@MODULE_FILENAME@','transform_geom'
|
||||
|
@ -865,8 +477,9 @@ LANGUAGE 'plpgsql' WITH (iscachable,isstrict);
|
|||
|
||||
|
||||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-----------------------------------------------------------------------
|
||||
-- COMMON FUNCTIONS
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
CREATEFUNCTION srid(chip)
|
||||
RETURNS int4
|
||||
|
@ -2410,21 +2023,6 @@ UPDATE pg_opclass
|
|||
|
||||
#elif USE_VERSION == 74
|
||||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-- WKB
|
||||
|
||||
-- this has been moved here at _end from _start
|
||||
-- because we need the definition of function bytea
|
||||
-- found in _common
|
||||
CREATE TYPE wkb (
|
||||
internallength = variable,
|
||||
input = wkb_in,
|
||||
output = wkb_out,
|
||||
storage = extended,
|
||||
send = bytea,
|
||||
receive = wkb_recv
|
||||
);
|
||||
|
||||
--
|
||||
-- 7.3 explicit casting definitions
|
||||
--
|
||||
|
@ -2542,19 +2140,6 @@ CREATE OPERATOR CLASS btree_geometry_ops
|
|||
|
||||
-- - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
-- WKB
|
||||
|
||||
-- this has been moved here at _end from _start
|
||||
-- because we need the definition of function bytea
|
||||
-- found in _common
|
||||
CREATE TYPE wkb (
|
||||
internallength = variable,
|
||||
input = wkb_in,
|
||||
output = wkb_out,
|
||||
storage = extended,
|
||||
send = bytea,
|
||||
receive = wkb_recv
|
||||
);
|
||||
|
||||
--
|
||||
-- 7.3 explicit casting definitions
|
||||
--
|
||||
|
|
Loading…
Reference in a new issue