1-- Legacy functions without chip functions -- 2-- This is the full list including the legacy_minimal.sql (minimal) 3-- so no need to install both legacy and the minimal 4#include "legacy_minimal.sql.in" 5--- start functions that in theory should never have been used or internal like stuff deprecated 6 7-- these were superseded by PostGIS_AddBBOX , PostGIS_DropBBOX, PostGIS_HasBBOX in 1.5 -- 8CREATE OR REPLACE FUNCTION addbbox(geometry) 9 RETURNS geometry 10 AS 'MODULE_PATHNAME','LWGEOM_addBBOX' 11 LANGUAGE 'c' IMMUTABLE STRICT; 12 13CREATE OR REPLACE FUNCTION dropbbox(geometry) 14 RETURNS geometry 15 AS 'MODULE_PATHNAME','LWGEOM_dropBBOX' 16 LANGUAGE 'c' IMMUTABLE STRICT; 17 18-- Deprecation in 1.2.3 19CREATE OR REPLACE FUNCTION hasbbox(geometry) 20 RETURNS bool 21 AS 'MODULE_PATHNAME', 'LWGEOM_hasBBOX' 22 LANGUAGE 'c' IMMUTABLE STRICT; 23 24-- Availability: 1.2.2 -- never deprecated but don't think anyone uses it 25CREATE OR REPLACE FUNCTION getsrid(geometry) 26 RETURNS int4 27 AS 'MODULE_PATHNAME','LWGEOM_get_srid' 28 LANGUAGE 'c' IMMUTABLE STRICT; 29 30-- Deprecation in 1.2.3 31CREATE OR REPLACE FUNCTION GeometryFromText(text, int4) 32 RETURNS geometry 33 AS 'MODULE_PATHNAME','LWGEOM_from_text' 34 LANGUAGE 'c' IMMUTABLE STRICT; 35 36-- Deprecation in 1.2.3 37CREATE OR REPLACE FUNCTION GeometryFromText(text) 38 RETURNS geometry 39 AS 'MODULE_PATHNAME','LWGEOM_from_text' 40 LANGUAGE 'c' IMMUTABLE STRICT; 41 42-- Deprecation in 1.2.3 43CREATE OR REPLACE FUNCTION GeomFromWKB(bytea) 44 RETURNS geometry 45 AS 'MODULE_PATHNAME','LWGEOM_from_WKB' 46 LANGUAGE 'c' IMMUTABLE STRICT; 47 48-- Deprecation in 1.2.3 49CREATE OR REPLACE FUNCTION GeomFromWKB(bytea, int) 50 RETURNS geometry 51 AS 'SELECT ST_SetSRID(ST_GeomFromWKB($1), $2)' 52 LANGUAGE 'sql' IMMUTABLE STRICT; 53 54-- Deprecation in 1.2.3 55CREATE OR REPLACE FUNCTION noop(geometry) 56 RETURNS geometry 57 AS 'MODULE_PATHNAME', 'LWGEOM_noop' 58 LANGUAGE 'c' VOLATILE STRICT; 59 60-- ESRI ArcSDE compatibility functions -- 61-- We are remiving these because we don't 62-- think ESRI relies on them 63-- so their existence is pointless 64-- Availability: 1.5.0 65-- PostGIS equivalent function: none 66CREATE OR REPLACE FUNCTION SE_EnvelopesIntersect(geometry,geometry) 67 RETURNS boolean 68 AS $$ 69 SELECT $1 && $2 70 $$ 71 LANGUAGE 'sql' IMMUTABLE STRICT; 72 73CREATE OR REPLACE FUNCTION SE_Is3D(geometry) 74 RETURNS bool 75 AS 'MODULE_PATHNAME', 'LWGEOM_hasz' 76 LANGUAGE 'c' IMMUTABLE STRICT; 77 78-- Availability: 1.5.0 79CREATE OR REPLACE FUNCTION SE_IsMeasured(geometry) 80 RETURNS bool 81 AS 'MODULE_PATHNAME', 'LWGEOM_hasm' 82 LANGUAGE 'c' IMMUTABLE STRICT; 83 84-- PostGIS equivalent function: Z(geometry) 85CREATE OR REPLACE FUNCTION SE_Z(geometry) 86 RETURNS float8 87 AS 'MODULE_PATHNAME','LWGEOM_z_point' 88 LANGUAGE 'c' IMMUTABLE STRICT; 89 90-- PostGIS equivalent function: M(geometry) 91CREATE OR REPLACE FUNCTION SE_M(geometry) 92 RETURNS float8 93 AS 'MODULE_PATHNAME','LWGEOM_m_point' 94 LANGUAGE 'c' IMMUTABLE STRICT; 95 96-- PostGIS equivalent function: locate_between_measures(geometry, float8, float8) 97CREATE OR REPLACE FUNCTION SE_LocateBetween(geometry, float8, float8) 98 RETURNS geometry 99 AS 'MODULE_PATHNAME', 'LWGEOM_locate_between_m' 100 LANGUAGE 'c' IMMUTABLE STRICT; 101 102-- PostGIS equivalent function: locate_along_measure(geometry, float8) 103CREATE OR REPLACE FUNCTION SE_LocateAlong(geometry, float8) 104 RETURNS geometry 105 AS $$ SELECT SE_LocateBetween($1, $2, $2) $$ 106 LANGUAGE 'sql' IMMUTABLE STRICT; 107 108--- Deprecation in 1.5.0 109CREATE OR REPLACE FUNCTION st_box2d(geometry) 110 RETURNS box2d 111 AS 'MODULE_PATHNAME','LWGEOM_to_BOX2D' 112 LANGUAGE 'c' IMMUTABLE STRICT; 113 114--- Deprecation in 1.5.0 115CREATE OR REPLACE FUNCTION st_box3d(geometry) 116 RETURNS box3d 117 AS 'MODULE_PATHNAME','LWGEOM_to_BOX3D' 118 LANGUAGE 'c' IMMUTABLE STRICT; 119 120--- Deprecation in 1.5.0 121CREATE OR REPLACE FUNCTION st_box(geometry) 122 RETURNS box 123 AS 'MODULE_PATHNAME','LWGEOM_to_BOX' 124 LANGUAGE 'c' IMMUTABLE STRICT; 125 126--- Deprecation in 1.5.0 127CREATE OR REPLACE FUNCTION st_box2d(box3d) 128 RETURNS box2d 129 AS 'MODULE_PATHNAME','BOX3D_to_BOX2D' 130 LANGUAGE 'c' IMMUTABLE STRICT; 131 132--- Deprecation in 1.5.0 133CREATE OR REPLACE FUNCTION st_box3d(box2d) 134 RETURNS box3d 135 AS 'MODULE_PATHNAME','BOX2D_to_BOX3D' 136 LANGUAGE 'c' IMMUTABLE STRICT; 137 138--- Deprecation in 1.5.0 139CREATE OR REPLACE FUNCTION st_box(box3d) 140 RETURNS box 141 AS 'MODULE_PATHNAME','BOX3D_to_BOX' 142 LANGUAGE 'c' IMMUTABLE STRICT; 143 144--- Deprecation in 1.5.0 145CREATE OR REPLACE FUNCTION st_text(geometry) 146 RETURNS text 147 AS 'MODULE_PATHNAME','LWGEOM_to_text' 148 LANGUAGE 'c' IMMUTABLE STRICT; 149 150--- Deprecation in 1.5.0 151CREATE OR REPLACE FUNCTION st_geometry(box2d) 152 RETURNS geometry 153 AS 'MODULE_PATHNAME','BOX2D_to_LWGEOM' 154 LANGUAGE 'c' IMMUTABLE STRICT; 155 156--- Deprecation in 1.5.0 157CREATE OR REPLACE FUNCTION st_geometry(box3d) 158 RETURNS geometry 159 AS 'MODULE_PATHNAME','BOX3D_to_LWGEOM' 160 LANGUAGE 'c' IMMUTABLE STRICT; 161 162--- Deprecation in 1.5.0 163CREATE OR REPLACE FUNCTION st_geometry(text) 164 RETURNS geometry 165 AS 'MODULE_PATHNAME','parse_WKT_lwgeom' 166 LANGUAGE 'c' IMMUTABLE STRICT; 167 168--- Deprecation in 1.5.0 169CREATE OR REPLACE FUNCTION st_geometry(bytea) 170 RETURNS geometry 171 AS 'MODULE_PATHNAME','LWGEOM_from_bytea' 172 LANGUAGE 'c' IMMUTABLE STRICT; 173 174--- Deprecation in 1.5.0 175CREATE OR REPLACE FUNCTION st_bytea(geometry) 176 RETURNS bytea 177 AS 'MODULE_PATHNAME','LWGEOM_to_bytea' 178 LANGUAGE 'c' IMMUTABLE STRICT; 179 180-- Deprecation in 1.5.0 181CREATE OR REPLACE FUNCTION st_box3d_in(cstring) 182 RETURNS box3d 183 AS 'MODULE_PATHNAME', 'BOX3D_in' 184 LANGUAGE 'c' IMMUTABLE STRICT; 185 186-- Deprecation in 1.5.0 187CREATE OR REPLACE FUNCTION st_box3d_out(box3d) 188 RETURNS cstring 189 AS 'MODULE_PATHNAME', 'BOX3D_out' 190 LANGUAGE 'c' IMMUTABLE STRICT; 191 192-- START MANAGEMENT FUNCTIONS 193-- These are legacy management functions with no place in our 2.0 world 194----------------------------------------------------------------------- 195-- RENAME_GEOMETRY_TABLE_CONSTRAINTS() 196----------------------------------------------------------------------- 197-- This function has been obsoleted for the difficulty in 198-- finding attribute on which the constraint is applied. 199-- AddGeometryColumn will name the constraints in a meaningful 200-- way, but nobody can rely on it since old postgis versions did 201-- not do that. 202----------------------------------------------------------------------- 203CREATE OR REPLACE FUNCTION rename_geometry_table_constraints() RETURNS text 204AS 205$$ 206SELECT 'rename_geometry_table_constraint() is obsoleted'::text 207$$ 208LANGUAGE 'sql' IMMUTABLE; 209 210----------------------------------------------------------------------- 211-- FIX_GEOMETRY_COLUMNS() 212----------------------------------------------------------------------- 213-- This function will: 214-- 215-- o try to fix the schema of records with an integer one 216-- (for PG>=73) 217-- 218-- o link records to system tables through attrelid and varattnum 219-- (for PG<75) 220-- 221-- o delete all records for which no linking was possible 222-- (for PG<75) 223-- 224-- 225----------------------------------------------------------------------- 226CREATE OR REPLACE FUNCTION fix_geometry_columns() RETURNS text 227AS 228$$ 229DECLARE 230 mislinked record; 231 result text; 232 linked integer; 233 deleted integer; 234 foundschema integer; 235BEGIN 236 237 -- Since 7.3 schema support has been added. 238 -- Previous postgis versions used to put the database name in 239 -- the schema column. This needs to be fixed, so we try to 240 -- set the correct schema for each geometry_colums record 241 -- looking at table, column, type and srid. 242 /** UPDATE geometry_columns SET f_table_schema = n.nspname 243 FROM pg_namespace n, pg_class c, pg_attribute a, 244 pg_constraint sridcheck, pg_constraint typecheck 245 WHERE ( f_table_schema is NULL 246 OR f_table_schema = '' 247 OR f_table_schema NOT IN ( 248 SELECT nspname::varchar 249 FROM pg_namespace nn, pg_class cc, pg_attribute aa 250 WHERE cc.relnamespace = nn.oid 251 AND cc.relname = f_table_name::name 252 AND aa.attrelid = cc.oid 253 AND aa.attname = f_geometry_column::name)) 254 AND f_table_name::name = c.relname 255 AND c.oid = a.attrelid 256 AND c.relnamespace = n.oid 257 AND f_geometry_column::name = a.attname 258 259 AND sridcheck.conrelid = c.oid 260 AND sridcheck.consrc LIKE '(%srid(% = %)' 261 AND sridcheck.consrc ~ textcat(' = ', srid::text) 262 263 AND typecheck.conrelid = c.oid 264 AND typecheck.consrc LIKE 265 '((geometrytype(%) = ''%''::text) OR (% IS NULL))' 266 AND typecheck.consrc ~ textcat(' = ''', type::text) 267 268 AND NOT EXISTS ( 269 SELECT oid FROM geometry_columns gc 270 WHERE c.relname::varchar = gc.f_table_name 271 AND n.nspname::varchar = gc.f_table_schema 272 AND a.attname::varchar = gc.f_geometry_column 273 ); 274 275 GET DIAGNOSTICS foundschema = ROW_COUNT; 276 277 -- no linkage to system table needed 278 return 'fixed:'||foundschema::text; **/ 279 return 'This function is obsolete now that geometry_columns is a view'; 280 281END; 282$$ 283LANGUAGE 'plpgsql' VOLATILE; 284 285----------------------------------------------------------------------- 286-- PROBE_GEOMETRY_COLUMNS() 287----------------------------------------------------------------------- 288-- Fill the geometry_columns table with values probed from the system 289-- catalogues. This is done by simply looking up constraints previously 290-- added to a geometry column. If geometry constraints are missing, no 291-- attempt is made to add the necessary constraints to the geometry 292-- column, nor is it recorded in the geometry_columns table. 293-- 3d flag cannot be probed, it defaults to 2 294-- 295-- Note that bogus records already in geometry_columns are not 296-- overridden (a check for schema.table.column is performed), so 297-- to have a fresh probe backup your geometry_columns, delete from 298-- it and probe. 299----------------------------------------------------------------------- 300CREATE OR REPLACE FUNCTION probe_geometry_columns() RETURNS text AS 301$$ 302DECLARE 303 inserted integer; 304 oldcount integer; 305 probed integer; 306 stale integer; 307BEGIN 308 309/* SELECT count(*) INTO oldcount FROM geometry_columns; 310 311 SELECT count(*) INTO probed 312 FROM pg_class c, pg_attribute a, pg_type t, 313 pg_namespace n, 314 pg_constraint sridcheck, pg_constraint typecheck 315 316 WHERE t.typname = 'geometry' 317 AND a.atttypid = t.oid 318 AND a.attrelid = c.oid 319 AND c.relnamespace = n.oid 320 AND sridcheck.connamespace = n.oid 321 AND typecheck.connamespace = n.oid 322 AND sridcheck.conrelid = c.oid 323 AND sridcheck.consrc LIKE '(%srid('||a.attname||') = %)' 324 AND typecheck.conrelid = c.oid 325 AND typecheck.consrc LIKE 326 '((geometrytype('||a.attname||') = ''%''::text) OR (% IS NULL))' 327 ; 328 329 INSERT INTO geometry_columns SELECT 330 ''::varchar as f_table_catalogue, 331 n.nspname::varchar as f_table_schema, 332 c.relname::varchar as f_table_name, 333 a.attname::varchar as f_geometry_column, 334 2 as coord_dimension, 335 trim(both ' =)' from 336 replace(replace(split_part( 337 sridcheck.consrc, ' = ', 2), ')', ''), '(', ''))::integer AS srid, 338 trim(both ' =)''' from substr(typecheck.consrc, 339 strpos(typecheck.consrc, '='), 340 strpos(typecheck.consrc, '::')- 341 strpos(typecheck.consrc, '=') 342 ))::varchar as type 343 FROM pg_class c, pg_attribute a, pg_type t, 344 pg_namespace n, 345 pg_constraint sridcheck, pg_constraint typecheck 346 WHERE t.typname = 'geometry' 347 AND a.atttypid = t.oid 348 AND a.attrelid = c.oid 349 AND c.relnamespace = n.oid 350 AND sridcheck.connamespace = n.oid 351 AND typecheck.connamespace = n.oid 352 AND sridcheck.conrelid = c.oid 353 AND sridcheck.consrc LIKE '(%srid('||a.attname||') = %)' 354 AND typecheck.conrelid = c.oid 355 AND typecheck.consrc LIKE 356 '((geometrytype('||a.attname||') = ''%''::text) OR (% IS NULL))' 357 358 AND NOT EXISTS ( 359 SELECT oid FROM geometry_columns gc 360 WHERE c.relname::varchar = gc.f_table_name 361 AND n.nspname::varchar = gc.f_table_schema 362 AND a.attname::varchar = gc.f_geometry_column 363 ); 364 365 GET DIAGNOSTICS inserted = ROW_COUNT; 366 367 IF oldcount > probed THEN 368 stale = oldcount-probed; 369 ELSE 370 stale = 0; 371 END IF; 372 373 RETURN 'probed:'||probed::text|| 374 ' inserted:'||inserted::text|| 375 ' conflicts:'||(probed-inserted)::text|| 376 ' stale:'||stale::text;*/ 377 RETURN 'This function is obsolete now that geometry_columns is a view'; 378END 379 380$$ 381LANGUAGE 'plpgsql' VOLATILE; 382 383-- END MANAGEMENT FUNCTIONS -- 384 385-- Deprecation in 1.5.0 386-- these remarked out functions cause problems and no one uses them directly 387-- They should not be installed 388/** CREATE OR REPLACE FUNCTION st_geometry_analyze(internal) 389 RETURNS bool 390 AS 'MODULE_PATHNAME', 'geometry_analyze' 391 LANGUAGE 'c' VOLATILE STRICT; 392 393-- Deprecation in 1.5.0 394CREATE OR REPLACE FUNCTION st_geometry_in(cstring) 395 RETURNS geometry 396 AS 'MODULE_PATHNAME','LWGEOM_in' 397 LANGUAGE 'c' IMMUTABLE STRICT; 398 399-- Deprecation in 1.5.0 400CREATE OR REPLACE FUNCTION st_geometry_out(geometry) 401 RETURNS cstring 402 AS 'MODULE_PATHNAME','LWGEOM_out' 403 LANGUAGE 'c' IMMUTABLE STRICT; 404 405-- Deprecation in 1.5.0 406CREATE OR REPLACE FUNCTION st_geometry_recv(internal) 407 RETURNS geometry 408 AS 'MODULE_PATHNAME','LWGEOM_recv' 409 LANGUAGE 'c' IMMUTABLE STRICT; 410 411-- Deprecation in 1.5.0 412CREATE OR REPLACE FUNCTION st_geometry_send(geometry) 413 RETURNS bytea 414 AS 'MODULE_PATHNAME','LWGEOM_send' 415 LANGUAGE 'c' IMMUTABLE STRICT; 416 417-- Deprecation in 1.5.0 418CREATE OR REPLACE FUNCTION st_spheroid_in(cstring) 419 RETURNS spheroid 420 AS 'MODULE_PATHNAME','ellipsoid_in' 421 LANGUAGE 'c' IMMUTABLE STRICT; 422 423-- Deprecation in 1.5.0 424CREATE OR REPLACE FUNCTION st_spheroid_out(spheroid) 425 RETURNS cstring 426 AS 'MODULE_PATHNAME','ellipsoid_out' 427 LANGUAGE 'c' IMMUTABLE STRICT; 428 429**/ 430-- Deprecation in 1.5.0 431CREATE OR REPLACE FUNCTION st_geometry_lt(geometry, geometry) 432 RETURNS bool 433 AS 'MODULE_PATHNAME', 'lwgeom_lt' 434 LANGUAGE 'c' IMMUTABLE STRICT; 435 436-- Deprecation in 1.5.0 437CREATE OR REPLACE FUNCTION st_geometry_le(geometry, geometry) 438 RETURNS bool 439 AS 'MODULE_PATHNAME', 'lwgeom_le' 440 LANGUAGE 'c' IMMUTABLE STRICT; 441 442-- Deprecation in 1.5.0 443CREATE OR REPLACE FUNCTION st_geometry_gt(geometry, geometry) 444 RETURNS bool 445 AS 'MODULE_PATHNAME', 'lwgeom_gt' 446 LANGUAGE 'c' IMMUTABLE STRICT; 447 448-- Deprecation in 1.5.0 449CREATE OR REPLACE FUNCTION st_geometry_ge(geometry, geometry) 450 RETURNS bool 451 AS 'MODULE_PATHNAME', 'lwgeom_ge' 452 LANGUAGE 'c' IMMUTABLE STRICT; 453 454-- Deprecation in 1.5.0 455CREATE OR REPLACE FUNCTION st_geometry_eq(geometry, geometry) 456 RETURNS bool 457 AS 'MODULE_PATHNAME', 'lwgeom_eq' 458 LANGUAGE 'c' IMMUTABLE STRICT; 459 460-- Deprecation in 1.5.0 461CREATE OR REPLACE FUNCTION st_geometry_cmp(geometry, geometry) 462 RETURNS integer 463 AS 'MODULE_PATHNAME', 'lwgeom_cmp' 464 LANGUAGE 'c' IMMUTABLE STRICT; 465 466--- end functions that in theory should never have been used 467 468-- begin old ogc (and non-ST) names that have been replaced with new SQL-MM and SQL ST_ Like names -- 469-- AFFINE Functions -- 470-- Availability: 1.1.2 471-- Deprecation in 1.2.3 472CREATE OR REPLACE FUNCTION Affine(geometry,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8) 473 RETURNS geometry 474 AS 'MODULE_PATHNAME', 'LWGEOM_affine' 475 LANGUAGE 'c' IMMUTABLE STRICT; 476 477-- Availability: 1.1.2 478-- Deprecation in 1.2.3 479CREATE OR REPLACE FUNCTION Affine(geometry,float8,float8,float8,float8,float8,float8) 480 RETURNS geometry 481 AS 'SELECT st_affine($1, $2, $3, 0, $4, $5, 0, 0, 0, 1, $6, $7, 0)' 482 LANGUAGE 'sql' IMMUTABLE STRICT; 483 484-- Availability: 1.1.2 485-- Deprecation in 1.2.3 486CREATE OR REPLACE FUNCTION RotateZ(geometry,float8) 487 RETURNS geometry 488 AS 'SELECT st_affine($1, cos($2), -sin($2), 0, sin($2), cos($2), 0, 0, 0, 1, 0, 0, 0)' 489 LANGUAGE 'sql' IMMUTABLE STRICT; 490 491-- Availability: 1.1.2 492-- Deprecation in 1.2.3 493CREATE OR REPLACE FUNCTION Rotate(geometry,float8) 494 RETURNS geometry 495 AS 'SELECT st_rotateZ($1, $2)' 496 LANGUAGE 'sql' IMMUTABLE STRICT; 497 498-- Availability: 1.1.2 499-- Deprecation in 1.2.3 500CREATE OR REPLACE FUNCTION RotateX(geometry,float8) 501 RETURNS geometry 502 AS 'SELECT st_affine($1, 1, 0, 0, 0, cos($2), -sin($2), 0, sin($2), cos($2), 0, 0, 0)' 503 LANGUAGE 'sql' IMMUTABLE STRICT; 504 505-- Availability: 1.1.2 506-- Deprecation in 1.2.3 507CREATE OR REPLACE FUNCTION RotateY(geometry,float8) 508 RETURNS geometry 509 AS 'SELECT st_affine($1, cos($2), 0, sin($2), 0, 1, 0, -sin($2), 0, cos($2), 0, 0, 0)' 510 LANGUAGE 'sql' IMMUTABLE STRICT; 511 512-- Availability: 1.1.0 513-- Deprecation in 1.2.3 514CREATE OR REPLACE FUNCTION Scale(geometry,float8,float8,float8) 515 RETURNS geometry 516 AS 'SELECT st_affine($1, $2, 0, 0, 0, $3, 0, 0, 0, $4, 0, 0, 0)' 517 LANGUAGE 'sql' IMMUTABLE STRICT; 518 519-- Availability: 1.1.0 520-- Deprecation in 1.2.3 521CREATE OR REPLACE FUNCTION Scale(geometry,float8,float8) 522 RETURNS geometry 523 AS 'SELECT st_scale($1, $2, $3, 1)' 524 LANGUAGE 'sql' IMMUTABLE STRICT; 525 526-- Deprecation in 1.2.3 527CREATE OR REPLACE FUNCTION Translate(geometry,float8,float8,float8) 528 RETURNS geometry 529 AS 'SELECT st_affine($1, 1, 0, 0, 0, 1, 0, 0, 0, 1, $2, $3, $4)' 530 LANGUAGE 'sql' IMMUTABLE STRICT; 531 532-- Deprecation in 1.2.3 533CREATE OR REPLACE FUNCTION Translate(geometry,float8,float8) 534 RETURNS geometry 535 AS 'SELECT st_translate($1, $2, $3, 0)' 536 LANGUAGE 'sql' IMMUTABLE STRICT; 537 538-- Availability: 1.1.0 539-- Deprecation in 1.2.3 540CREATE OR REPLACE FUNCTION TransScale(geometry,float8,float8,float8,float8) 541 RETURNS geometry 542 AS 'SELECT st_affine($1, $4, 0, 0, 0, $5, 0, 543 0, 0, 1, $2 * $4, $3 * $5, 0)' 544 LANGUAGE 'sql' IMMUTABLE STRICT; 545 546-- END Affine functions 547 548-- Deprecation in 1.2.3 549CREATE OR REPLACE FUNCTION AddPoint(geometry, geometry) 550 RETURNS geometry 551 AS 'MODULE_PATHNAME', 'LWGEOM_addpoint' 552 LANGUAGE 'c' IMMUTABLE STRICT; 553 554-- Deprecation in 1.2.3 555CREATE OR REPLACE FUNCTION AddPoint(geometry, geometry, integer) 556 RETURNS geometry 557 AS 'MODULE_PATHNAME', 'LWGEOM_addpoint' 558 LANGUAGE 'c' IMMUTABLE STRICT; 559 560-- Deprecation in 1.2.3 561CREATE OR REPLACE FUNCTION Area(geometry) 562 RETURNS FLOAT8 563 AS 'MODULE_PATHNAME','LWGEOM_area_polygon' 564 LANGUAGE 'c' IMMUTABLE STRICT; 565 566-- this is an alias for 'area(geometry)' 567-- there is nothing such an 'area3d'... 568-- Deprecation in 1.2.3 569CREATE OR REPLACE FUNCTION Area2D(geometry) 570 RETURNS FLOAT8 571 AS 'MODULE_PATHNAME', 'LWGEOM_area_polygon' 572 LANGUAGE 'c' IMMUTABLE STRICT; 573 574-- Deprecation in 1.2.3 575CREATE OR REPLACE FUNCTION AsEWKB(geometry) 576 RETURNS BYTEA 577 AS 'MODULE_PATHNAME','WKBFromLWGEOM' 578 LANGUAGE 'c' IMMUTABLE STRICT; 579 580-- Deprecation in 1.2.3 581CREATE OR REPLACE FUNCTION AsEWKB(geometry,text) 582 RETURNS bytea 583 AS 'MODULE_PATHNAME','WKBFromLWGEOM' 584 LANGUAGE 'c' IMMUTABLE STRICT; 585 586-- Deprecation in 1.2.3 587CREATE OR REPLACE FUNCTION AsEWKT(geometry) 588 RETURNS TEXT 589 AS 'MODULE_PATHNAME','LWGEOM_asEWKT' 590 LANGUAGE 'c' IMMUTABLE STRICT; 591 592-- AsGML(geom) / precision=15 version=2 593-- Deprecation in 1.2.3 594CREATE OR REPLACE FUNCTION AsGML(geometry) 595 RETURNS TEXT 596 AS 'SELECT _ST_AsGML(2, $1, 15, 0, null, null)' 597 LANGUAGE 'sql' IMMUTABLE STRICT; 598 599-- Deprecation in 1.2.3 600CREATE OR REPLACE FUNCTION AsGML(geometry, int4) 601 RETURNS TEXT 602 AS 'SELECT _ST_AsGML(2, $1, $2, 0, null, null)' 603 LANGUAGE 'sql' IMMUTABLE STRICT; 604 605-- AsKML(geom, precision) / version=2 606-- Deprecation in 1.2.3 607CREATE OR REPLACE FUNCTION AsKML(geometry, int4) 608 RETURNS TEXT 609 AS 'SELECT _ST_AsKML(2, ST_transform($1,4326), $2, null)' 610 LANGUAGE 'sql' IMMUTABLE STRICT; 611 612-- AsKML(geom) / precision=15 version=2 613-- Deprecation in 1.2.3 614CREATE OR REPLACE FUNCTION AsKML(geometry) 615 RETURNS TEXT 616 AS 'SELECT _ST_AsKML(2, ST_Transform($1,4326), 15, null)' 617 LANGUAGE 'sql' IMMUTABLE STRICT; 618 619-- AsKML(version, geom, precision) 620-- Deprecation in 1.2.3 621CREATE OR REPLACE FUNCTION AsKML(int4, geometry, int4) 622 RETURNS TEXT 623 AS 'SELECT _ST_AsKML($1, ST_Transform($2,4326), $3, null)' 624 LANGUAGE 'sql' IMMUTABLE STRICT; 625 626-- Deprecation in 1.2.3 627CREATE OR REPLACE FUNCTION AsHEXEWKB(geometry) 628 RETURNS TEXT 629 AS 'MODULE_PATHNAME','LWGEOM_asHEXEWKB' 630 LANGUAGE 'c' IMMUTABLE STRICT; 631 632-- Deprecation in 1.2.3 633CREATE OR REPLACE FUNCTION AsHEXEWKB(geometry, text) 634 RETURNS TEXT 635 AS 'MODULE_PATHNAME','LWGEOM_asHEXEWKB' 636 LANGUAGE 'c' IMMUTABLE STRICT; 637 638-- Deprecation in 1.2.3 639CREATE OR REPLACE FUNCTION AsSVG(geometry) 640 RETURNS TEXT 641 AS 'MODULE_PATHNAME','LWGEOM_asSVG' 642 LANGUAGE 'c' IMMUTABLE STRICT; 643 644-- Deprecation in 1.2.3 645CREATE OR REPLACE FUNCTION AsSVG(geometry,int4) 646 RETURNS TEXT 647 AS 'MODULE_PATHNAME','LWGEOM_asSVG' 648 LANGUAGE 'c' IMMUTABLE STRICT; 649 650-- Deprecation in 1.2.3 651CREATE OR REPLACE FUNCTION AsSVG(geometry,int4,int4) 652 RETURNS TEXT 653 AS 'MODULE_PATHNAME','LWGEOM_asSVG' 654 LANGUAGE 'c' IMMUTABLE STRICT; 655 656-- Deprecation in 1.2.3 657CREATE OR REPLACE FUNCTION azimuth(geometry,geometry) 658 RETURNS float8 659 AS 'MODULE_PATHNAME', 'LWGEOM_azimuth' 660 LANGUAGE 'c' IMMUTABLE STRICT; 661 662-- Deprecation in 1.2.3 663CREATE OR REPLACE FUNCTION BdPolyFromText(text, integer) 664RETURNS geometry 665AS $$ 666DECLARE 667 geomtext alias for $1; 668 srid alias for $2; 669 mline geometry; 670 geom geometry; 671BEGIN 672 mline := ST_MultiLineStringFromText(geomtext, srid); 673 674 IF mline IS NULL 675 THEN 676 RAISE EXCEPTION 'Input is not a MultiLinestring'; 677 END IF; 678 679 geom := ST_BuildArea(mline); 680 681 IF GeometryType(geom) != 'POLYGON' 682 THEN 683 RAISE EXCEPTION 'Input returns more then a single polygon, try using BdMPolyFromText instead'; 684 END IF; 685 686 RETURN geom; 687END; 688$$ 689LANGUAGE 'plpgsql' IMMUTABLE STRICT; 690 691-- Deprecation in 1.2.3 692CREATE OR REPLACE FUNCTION BdMPolyFromText(text, integer) 693RETURNS geometry 694AS $$ 695DECLARE 696 geomtext alias for $1; 697 srid alias for $2; 698 mline geometry; 699 geom geometry; 700BEGIN 701 mline := ST_MultiLineStringFromText(geomtext, srid); 702 703 IF mline IS NULL 704 THEN 705 RAISE EXCEPTION 'Input is not a MultiLinestring'; 706 END IF; 707 708 geom := ST_Multi(ST_BuildArea(mline)); 709 710 RETURN geom; 711END; 712$$ 713LANGUAGE 'plpgsql' IMMUTABLE STRICT; 714 715-- Deprecation in 1.2.3 716CREATE OR REPLACE FUNCTION boundary(geometry) 717 RETURNS geometry 718 AS 'MODULE_PATHNAME','boundary' 719 LANGUAGE 'c' IMMUTABLE STRICT; 720 721-- Deprecation in 1.2.3 722CREATE OR REPLACE FUNCTION buffer(geometry,float8,integer) 723 RETURNS geometry 724 AS 'SELECT ST_Buffer($1, $2, $3)' 725 LANGUAGE 'sql' IMMUTABLE STRICT; 726 727-- Deprecation in 1.2.3 728CREATE OR REPLACE FUNCTION buffer(geometry,float8) 729 RETURNS geometry 730 AS 'MODULE_PATHNAME','buffer' 731 LANGUAGE 'c' IMMUTABLE STRICT 732 COST 100; 733 734-- Deprecation in 1.2.3 735CREATE OR REPLACE FUNCTION BuildArea(geometry) 736 RETURNS geometry 737 AS 'MODULE_PATHNAME', 'ST_BuildArea' 738 LANGUAGE 'c' IMMUTABLE STRICT 739 COST 100; 740 741-- This is also available w/out GEOS 742CREATE OR REPLACE FUNCTION Centroid(geometry) 743 RETURNS geometry 744 AS 'MODULE_PATHNAME' 745 LANGUAGE 'c' IMMUTABLE STRICT; 746 747-- Deprecation in 1.2.3 748CREATE OR REPLACE FUNCTION Contains(geometry,geometry) 749 RETURNS boolean 750 AS 'MODULE_PATHNAME' 751 LANGUAGE 'c' IMMUTABLE STRICT; 752 753-- Deprecation in 1.2.3 754CREATE OR REPLACE FUNCTION convexhull(geometry) 755 RETURNS geometry 756 AS 'MODULE_PATHNAME','convexhull' 757 LANGUAGE 'c' IMMUTABLE STRICT 758 COST 100; 759 760-- Deprecation in 1.2.3 761CREATE OR REPLACE FUNCTION crosses(geometry,geometry) 762 RETURNS boolean 763 AS 'MODULE_PATHNAME' 764 LANGUAGE 'c' IMMUTABLE STRICT; 765 766-- Deprecation in 1.2.3 767CREATE OR REPLACE FUNCTION distance(geometry,geometry) 768 RETURNS float8 769 AS 'MODULE_PATHNAME', 'LWGEOM_mindistance2d' 770 LANGUAGE 'c' IMMUTABLE STRICT 771 COST 100; 772 773-- Deprecation in 1.2.3 774CREATE OR REPLACE FUNCTION difference(geometry,geometry) 775 RETURNS geometry 776 AS 'MODULE_PATHNAME','difference' 777 LANGUAGE 'c' IMMUTABLE STRICT; 778 779-- Deprecation in 1.2.3 780CREATE OR REPLACE FUNCTION Dimension(geometry) 781 RETURNS int4 782 AS 'MODULE_PATHNAME', 'LWGEOM_dimension' 783 LANGUAGE 'c' IMMUTABLE STRICT; 784 785-- Deprecation in 1.2.3 786CREATE OR REPLACE FUNCTION disjoint(geometry,geometry) 787 RETURNS boolean 788 AS 'MODULE_PATHNAME' 789 LANGUAGE 'c' IMMUTABLE STRICT; 790 791-- Deprecation in 1.2.3 792CREATE OR REPLACE FUNCTION distance_sphere(geometry,geometry) 793 RETURNS FLOAT8 794 AS 'MODULE_PATHNAME','LWGEOM_distance_sphere' 795 LANGUAGE 'c' IMMUTABLE STRICT 796 COST 100; 797 798-- Deprecation in 1.2.3 799CREATE OR REPLACE FUNCTION distance_spheroid(geometry,geometry,spheroid) 800 RETURNS FLOAT8 801 AS 'MODULE_PATHNAME','LWGEOM_distance_ellipsoid' 802 LANGUAGE 'c' IMMUTABLE STRICT 803 COST 100; 804 805-- Deprecation in 1.2.3 806CREATE OR REPLACE FUNCTION Dump(geometry) 807 RETURNS SETOF geometry_dump 808 AS 'MODULE_PATHNAME', 'LWGEOM_dump' 809 LANGUAGE 'c' IMMUTABLE STRICT; 810 811-- Deprecation in 1.2.3 812CREATE OR REPLACE FUNCTION DumpRings(geometry) 813 RETURNS SETOF geometry_dump 814 AS 'MODULE_PATHNAME', 'LWGEOM_dump_rings' 815 LANGUAGE 'c' IMMUTABLE STRICT; 816 817-- Deprecation in 1.2.3 818CREATE OR REPLACE FUNCTION Envelope(geometry) 819 RETURNS geometry 820 AS 'MODULE_PATHNAME', 'LWGEOM_envelope' 821 LANGUAGE 'c' IMMUTABLE STRICT; 822 823-- Deprecation in 1.2.3 824CREATE OR REPLACE FUNCTION Expand(box2d,float8) 825 RETURNS box2d 826 AS 'MODULE_PATHNAME', 'BOX2D_expand' 827 LANGUAGE 'c' IMMUTABLE STRICT; 828 829-- Deprecation in 1.2.3 830CREATE OR REPLACE FUNCTION Expand(box3d,float8) 831 RETURNS box3d 832 AS 'MODULE_PATHNAME', 'BOX3D_expand' 833 LANGUAGE 'c' IMMUTABLE STRICT; 834 835-- Deprecation in 1.2.3 836CREATE OR REPLACE FUNCTION Expand(geometry,float8) 837 RETURNS geometry 838 AS 'MODULE_PATHNAME', 'LWGEOM_expand' 839 LANGUAGE 'c' IMMUTABLE STRICT; 840 841CREATE AGGREGATE Extent( 842 sfunc = ST_combine_bbox, 843 basetype = geometry, 844 finalfunc = box2d, 845 stype = box3d 846 ); 847 848-- Deprecation in 1.2.3 849CREATE OR REPLACE FUNCTION Find_Extent(text,text) RETURNS box2d AS 850$$ 851DECLARE 852 tablename alias for $1; 853 columnname alias for $2; 854 myrec RECORD; 855 856BEGIN 857 FOR myrec IN EXECUTE 'SELECT ST_Extent("' || columnname || '") As extent FROM "' || tablename || '"' LOOP 858 return myrec.extent; 859 END LOOP; 860END; 861$$ 862LANGUAGE 'plpgsql' IMMUTABLE STRICT; 863 864-- Deprecation in 1.2.3 865CREATE OR REPLACE FUNCTION Find_Extent(text,text,text) RETURNS box2d AS 866$$ 867DECLARE 868 schemaname alias for $1; 869 tablename alias for $2; 870 columnname alias for $3; 871 myrec RECORD; 872 873BEGIN 874 FOR myrec IN EXECUTE 'SELECT ST_Extent("' || columnname || '") FROM "' || schemaname || '"."' || tablename || '" As extent ' LOOP 875 return myrec.extent; 876 END LOOP; 877END; 878$$ 879LANGUAGE 'plpgsql' IMMUTABLE STRICT; 880 881-- Deprecation in 1.2.3 882CREATE OR REPLACE FUNCTION EndPoint(geometry) 883 RETURNS geometry 884 AS 'MODULE_PATHNAME', 'LWGEOM_endpoint_linestring' 885 LANGUAGE 'c' IMMUTABLE STRICT; 886 887-- Deprecation in 1.2.3 888CREATE OR REPLACE FUNCTION ExteriorRing(geometry) 889 RETURNS geometry 890 AS 'MODULE_PATHNAME','LWGEOM_exteriorring_polygon' 891 LANGUAGE 'c' IMMUTABLE STRICT; 892 893-- Deprecation in 1.2.3 894CREATE OR REPLACE FUNCTION Force_2d(geometry) 895 RETURNS geometry 896 AS 'MODULE_PATHNAME', 'LWGEOM_force_2d' 897 LANGUAGE 'c' IMMUTABLE STRICT; 898 899-- an alias for force_3dz 900-- Deprecation in 1.2.3 901CREATE OR REPLACE FUNCTION Force_3d(geometry) 902 RETURNS geometry 903 AS 'MODULE_PATHNAME', 'LWGEOM_force_3dz' 904 LANGUAGE 'c' IMMUTABLE STRICT; 905 906-- Deprecation in 1.2.3 907CREATE OR REPLACE FUNCTION Force_3dm(geometry) 908 RETURNS geometry 909 AS 'MODULE_PATHNAME', 'LWGEOM_force_3dm' 910 LANGUAGE 'c' IMMUTABLE STRICT; 911 912-- Deprecation in 1.2.3 913CREATE OR REPLACE FUNCTION Force_3dz(geometry) 914 RETURNS geometry 915 AS 'MODULE_PATHNAME', 'LWGEOM_force_3dz' 916 LANGUAGE 'c' IMMUTABLE STRICT; 917 918-- Deprecation in 1.2.3 919CREATE OR REPLACE FUNCTION Force_4d(geometry) 920 RETURNS geometry 921 AS 'MODULE_PATHNAME', 'LWGEOM_force_4d' 922 LANGUAGE 'c' IMMUTABLE STRICT; 923 924-- Deprecation in 1.2.3 925CREATE OR REPLACE FUNCTION Force_Collection(geometry) 926 RETURNS geometry 927 AS 'MODULE_PATHNAME', 'LWGEOM_force_collection' 928 LANGUAGE 'c' IMMUTABLE STRICT; 929 930-- Deprecation in 1.2.3 931CREATE OR REPLACE FUNCTION ForceRHR(geometry) 932 RETURNS geometry 933 AS 'MODULE_PATHNAME', 'LWGEOM_force_clockwise_poly' 934 LANGUAGE 'c' IMMUTABLE STRICT; 935 936-- Deprecation in 1.2.3 937CREATE OR REPLACE FUNCTION GeomCollFromText(text, int4) 938 RETURNS geometry 939 AS ' 940 SELECT CASE 941 WHEN geometrytype(GeomFromText($1, $2)) = ''GEOMETRYCOLLECTION'' 942 THEN GeomFromText($1,$2) 943 ELSE NULL END 944 ' 945 LANGUAGE 'sql' IMMUTABLE STRICT; 946 947-- Deprecation in 1.2.3 948CREATE OR REPLACE FUNCTION GeomCollFromText(text) 949 RETURNS geometry 950 AS ' 951 SELECT CASE 952 WHEN geometrytype(GeomFromText($1)) = ''GEOMETRYCOLLECTION'' 953 THEN GeomFromText($1) 954 ELSE NULL END 955 ' 956 LANGUAGE 'sql' IMMUTABLE STRICT; 957 958-- Deprecation in 1.2.3 959CREATE OR REPLACE FUNCTION GeomCollFromWKB(bytea, int) 960 RETURNS geometry 961 AS ' 962 SELECT CASE 963 WHEN geometrytype(GeomFromWKB($1, $2)) = ''GEOMETRYCOLLECTION'' 964 THEN GeomFromWKB($1, $2) 965 ELSE NULL END 966 ' 967 LANGUAGE 'sql' IMMUTABLE STRICT; 968 969 -- Deprecation in 1.2.3 970CREATE OR REPLACE FUNCTION GeomCollFromWKB(bytea) 971 RETURNS geometry 972 AS ' 973 SELECT CASE 974 WHEN geometrytype(GeomFromWKB($1)) = ''GEOMETRYCOLLECTION'' 975 THEN GeomFromWKB($1) 976 ELSE NULL END 977 ' 978 LANGUAGE 'sql' IMMUTABLE STRICT; 979 980-- Deprecation in 1.2.3 981CREATE OR REPLACE FUNCTION GeometryN(geometry,integer) 982 RETURNS geometry 983 AS 'MODULE_PATHNAME', 'LWGEOM_geometryn_collection' 984 LANGUAGE 'c' IMMUTABLE STRICT; 985 986-- Deprecation in 1.2.3 987CREATE OR REPLACE FUNCTION GeomUnion(geometry,geometry) 988 RETURNS geometry 989 AS 'MODULE_PATHNAME','geomunion' 990 LANGUAGE 'c' IMMUTABLE STRICT; 991 992-- Availability: 1.5.0 -- replaced with postgis_getbbox 993CREATE OR REPLACE FUNCTION getbbox(geometry) 994 RETURNS box2d 995 AS 'MODULE_PATHNAME','LWGEOM_to_BOX2D' 996 LANGUAGE 'c' IMMUTABLE STRICT; 997 998-- Deprecation in 1.2.3 999CREATE OR REPLACE FUNCTION intersects(geometry,geometry) 1000 RETURNS boolean 1001 AS 'MODULE_PATHNAME' 1002 LANGUAGE 'c' IMMUTABLE STRICT; 1003 1004-- Deprecation in 1.2.3 1005CREATE OR REPLACE FUNCTION IsRing(geometry) 1006 RETURNS boolean 1007 AS 'MODULE_PATHNAME' 1008 LANGUAGE 'c' IMMUTABLE STRICT; 1009 1010-- Deprecation in 1.2.3 1011CREATE OR REPLACE FUNCTION IsSimple(geometry) 1012 RETURNS boolean 1013 AS 'MODULE_PATHNAME', 'issimple' 1014 LANGUAGE 'c' IMMUTABLE STRICT; 1015 1016-- Deprecation in 1.2.3 1017CREATE OR REPLACE FUNCTION length_spheroid(geometry, spheroid) 1018 RETURNS FLOAT8 1019 AS 'MODULE_PATHNAME','LWGEOM_length_ellipsoid_linestring' 1020 LANGUAGE 'c' IMMUTABLE STRICT 1021 COST 100; 1022 1023-- Deprecation in 1.2.3 1024CREATE OR REPLACE FUNCTION length2d_spheroid(geometry, spheroid) 1025 RETURNS FLOAT8 1026 AS 'MODULE_PATHNAME','LWGEOM_length2d_ellipsoid' 1027 LANGUAGE 'c' IMMUTABLE STRICT 1028 COST 100; 1029 1030-- Deprecation in 1.2.3 1031CREATE OR REPLACE FUNCTION length3d_spheroid(geometry, spheroid) 1032 RETURNS FLOAT8 1033 AS 'MODULE_PATHNAME','LWGEOM_length_ellipsoid_linestring' 1034 LANGUAGE 'c' IMMUTABLE STRICT; 1035 1036-- Deprecation in 1.2.3 1037CREATE OR REPLACE FUNCTION LineMerge(geometry) 1038 RETURNS geometry 1039 AS 'MODULE_PATHNAME', 'linemerge' 1040 LANGUAGE 'c' IMMUTABLE STRICT 1041 COST 100; 1042 1043-- Deprecation in 1.2.3 1044CREATE OR REPLACE FUNCTION locate_along_measure(geometry, float8) 1045 RETURNS geometry 1046 AS $$ SELECT ST_locate_between_measures($1, $2, $2) $$ 1047 LANGUAGE 'sql' IMMUTABLE STRICT; 1048 1049-- Deprecation in 1.2.3 1050CREATE OR REPLACE FUNCTION MakeBox2d(geometry, geometry) 1051 RETURNS box2d 1052 AS 'MODULE_PATHNAME', 'BOX2D_construct' 1053 LANGUAGE 'c' IMMUTABLE STRICT; 1054 1055-- Deprecation in 1.2.3 1056CREATE OR REPLACE FUNCTION MakePolygon(geometry, geometry[]) 1057 RETURNS geometry 1058 AS 'MODULE_PATHNAME', 'LWGEOM_makepoly' 1059 LANGUAGE 'c' IMMUTABLE STRICT; 1060 1061-- Deprecation in 1.2.3 1062CREATE OR REPLACE FUNCTION MakePolygon(geometry) 1063 RETURNS geometry 1064 AS 'MODULE_PATHNAME', 'LWGEOM_makepoly' 1065 LANGUAGE 'c' IMMUTABLE STRICT; 1066 1067-- Deprecation in 1.2.3 1068CREATE OR REPLACE FUNCTION MPolyFromWKB(bytea) 1069 RETURNS geometry 1070 AS ' 1071 SELECT CASE WHEN geometrytype(GeomFromWKB($1)) = ''MULTIPOLYGON'' 1072 THEN GeomFromWKB($1) 1073 ELSE NULL END 1074 ' 1075 LANGUAGE 'sql' IMMUTABLE STRICT; 1076 1077-- Deprecation in 1.2.3 1078CREATE OR REPLACE FUNCTION multi(geometry) 1079 RETURNS geometry 1080 AS 'MODULE_PATHNAME', 'LWGEOM_force_multi' 1081 LANGUAGE 'c' IMMUTABLE STRICT; 1082 1083-- Deprecation in 1.2.3 1084CREATE OR REPLACE FUNCTION MultiPolyFromWKB(bytea, int) 1085 RETURNS geometry 1086 AS ' 1087 SELECT CASE WHEN geometrytype(GeomFromWKB($1, $2)) = ''MULTIPOLYGON'' 1088 THEN GeomFromWKB($1, $2) 1089 ELSE NULL END 1090 ' 1091 LANGUAGE 'sql' IMMUTABLE STRICT; 1092 1093-- Deprecation in 1.2.3 1094CREATE OR REPLACE FUNCTION MultiPolyFromWKB(bytea) 1095 RETURNS geometry 1096 AS ' 1097 SELECT CASE WHEN geometrytype(GeomFromWKB($1)) = ''MULTIPOLYGON'' 1098 THEN GeomFromWKB($1) 1099 ELSE NULL END 1100 ' 1101 LANGUAGE 'sql' IMMUTABLE STRICT; 1102 1103-- Deprecation in 1.2.3 1104CREATE OR REPLACE FUNCTION InteriorRingN(geometry,integer) 1105 RETURNS geometry 1106 AS 'MODULE_PATHNAME','LWGEOM_interiorringn_polygon' 1107 LANGUAGE 'c' IMMUTABLE STRICT; 1108 1109-- Deprecation in 1.2.3 1110CREATE OR REPLACE FUNCTION intersection(geometry,geometry) 1111 RETURNS geometry 1112 AS 'MODULE_PATHNAME','intersection' 1113 LANGUAGE 'c' IMMUTABLE STRICT; 1114 1115 -- Deprecation in 1.2.3 1116CREATE OR REPLACE FUNCTION IsClosed(geometry) 1117 RETURNS boolean 1118 AS 'MODULE_PATHNAME', 'LWGEOM_isclosed' 1119 LANGUAGE 'c' IMMUTABLE STRICT; 1120 1121-- Deprecation in 1.2.3 1122CREATE OR REPLACE FUNCTION IsEmpty(geometry) 1123 RETURNS boolean 1124 AS 'MODULE_PATHNAME', 'LWGEOM_isempty' 1125 LANGUAGE 'c' IMMUTABLE STRICT; 1126 1127-- Deprecation in 1.2.3 1128CREATE OR REPLACE FUNCTION IsValid(geometry) 1129 RETURNS boolean 1130 AS 'MODULE_PATHNAME', 'isvalid' 1131 LANGUAGE 'c' IMMUTABLE STRICT 1132 COST 100; 1133-- this is a fake (for back-compatibility) 1134-- uses 3d if 3d is available, 2d otherwise 1135-- Deprecation in 1.2.3 1136CREATE OR REPLACE FUNCTION length3d(geometry) 1137 RETURNS FLOAT8 1138 AS 'MODULE_PATHNAME', 'LWGEOM_length_linestring' 1139 LANGUAGE 'c' IMMUTABLE STRICT; 1140 1141-- Deprecation in 1.2.3 1142CREATE OR REPLACE FUNCTION length2d(geometry) 1143 RETURNS FLOAT8 1144 AS 'MODULE_PATHNAME', 'LWGEOM_length2d_linestring' 1145 LANGUAGE 'c' IMMUTABLE STRICT; 1146 1147CREATE OR REPLACE FUNCTION length(geometry) 1148 RETURNS FLOAT8 1149 AS 'MODULE_PATHNAME', 'LWGEOM_length_linestring' 1150 LANGUAGE 'c' IMMUTABLE STRICT; 1151 1152-- Deprecation in 1.2.3 1153CREATE OR REPLACE FUNCTION line_interpolate_point(geometry, float8) 1154 RETURNS geometry 1155 AS 'MODULE_PATHNAME', 'LWGEOM_line_interpolate_point' 1156 LANGUAGE 'c' IMMUTABLE STRICT; 1157 1158-- Deprecation in 1.2.3 1159CREATE OR REPLACE FUNCTION line_locate_point(geometry, geometry) 1160 RETURNS float8 1161 AS 'MODULE_PATHNAME', 'LWGEOM_line_locate_point' 1162 LANGUAGE 'c' IMMUTABLE STRICT; 1163 1164-- Deprecation in 1.2.3 1165CREATE OR REPLACE FUNCTION line_substring(geometry, float8, float8) 1166 RETURNS geometry 1167 AS 'MODULE_PATHNAME', 'LWGEOM_line_substring' 1168 LANGUAGE 'c' IMMUTABLE STRICT; 1169 1170-- Deprecation in 1.2.3 1171CREATE OR REPLACE FUNCTION LineFromText(text) 1172 RETURNS geometry 1173 AS ' 1174 SELECT CASE WHEN geometrytype(GeomFromText($1)) = ''LINESTRING'' 1175 THEN GeomFromText($1) 1176 ELSE NULL END 1177 ' 1178 LANGUAGE 'sql' IMMUTABLE STRICT; 1179 1180-- Deprecation in 1.2.3 1181CREATE OR REPLACE FUNCTION LineFromText(text, int4) 1182 RETURNS geometry 1183 AS ' 1184 SELECT CASE WHEN geometrytype(GeomFromText($1, $2)) = ''LINESTRING'' 1185 THEN GeomFromText($1,$2) 1186 ELSE NULL END 1187 ' 1188 LANGUAGE 'sql' IMMUTABLE STRICT; 1189 1190-- Deprecation in 1.2.3 1191CREATE OR REPLACE FUNCTION LineFromMultiPoint(geometry) 1192 RETURNS geometry 1193 AS 'MODULE_PATHNAME', 'LWGEOM_line_from_mpoint' 1194 LANGUAGE 'c' IMMUTABLE STRICT; 1195 1196-- Deprecation in 1.2.3 1197CREATE OR REPLACE FUNCTION LineFromWKB(bytea, int) 1198 RETURNS geometry 1199 AS ' 1200 SELECT CASE WHEN geometrytype(GeomFromWKB($1, $2)) = ''LINESTRING'' 1201 THEN GeomFromWKB($1, $2) 1202 ELSE NULL END 1203 ' 1204 LANGUAGE 'sql' IMMUTABLE STRICT; 1205 1206-- Deprecation in 1.2.3 1207CREATE OR REPLACE FUNCTION LineFromWKB(bytea) 1208 RETURNS geometry 1209 AS ' 1210 SELECT CASE WHEN geometrytype(GeomFromWKB($1)) = ''LINESTRING'' 1211 THEN GeomFromWKB($1) 1212 ELSE NULL END 1213 ' 1214 LANGUAGE 'sql' IMMUTABLE STRICT; 1215 1216-- Deprecation in 1.2.3 1217CREATE OR REPLACE FUNCTION LineStringFromText(text) 1218 RETURNS geometry 1219 AS 'SELECT LineFromText($1)' 1220 LANGUAGE 'sql' IMMUTABLE STRICT; 1221 1222-- Deprecation in 1.2.3 1223CREATE OR REPLACE FUNCTION LineStringFromText(text, int4) 1224 RETURNS geometry 1225 AS 'SELECT LineFromText($1, $2)' 1226 LANGUAGE 'sql' IMMUTABLE STRICT; 1227 1228-- Deprecation in 1.2.3 1229CREATE OR REPLACE FUNCTION LinestringFromWKB(bytea, int) 1230 RETURNS geometry 1231 AS ' 1232 SELECT CASE WHEN geometrytype(GeomFromWKB($1, $2)) = ''LINESTRING'' 1233 THEN GeomFromWKB($1, $2) 1234 ELSE NULL END 1235 ' 1236 LANGUAGE 'sql' IMMUTABLE STRICT; 1237 1238-- Deprecation in 1.2.3 1239CREATE OR REPLACE FUNCTION LinestringFromWKB(bytea) 1240 RETURNS geometry 1241 AS ' 1242 SELECT CASE WHEN geometrytype(GeomFromWKB($1)) = ''LINESTRING'' 1243 THEN GeomFromWKB($1) 1244 ELSE NULL END 1245 ' 1246 LANGUAGE 'sql' IMMUTABLE STRICT; 1247 1248-- Deprecation in 1.2.3 1249CREATE OR REPLACE FUNCTION locate_between_measures(geometry, float8, float8) 1250 RETURNS geometry 1251 AS 'MODULE_PATHNAME', 'LWGEOM_locate_between_m' 1252 LANGUAGE 'c' IMMUTABLE STRICT; 1253 1254-- Deprecation in 1.2.3 1255CREATE OR REPLACE FUNCTION M(geometry) 1256 RETURNS float8 1257 AS 'MODULE_PATHNAME','LWGEOM_m_point' 1258 LANGUAGE 'c' IMMUTABLE STRICT; 1259 1260-- Deprecation in 1.2.3 1261CREATE OR REPLACE FUNCTION MakeBox3d(geometry, geometry) 1262 RETURNS box3d 1263 AS 'MODULE_PATHNAME', 'BOX3D_construct' 1264 LANGUAGE 'c' IMMUTABLE STRICT; 1265 1266-- Deprecation in 1.2.3 1267CREATE OR REPLACE FUNCTION makeline_garray (geometry[]) 1268 RETURNS geometry 1269 AS 'MODULE_PATHNAME', 'LWGEOM_makeline_garray' 1270 LANGUAGE 'c' IMMUTABLE STRICT; 1271 1272-- Deprecation in 1.2.3 1273-- Changed: 2.5.0 use 'internal' stype 1274CREATE AGGREGATE makeline ( 1275 BASETYPE = geometry, 1276 SFUNC = pgis_geometry_accum_transfn, 1277 STYPE = internal, 1278 FINALFUNC = pgis_geometry_makeline_finalfn 1279 ); 1280 1281-- Deprecation in 1.2.3 1282CREATE OR REPLACE FUNCTION MakeLine(geometry, geometry) 1283 RETURNS geometry 1284 AS 'MODULE_PATHNAME', 'LWGEOM_makeline' 1285 LANGUAGE 'c' IMMUTABLE STRICT; 1286 1287-- Deprecation in 1.2.3 1288CREATE OR REPLACE FUNCTION MakePoint(float8, float8) 1289 RETURNS geometry 1290 AS 'MODULE_PATHNAME', 'LWGEOM_makepoint' 1291 LANGUAGE 'c' IMMUTABLE STRICT; 1292 1293-- Deprecation in 1.2.3 1294CREATE OR REPLACE FUNCTION MakePoint(float8, float8, float8) 1295 RETURNS geometry 1296 AS 'MODULE_PATHNAME', 'LWGEOM_makepoint' 1297 LANGUAGE 'c' IMMUTABLE STRICT; 1298 1299 -- Deprecation in 1.2.3 1300CREATE OR REPLACE FUNCTION MakePoint(float8, float8, float8, float8) 1301 RETURNS geometry 1302 AS 'MODULE_PATHNAME', 'LWGEOM_makepoint' 1303 LANGUAGE 'c' IMMUTABLE STRICT; 1304 1305-- Deprecation in 1.2.3 1306CREATE OR REPLACE FUNCTION MakePointM(float8, float8, float8) 1307 RETURNS geometry 1308 AS 'MODULE_PATHNAME', 'LWGEOM_makepoint3dm' 1309 LANGUAGE 'c' IMMUTABLE STRICT; 1310 1311-- This should really be deprecated -- 2011-01-04 robe 1312CREATE OR REPLACE FUNCTION max_distance(geometry,geometry) 1313 RETURNS float8 1314 AS 'MODULE_PATHNAME', 'LWGEOM_maxdistance2d_linestring' 1315 LANGUAGE 'c' IMMUTABLE STRICT; 1316 1317-- Deprecation in 1.2.3 1318CREATE OR REPLACE FUNCTION mem_size(geometry) 1319 RETURNS int4 1320 AS 'MODULE_PATHNAME', 'LWGEOM_mem_size' 1321 LANGUAGE 'c' IMMUTABLE STRICT; 1322 1323-- Deprecation in 1.2.3 1324CREATE OR REPLACE FUNCTION MLineFromText(text, int4) 1325 RETURNS geometry 1326 AS ' 1327 SELECT CASE 1328 WHEN geometrytype(GeomFromText($1, $2)) = ''MULTILINESTRING'' 1329 THEN GeomFromText($1,$2) 1330 ELSE NULL END 1331 ' 1332 LANGUAGE 'sql' IMMUTABLE STRICT; 1333 1334-- Deprecation in 1.2.3 1335CREATE OR REPLACE FUNCTION MLineFromText(text) 1336 RETURNS geometry 1337 AS ' 1338 SELECT CASE WHEN geometrytype(GeomFromText($1)) = ''MULTILINESTRING'' 1339 THEN GeomFromText($1) 1340 ELSE NULL END 1341 ' 1342 LANGUAGE 'sql' IMMUTABLE STRICT; 1343 1344-- Deprecation in 1.2.3 1345CREATE OR REPLACE FUNCTION MLineFromWKB(bytea, int) 1346 RETURNS geometry 1347 AS ' 1348 SELECT CASE WHEN geometrytype(GeomFromWKB($1, $2)) = ''MULTILINESTRING'' 1349 THEN GeomFromWKB($1, $2) 1350 ELSE NULL END 1351 ' 1352 LANGUAGE 'sql' IMMUTABLE STRICT; 1353 1354-- Deprecation in 1.2.3 1355CREATE OR REPLACE FUNCTION MLineFromWKB(bytea) 1356 RETURNS geometry 1357 AS ' 1358 SELECT CASE WHEN geometrytype(GeomFromWKB($1)) = ''MULTILINESTRING'' 1359 THEN GeomFromWKB($1) 1360 ELSE NULL END 1361 ' 1362 LANGUAGE 'sql' IMMUTABLE STRICT; 1363 1364-- Deprecation in 1.2.3 1365CREATE OR REPLACE FUNCTION MPointFromText(text, int4) 1366 RETURNS geometry 1367 AS ' 1368 SELECT CASE WHEN geometrytype(GeomFromText($1,$2)) = ''MULTIPOINT'' 1369 THEN GeomFromText($1,$2) 1370 ELSE NULL END 1371 ' 1372 LANGUAGE 'sql' IMMUTABLE STRICT; 1373 1374-- Deprecation in 1.2.3 1375CREATE OR REPLACE FUNCTION MPointFromText(text) 1376 RETURNS geometry 1377 AS ' 1378 SELECT CASE WHEN geometrytype(GeomFromText($1)) = ''MULTIPOINT'' 1379 THEN GeomFromText($1) 1380 ELSE NULL END 1381 ' 1382 LANGUAGE 'sql' IMMUTABLE STRICT; 1383 1384-- Deprecation in 1.2.3 1385CREATE OR REPLACE FUNCTION MPointFromWKB(bytea, int) 1386 RETURNS geometry 1387 AS ' 1388 SELECT CASE WHEN geometrytype(GeomFromWKB($1,$2)) = ''MULTIPOINT'' 1389 THEN GeomFromWKB($1, $2) 1390 ELSE NULL END 1391 ' 1392 LANGUAGE 'sql' IMMUTABLE STRICT; 1393 1394-- Deprecation in 1.2.3 1395CREATE OR REPLACE FUNCTION MPointFromWKB(bytea) 1396 RETURNS geometry 1397 AS ' 1398 SELECT CASE WHEN geometrytype(GeomFromWKB($1)) = ''MULTIPOINT'' 1399 THEN GeomFromWKB($1) 1400 ELSE NULL END 1401 ' 1402 LANGUAGE 'sql' IMMUTABLE STRICT; 1403 1404-- Deprecation in 1.2.3 1405CREATE OR REPLACE FUNCTION MPolyFromText(text, int4) 1406 RETURNS geometry 1407 AS ' 1408 SELECT CASE WHEN geometrytype(GeomFromText($1, $2)) = ''MULTIPOLYGON'' 1409 THEN GeomFromText($1,$2) 1410 ELSE NULL END 1411 ' 1412 LANGUAGE 'sql' IMMUTABLE STRICT; 1413 1414-- Deprecation in 1.2.3 1415CREATE OR REPLACE FUNCTION MPolyFromText(text) 1416 RETURNS geometry 1417 AS ' 1418 SELECT CASE WHEN geometrytype(GeomFromText($1)) = ''MULTIPOLYGON'' 1419 THEN GeomFromText($1) 1420 ELSE NULL END 1421 ' 1422 LANGUAGE 'sql' IMMUTABLE STRICT; 1423 1424-- Deprecation in 1.2.3 1425CREATE OR REPLACE FUNCTION MPolyFromWKB(bytea, int) 1426 RETURNS geometry 1427 AS ' 1428 SELECT CASE WHEN geometrytype(GeomFromWKB($1, $2)) = ''MULTIPOLYGON'' 1429 THEN GeomFromWKB($1, $2) 1430 ELSE NULL END 1431 ' 1432 LANGUAGE 'sql' IMMUTABLE STRICT; 1433 1434-- Deprecation in 1.2.3 1435CREATE OR REPLACE FUNCTION MultiLineFromWKB(bytea, int) 1436 RETURNS geometry 1437 AS ' 1438 SELECT CASE WHEN geometrytype(GeomFromWKB($1, $2)) = ''MULTILINESTRING'' 1439 THEN GeomFromWKB($1, $2) 1440 ELSE NULL END 1441 ' 1442 LANGUAGE 'sql' IMMUTABLE STRICT; 1443 1444-- Availability: 1.2.2 1445CREATE OR REPLACE FUNCTION MultiLineFromWKB(bytea, int) 1446 RETURNS geometry 1447 AS ' 1448 SELECT CASE WHEN geometrytype(GeomFromWKB($1, $2)) = ''MULTILINESTRING'' 1449 THEN GeomFromWKB($1, $2) 1450 ELSE NULL END 1451 ' 1452 LANGUAGE 'sql' IMMUTABLE STRICT; 1453 1454-- Deprecation in 1.2.3 1455CREATE OR REPLACE FUNCTION MultiLineFromWKB(bytea) 1456 RETURNS geometry 1457 AS ' 1458 SELECT CASE WHEN geometrytype(GeomFromWKB($1)) = ''MULTILINESTRING'' 1459 THEN GeomFromWKB($1) 1460 ELSE NULL END 1461 ' 1462 LANGUAGE 'sql' IMMUTABLE STRICT; 1463 1464-- Deprecation in 1.2.3 1465CREATE OR REPLACE FUNCTION MultiLineStringFromText(text) 1466 RETURNS geometry 1467 AS 'SELECT ST_MLineFromText($1)' 1468 LANGUAGE 'sql' IMMUTABLE STRICT; 1469 1470-- Deprecation in 1.2.3 1471CREATE OR REPLACE FUNCTION MultiLineStringFromText(text, int4) 1472 RETURNS geometry 1473 AS 'SELECT MLineFromText($1, $2)' 1474 LANGUAGE 'sql' IMMUTABLE STRICT; 1475 1476-- Deprecation in 1.2.3 1477CREATE OR REPLACE FUNCTION MultiPointFromText(text) 1478 RETURNS geometry 1479 AS 'SELECT MPointFromText($1)' 1480 LANGUAGE 'sql' IMMUTABLE STRICT; 1481 1482-- Deprecation in 1.2.3 1483CREATE OR REPLACE FUNCTION MultiPointFromText(text) 1484 RETURNS geometry 1485 AS 'SELECT MPointFromText($1)' 1486 LANGUAGE 'sql' IMMUTABLE STRICT; 1487 1488-- Deprecation in 1.2.3 1489CREATE OR REPLACE FUNCTION MultiPointFromText(text, int4) 1490 RETURNS geometry 1491 AS 'SELECT MPointFromText($1, $2)' 1492 LANGUAGE 'sql' IMMUTABLE STRICT; 1493 1494-- Deprecation in 1.2.3 1495CREATE OR REPLACE FUNCTION MultiPointFromWKB(bytea, int) 1496 RETURNS geometry 1497 AS ' 1498 SELECT CASE WHEN geometrytype(GeomFromWKB($1,$2)) = ''MULTIPOINT'' 1499 THEN GeomFromWKB($1, $2) 1500 ELSE NULL END 1501 ' 1502 LANGUAGE 'sql' IMMUTABLE STRICT; 1503 1504-- Deprecation in 1.2.3 1505CREATE OR REPLACE FUNCTION MultiPointFromWKB(bytea) 1506 RETURNS geometry 1507 AS ' 1508 SELECT CASE WHEN geometrytype(GeomFromWKB($1)) = ''MULTIPOINT'' 1509 THEN GeomFromWKB($1) 1510 ELSE NULL END 1511 ' 1512 LANGUAGE 'sql' IMMUTABLE STRICT; 1513 1514-- Deprecation in 1.2.3 1515CREATE OR REPLACE FUNCTION MultiPolygonFromText(text, int4) 1516 RETURNS geometry 1517 AS 'SELECT MPolyFromText($1, $2)' 1518 LANGUAGE 'sql' IMMUTABLE STRICT; 1519 1520-- Deprecation in 1.2.3 1521CREATE OR REPLACE FUNCTION MultiPolygonFromText(text) 1522 RETURNS geometry 1523 AS 'SELECT MPolyFromText($1)' 1524 LANGUAGE 'sql' IMMUTABLE STRICT; 1525 1526-- Deprecation in 1.2.3 1527CREATE OR REPLACE FUNCTION NumInteriorRing(geometry) 1528 RETURNS integer 1529 AS 'MODULE_PATHNAME','LWGEOM_numinteriorrings_polygon' 1530 LANGUAGE 'c' IMMUTABLE STRICT; 1531 1532-- Deprecation in 1.2.3 1533CREATE OR REPLACE FUNCTION NumInteriorRings(geometry) 1534 RETURNS integer 1535 AS 'MODULE_PATHNAME','LWGEOM_numinteriorrings_polygon' 1536 LANGUAGE 'c' IMMUTABLE STRICT; 1537 1538-- Deprecation in 1.2.3 1539CREATE OR REPLACE FUNCTION npoints(geometry) 1540 RETURNS int4 1541 AS 'MODULE_PATHNAME', 'LWGEOM_npoints' 1542 LANGUAGE 'c' IMMUTABLE STRICT; 1543 1544-- Deprecation in 1.2.3 1545CREATE OR REPLACE FUNCTION nrings(geometry) 1546 RETURNS int4 1547 AS 'MODULE_PATHNAME', 'LWGEOM_nrings' 1548 LANGUAGE 'c' IMMUTABLE STRICT; 1549 1550-- Deprecation in 1.2.3 1551CREATE OR REPLACE FUNCTION NumGeometries(geometry) 1552 RETURNS int4 1553 AS 'MODULE_PATHNAME', 'LWGEOM_numgeometries_collection' 1554 LANGUAGE 'c' IMMUTABLE STRICT; 1555 1556-- Deprecation in 1.2.3 1557CREATE OR REPLACE FUNCTION NumPoints(geometry) 1558 RETURNS int4 1559 AS 'MODULE_PATHNAME', 'LWGEOM_numpoints_linestring' 1560 LANGUAGE 'c' IMMUTABLE STRICT; 1561 1562-- Deprecation in 1.2.3 1563CREATE OR REPLACE FUNCTION overlaps(geometry,geometry) 1564 RETURNS boolean 1565 AS 'MODULE_PATHNAME' 1566 LANGUAGE 'c' IMMUTABLE STRICT; 1567 1568-- this is a fake (for back-compatibility) 1569-- uses 3d if 3d is available, 2d otherwise 1570-- Deprecation in 1.2.3 1571CREATE OR REPLACE FUNCTION perimeter3d(geometry) 1572 RETURNS FLOAT8 1573 AS 'MODULE_PATHNAME', 'LWGEOM_perimeter_poly' 1574 LANGUAGE 'c' IMMUTABLE STRICT; 1575 1576-- Deprecation in 1.2.3 1577CREATE OR REPLACE FUNCTION perimeter2d(geometry) 1578 RETURNS FLOAT8 1579 AS 'MODULE_PATHNAME', 'LWGEOM_perimeter2d_poly' 1580 LANGUAGE 'c' IMMUTABLE STRICT; 1581 1582-- Deprecation in 1.2.3 1583CREATE OR REPLACE FUNCTION point_inside_circle(geometry,float8,float8,float8) 1584 RETURNS bool 1585 AS 'MODULE_PATHNAME', 'LWGEOM_inside_circle_point' 1586 LANGUAGE 'c' IMMUTABLE STRICT; 1587 1588-- Deprecation in 1.2.3 1589CREATE OR REPLACE FUNCTION PointFromText(text) 1590 RETURNS geometry 1591 AS ' 1592 SELECT CASE WHEN geometrytype(GeomFromText($1)) = ''POINT'' 1593 THEN GeomFromText($1) 1594 ELSE NULL END 1595 ' 1596 LANGUAGE 'sql' IMMUTABLE STRICT; 1597 1598-- Deprecation in 1.2.3 1599CREATE OR REPLACE FUNCTION PointFromText(text, int4) 1600 RETURNS geometry 1601 AS ' 1602 SELECT CASE WHEN geometrytype(GeomFromText($1, $2)) = ''POINT'' 1603 THEN GeomFromText($1,$2) 1604 ELSE NULL END 1605 ' 1606 LANGUAGE 'sql' IMMUTABLE STRICT; 1607 1608-- Deprecation in 1.2.3 1609CREATE OR REPLACE FUNCTION PointFromWKB(bytea) 1610 RETURNS geometry 1611 AS ' 1612 SELECT CASE WHEN geometrytype(GeomFromWKB($1)) = ''POINT'' 1613 THEN GeomFromWKB($1) 1614 ELSE NULL END 1615 ' 1616 LANGUAGE 'sql' IMMUTABLE STRICT; 1617 1618-- Deprecation in 1.2.3 1619CREATE OR REPLACE FUNCTION PointFromWKB(bytea, int) 1620 RETURNS geometry 1621 AS ' 1622 SELECT CASE WHEN geometrytype(ST_GeomFromWKB($1, $2)) = ''POINT'' 1623 THEN GeomFromWKB($1, $2) 1624 ELSE NULL END 1625 ' 1626 LANGUAGE 'sql' IMMUTABLE STRICT; 1627 1628-- Deprecation in 1.2.3 1629CREATE OR REPLACE FUNCTION PointN(geometry,integer) 1630 RETURNS geometry 1631 AS 'MODULE_PATHNAME','LWGEOM_pointn_linestring' 1632 LANGUAGE 'c' IMMUTABLE STRICT; 1633 1634-- Deprecation in 1.2.3 1635CREATE OR REPLACE FUNCTION PointOnSurface(geometry) 1636 RETURNS geometry 1637 AS 'MODULE_PATHNAME' 1638 LANGUAGE 'c' IMMUTABLE STRICT; 1639 1640-- Deprecation in 1.2.3 1641CREATE OR REPLACE FUNCTION PolyFromText(text) 1642 RETURNS geometry 1643 AS ' 1644 SELECT CASE WHEN geometrytype(GeomFromText($1)) = ''POLYGON'' 1645 THEN GeomFromText($1) 1646 ELSE NULL END 1647 ' 1648 LANGUAGE 'sql' IMMUTABLE STRICT; 1649-- Deprecation in 1.2.3 1650CREATE OR REPLACE FUNCTION PolyFromText(text, int4) 1651 RETURNS geometry 1652 AS ' 1653 SELECT CASE WHEN geometrytype(GeomFromText($1, $2)) = ''POLYGON'' 1654 THEN GeomFromText($1,$2) 1655 ELSE NULL END 1656 ' 1657 LANGUAGE 'sql' IMMUTABLE STRICT; 1658 1659-- Deprecation in 1.2.3 1660CREATE OR REPLACE FUNCTION PolyFromWKB(bytea, int) 1661 RETURNS geometry 1662 AS ' 1663 SELECT CASE WHEN geometrytype(GeomFromWKB($1, $2)) = ''POLYGON'' 1664 THEN GeomFromWKB($1, $2) 1665 ELSE NULL END 1666 ' 1667 LANGUAGE 'sql' IMMUTABLE STRICT; 1668 1669-- Deprecation in 1.2.3 1670CREATE OR REPLACE FUNCTION PolyFromWKB(bytea) 1671 RETURNS geometry 1672 AS ' 1673 SELECT CASE WHEN geometrytype(GeomFromWKB($1)) = ''POLYGON'' 1674 THEN GeomFromWKB($1) 1675 ELSE NULL END 1676 ' 1677 LANGUAGE 'sql' IMMUTABLE STRICT; 1678 1679-- Deprecation in 1.2.3 1680CREATE OR REPLACE FUNCTION PolygonFromText(text, int4) 1681 RETURNS geometry 1682 AS 'SELECT PolyFromText($1, $2)' 1683 LANGUAGE 'sql' IMMUTABLE STRICT; 1684 1685-- Deprecation in 1.2.3 1686CREATE OR REPLACE FUNCTION PolygonFromText(text) 1687 RETURNS geometry 1688 AS 'SELECT PolyFromText($1)' 1689 LANGUAGE 'sql' IMMUTABLE STRICT; 1690 1691-- Deprecation in 1.2.3 1692CREATE OR REPLACE FUNCTION PolygonFromWKB(bytea, int) 1693 RETURNS geometry 1694 AS ' 1695 SELECT CASE WHEN geometrytype(GeomFromWKB($1,$2)) = ''POLYGON'' 1696 THEN GeomFromWKB($1, $2) 1697 ELSE NULL END 1698 ' 1699 LANGUAGE 'sql' IMMUTABLE STRICT; 1700 1701 -- Deprecation in 1.2.3 1702CREATE OR REPLACE FUNCTION PolygonFromWKB(bytea) 1703 RETURNS geometry 1704 AS ' 1705 SELECT CASE WHEN geometrytype(GeomFromWKB($1)) = ''POLYGON'' 1706 THEN GeomFromWKB($1) 1707 ELSE NULL END 1708 ' 1709 LANGUAGE 'sql' IMMUTABLE STRICT; 1710 1711-- Deprecation in 1.2.3 1712CREATE OR REPLACE FUNCTION Polygonize_GArray (geometry[]) 1713 RETURNS geometry 1714 AS 'MODULE_PATHNAME', 'polygonize_garray' 1715 LANGUAGE 'c' IMMUTABLE STRICT 1716 COST 100; 1717 1718-- Deprecation in 1.2.3 1719CREATE OR REPLACE FUNCTION relate(geometry,geometry) 1720 RETURNS text 1721 AS 'MODULE_PATHNAME','relate_full' 1722 LANGUAGE 'c' IMMUTABLE STRICT; 1723 1724-- Deprecation in 1.2.3 1725CREATE OR REPLACE FUNCTION relate(geometry,geometry,text) 1726 RETURNS boolean 1727 AS 'MODULE_PATHNAME','relate_pattern' 1728 LANGUAGE 'c' IMMUTABLE STRICT; 1729 1730-- Deprecation in 1.2.3 1731CREATE OR REPLACE FUNCTION RemovePoint(geometry, integer) 1732 RETURNS geometry 1733 AS 'MODULE_PATHNAME', 'LWGEOM_removepoint' 1734 LANGUAGE 'c' IMMUTABLE STRICT; 1735 1736-- Deprecation in 1.2.3 1737CREATE OR REPLACE FUNCTION reverse(geometry) 1738 RETURNS geometry 1739 AS 'MODULE_PATHNAME', 'LWGEOM_reverse' 1740 LANGUAGE 'c' IMMUTABLE STRICT; 1741 1742-- Deprecation in 1.2.3 1743CREATE OR REPLACE FUNCTION Segmentize(geometry, float8) 1744 RETURNS geometry 1745 AS 'MODULE_PATHNAME', 'LWGEOM_segmentize2d' 1746 LANGUAGE 'c' IMMUTABLE STRICT; 1747 1748-- Deprecation in 1.2.3 1749CREATE OR REPLACE FUNCTION SetPoint(geometry, integer, geometry) 1750 RETURNS geometry 1751 AS 'MODULE_PATHNAME', 'LWGEOM_setpoint_linestring' 1752 LANGUAGE 'c' IMMUTABLE STRICT; 1753 1754-- Availability: 1.1.0 1755-- Deprecation in 1.2.3 1756CREATE OR REPLACE FUNCTION shift_longitude(geometry) 1757 RETURNS geometry 1758 AS 'MODULE_PATHNAME', 'LWGEOM_longitude_shift' 1759 LANGUAGE 'c' IMMUTABLE STRICT; 1760 1761-- Deprecation in 1.2.3 1762CREATE OR REPLACE FUNCTION Simplify(geometry, float8) 1763 RETURNS geometry 1764 AS 'MODULE_PATHNAME', 'LWGEOM_simplify2d' 1765 LANGUAGE 'c' IMMUTABLE STRICT; 1766 1767-- SnapToGrid(input, size) # xsize=ysize=size, offsets=0 1768-- Deprecation in 1.2.3 1769CREATE OR REPLACE FUNCTION SnapToGrid(geometry, float8, float8, float8, float8) 1770 RETURNS geometry 1771 AS 'MODULE_PATHNAME', 'LWGEOM_snaptogrid' 1772 LANGUAGE 'c' IMMUTABLE STRICT; 1773 1774-- Deprecation in 1.2.3 1775CREATE OR REPLACE FUNCTION SnapToGrid(geometry, float8) 1776 RETURNS geometry 1777 AS 'SELECT ST_SnapToGrid($1, 0, 0, $2, $2)' 1778 LANGUAGE 'sql' IMMUTABLE STRICT; 1779 1780-- SnapToGrid(input, point_offsets, xsize, ysize, zsize, msize) 1781-- Deprecation in 1.2.3 1782CREATE OR REPLACE FUNCTION SnapToGrid(geometry, geometry, float8, float8, float8, float8) 1783 RETURNS geometry 1784 AS 'MODULE_PATHNAME', 'LWGEOM_snaptogrid_pointoff' 1785 LANGUAGE 'c' IMMUTABLE STRICT; 1786 1787-- SnapToGrid(input, xsize, ysize) # offsets=0 1788-- Deprecation in 1.2.3 1789CREATE OR REPLACE FUNCTION SnapToGrid(geometry, float8, float8) 1790 RETURNS geometry 1791 AS 'SELECT ST_SnapToGrid($1, 0, 0, $2, $3)' 1792 LANGUAGE 'sql' IMMUTABLE STRICT; 1793 1794-- Availability: 1.2.2 -- this should be deprecated (do not think anyone has ever used it) 1795CREATE OR REPLACE FUNCTION ST_MakeLine_GArray (geometry[]) 1796 RETURNS geometry 1797 AS 'MODULE_PATHNAME', 'LWGEOM_makeline_garray' 1798 LANGUAGE 'c' IMMUTABLE STRICT; 1799 1800-- Deprecation in 1.2.3 1801CREATE OR REPLACE FUNCTION StartPoint(geometry) 1802 RETURNS geometry 1803 AS 'MODULE_PATHNAME', 'LWGEOM_startpoint_linestring' 1804 LANGUAGE 'c' IMMUTABLE STRICT; 1805 1806-- Deprecation in 1.2.3 1807CREATE OR REPLACE FUNCTION symdifference(geometry,geometry) 1808 RETURNS geometry 1809 AS 'MODULE_PATHNAME','symdifference' 1810 LANGUAGE 'c' IMMUTABLE STRICT; 1811 1812-- Deprecation in 1.2.3 1813CREATE OR REPLACE FUNCTION symmetricdifference(geometry,geometry) 1814 RETURNS geometry 1815 AS 'MODULE_PATHNAME','symdifference' 1816 LANGUAGE 'c' IMMUTABLE STRICT; 1817 1818-- Deprecation in 1.2.3 1819CREATE OR REPLACE FUNCTION summary(geometry) 1820 RETURNS text 1821 AS 'MODULE_PATHNAME', 'LWGEOM_summary' 1822 LANGUAGE 'c' IMMUTABLE STRICT; 1823 1824CREATE OR REPLACE FUNCTION transform(geometry,integer) 1825 RETURNS geometry 1826 AS 'MODULE_PATHNAME','transform' 1827 LANGUAGE 'c' IMMUTABLE STRICT; 1828 1829-- Deprecation in 1.2.3 1830CREATE OR REPLACE FUNCTION touches(geometry,geometry) 1831 RETURNS boolean 1832 AS 'MODULE_PATHNAME' 1833 LANGUAGE 'c' IMMUTABLE STRICT; 1834 1835-- Deprecation in 1.2.3 1836CREATE OR REPLACE FUNCTION within(geometry,geometry) 1837 RETURNS boolean 1838 AS 'SELECT ST_Within($1, $2)' 1839 LANGUAGE 'sql' IMMUTABLE STRICT; 1840 1841-- Deprecation in 1.2.3 1842CREATE OR REPLACE FUNCTION X(geometry) 1843 RETURNS float8 1844 AS 'MODULE_PATHNAME','LWGEOM_x_point' 1845 LANGUAGE 'c' IMMUTABLE STRICT; 1846 1847-- Deprecation in 1.2.3 1848CREATE OR REPLACE FUNCTION xmax(box3d) 1849 RETURNS FLOAT8 1850 AS 'MODULE_PATHNAME','BOX3D_xmax' 1851 LANGUAGE 'c' IMMUTABLE STRICT; 1852 1853-- Deprecation in 1.2.3 1854CREATE OR REPLACE FUNCTION xmin(box3d) 1855 RETURNS FLOAT8 1856 AS 'MODULE_PATHNAME','BOX3D_xmin' 1857 LANGUAGE 'c' IMMUTABLE STRICT; 1858 1859-- Deprecation in 1.2.3 1860CREATE OR REPLACE FUNCTION Y(geometry) 1861 RETURNS float8 1862 AS 'MODULE_PATHNAME','LWGEOM_y_point' 1863 LANGUAGE 'c' IMMUTABLE STRICT; 1864 1865-- Deprecation in 1.2.3 1866CREATE OR REPLACE FUNCTION ymax(box3d) 1867 RETURNS FLOAT8 1868 AS 'MODULE_PATHNAME','BOX3D_ymax' 1869 LANGUAGE 'c' IMMUTABLE STRICT; 1870 1871-- Deprecation in 1.2.3 1872CREATE OR REPLACE FUNCTION ymin(box3d) 1873 RETURNS FLOAT8 1874 AS 'MODULE_PATHNAME','BOX3D_ymin' 1875 LANGUAGE 'c' IMMUTABLE STRICT; 1876 1877-- Deprecation in 1.2.3 1878CREATE OR REPLACE FUNCTION Z(geometry) 1879 RETURNS float8 1880 AS 'MODULE_PATHNAME','LWGEOM_z_point' 1881 LANGUAGE 'c' IMMUTABLE STRICT; 1882 1883-- Deprecation in 1.2.3 1884CREATE OR REPLACE FUNCTION zmax(box3d) 1885 RETURNS FLOAT8 1886 AS 'MODULE_PATHNAME','BOX3D_zmax' 1887 LANGUAGE 'c' IMMUTABLE STRICT; 1888 1889-- Deprecation in 1.2.3 1890CREATE OR REPLACE FUNCTION zmin(box3d) 1891 RETURNS FLOAT8 1892 AS 'MODULE_PATHNAME','BOX3D_zmin' 1893 LANGUAGE 'c' IMMUTABLE STRICT; 1894 1895-- Deprecation in 1.2.3 1896CREATE OR REPLACE FUNCTION zmflag(geometry) 1897 RETURNS smallint 1898 AS 'MODULE_PATHNAME', 'LWGEOM_zmflag' 1899 LANGUAGE 'c' IMMUTABLE STRICT; 1900 1901-- end old ogc names that have been replaced with new SQL-MM names -- 1902 1903--- Start Aggregates and supporting functions -- 1904-- Deprecation in: 1.2.3 1905-- Changed: 2.5.0 use 'internal' stype 1906CREATE AGGREGATE accum ( 1907 sfunc = pgis_geometry_accum_transfn, 1908 basetype = geometry, 1909 stype = internal, 1910 finalfunc = pgis_geometry_accum_finalfn 1911 ); 1912-- Deprecation in 1.2.3 1913CREATE OR REPLACE FUNCTION collect(geometry, geometry) 1914 RETURNS geometry 1915 AS 'MODULE_PATHNAME', 'LWGEOM_collect' 1916 LANGUAGE 'c' IMMUTABLE; 1917 1918-- Deprecation in 1.2.3 1919CREATE OR REPLACE FUNCTION combine_bbox(box2d,geometry) 1920 RETURNS box2d 1921 AS 'MODULE_PATHNAME', 'BOX2D_combine' 1922 LANGUAGE 'c' IMMUTABLE; 1923 1924-- Deprecation in 1.2.3 1925CREATE OR REPLACE FUNCTION combine_bbox(box3d,geometry) 1926 RETURNS box3d 1927 AS 'MODULE_PATHNAME', 'BOX3D_combine' 1928 LANGUAGE 'c' IMMUTABLE; 1929 1930 -- Deprecation in 1.5.0 1931CREATE OR REPLACE FUNCTION ST_Polygonize_GArray (geometry[]) 1932 RETURNS geometry 1933 AS 'MODULE_PATHNAME', 'polygonize_garray' 1934 LANGUAGE 'c' IMMUTABLE STRICT 1935 COST 100; 1936 1937-- Deprecation in 1.4.0 1938CREATE OR REPLACE FUNCTION ST_unite_garray (geometry[]) 1939 RETURNS geometry 1940 AS 'MODULE_PATHNAME','pgis_union_geometry_array' 1941 LANGUAGE 'c' IMMUTABLE STRICT; 1942 1943-- Deprecation in 1.2.3 1944CREATE OR REPLACE FUNCTION unite_garray (geometry[]) 1945 RETURNS geometry 1946 AS 'MODULE_PATHNAME', 'pgis_union_geometry_array' 1947 LANGUAGE 'c' IMMUTABLE STRICT; 1948 1949-- Deprecation in 1.2.3 1950CREATE AGGREGATE Extent3d( 1951 sfunc = combine_bbox, 1952 basetype = geometry, 1953 stype = box3d 1954 ); 1955 1956-- Deprecation in 1.2.3 1957CREATE AGGREGATE memcollect( 1958 sfunc = ST_collect, 1959 basetype = geometry, 1960 stype = geometry 1961 ); 1962 1963-- Deprecation in 1.2.3 1964CREATE AGGREGATE MemGeomUnion ( 1965 basetype = geometry, 1966 sfunc = geomunion, 1967 stype = geometry 1968 ); 1969 1970-- End Aggregates and supporting functions -- 1971------------------------------------------------ 1972--Begin 3D functions -- 1973------------------------------------------------ 1974 1975-- Renamed in 2.0.0 to ST_3DLength 1976CREATE OR REPLACE FUNCTION ST_Length3D(geometry) 1977 RETURNS FLOAT8 1978 AS 'MODULE_PATHNAME', 'LWGEOM_length_linestring' 1979 LANGUAGE 'c' IMMUTABLE STRICT; 1980 1981-- Renamed in 2.0.0 to ST_3DLength_spheroid 1982CREATE OR REPLACE FUNCTION ST_Length_spheroid3D(geometry, spheroid) 1983 RETURNS FLOAT8 1984 AS 'MODULE_PATHNAME','LWGEOM_length_ellipsoid_linestring' 1985 LANGUAGE 'c' IMMUTABLE STRICT 1986 COST 100; 1987 1988-- Renamed in 2.0.0 to ST_3DPerimeter 1989CREATE OR REPLACE FUNCTION ST_Perimeter3D(geometry) 1990 RETURNS FLOAT8 1991 AS 'MODULE_PATHNAME', 'LWGEOM_perimeter_poly' 1992 LANGUAGE 'c' IMMUTABLE STRICT; 1993 1994-- Renamed in 2.0.0 to ST_3DMakeBox 1995CREATE OR REPLACE FUNCTION ST_MakeBox3D(geometry, geometry) 1996 RETURNS box3d 1997 AS 'MODULE_PATHNAME', 'BOX3D_construct' 1998 LANGUAGE 'c' IMMUTABLE STRICT; 1999 2000-- Renamed in 2.0.0 to ST_3DExtent 2001CREATE AGGREGATE ST_Extent3D( 2002 sfunc = ST_combine_bbox, 2003 basetype = geometry, 2004 stype = box3d 2005 ); 2006--END 3D functions-- 2007