root/trunk/postgis/geography.sql.in.c

Revision 8868, 23.0 KB (checked in by strk, 3 weeks ago)

Add ST_Summary(geography), "G" flag (#1277), document (#649)

  • Property svn:keywords set to Author Date Id Revision
Line 
1---------------------------------------------------------------------------
2-- $Id$
3--
4-- PostGIS - Spatial Types for PostgreSQL
5-- Copyright 2009 Paul Ramsey <pramsey@cleverelephant.ca>
6--
7-- This is free software; you can redistribute and/or modify it under
8-- the terms of the GNU General Public Licence. See the COPYING file.
9--
10---------------------------------------------------------------------------
11
12-----------------------------------------------------------------------------
13--  GEOGRAPHY TYPE
14-----------------------------------------------------------------------------
15
16-- Availability: 1.5.0
17CREATE OR REPLACE FUNCTION geography_typmod_in(cstring[])
18        RETURNS integer
19        AS 'MODULE_PATHNAME','geography_typmod_in'
20        LANGUAGE 'C' IMMUTABLE STRICT; 
21
22-- Availability: 1.5.0
23CREATE OR REPLACE FUNCTION geography_typmod_out(integer)
24        RETURNS cstring
25        AS 'MODULE_PATHNAME','postgis_typmod_out'
26        LANGUAGE 'C' IMMUTABLE STRICT; 
27       
28-- Availability: 1.5.0
29CREATE OR REPLACE FUNCTION geography_in(cstring, oid, integer)
30        RETURNS geography
31        AS 'MODULE_PATHNAME','geography_in'
32        LANGUAGE 'C' IMMUTABLE STRICT; 
33
34-- Availability: 1.5.0
35CREATE OR REPLACE FUNCTION geography_out(geography)
36        RETURNS cstring
37        AS 'MODULE_PATHNAME','geography_out'
38        LANGUAGE 'C' IMMUTABLE STRICT; 
39
40-- Availability: 2.0.0
41CREATE OR REPLACE FUNCTION geography_recv(internal, oid, integer)
42        RETURNS geography
43        AS 'MODULE_PATHNAME','geography_recv'
44        LANGUAGE 'C' IMMUTABLE STRICT; 
45
46-- Availability: 2.0.0
47CREATE OR REPLACE FUNCTION geography_send(geography)
48        RETURNS bytea
49        AS 'MODULE_PATHNAME','geography_send'
50        LANGUAGE 'C' IMMUTABLE STRICT; 
51
52-- Availability: 1.5.0
53CREATE OR REPLACE FUNCTION geography_analyze(internal)
54        RETURNS bool
55        AS 'MODULE_PATHNAME','geography_analyze'
56        LANGUAGE 'C' VOLATILE STRICT; 
57
58-- Availability: 1.5.0
59CREATE TYPE geography (
60        internallength = variable,
61        input = geography_in,
62        output = geography_out,
63        receive = geography_recv,
64        send = geography_send,
65        typmod_in = geography_typmod_in,
66        typmod_out = geography_typmod_out,
67        delimiter = ':',
68        analyze = geography_analyze,
69        storage = main,
70        alignment = double
71);
72
73
74
75-- Availability: 1.5.0
76CREATE OR REPLACE FUNCTION geography(geography, integer, boolean)
77        RETURNS geography
78        AS 'MODULE_PATHNAME','geography_enforce_typmod'
79        LANGUAGE 'C' IMMUTABLE STRICT; 
80
81-- Availability: 1.5.0
82CREATE CAST (geography AS geography) WITH FUNCTION geography(geography, integer, boolean) AS IMPLICIT;
83
84-- Availability: 2.0.0
85CREATE OR REPLACE FUNCTION geography(bytea)
86        RETURNS geography
87        AS 'MODULE_PATHNAME','LWGEOM_from_bytea'
88        LANGUAGE 'C' IMMUTABLE STRICT;
89
90-- Availability: 2.0.0
91CREATE OR REPLACE FUNCTION bytea(geography)
92        RETURNS bytea
93        AS 'MODULE_PATHNAME','LWGEOM_to_bytea'
94        LANGUAGE 'C' IMMUTABLE STRICT;
95
96-- Availability: 2.0.0
97CREATE CAST (bytea AS geography) WITH FUNCTION geography(bytea) AS IMPLICIT;
98-- Availability: 2.0.0
99CREATE CAST (geography AS bytea) WITH FUNCTION bytea(geography) AS IMPLICIT;
100
101-- Availability: 1.5.0
102CREATE OR REPLACE FUNCTION ST_AsText(geography)
103        RETURNS TEXT
104        AS 'MODULE_PATHNAME','LWGEOM_asText'
105        LANGUAGE 'C' IMMUTABLE STRICT;
106       
107-- Availability: 1.5.0 - this is just a hack to prevent unknown from causing ambiguous name because of geography
108CREATE OR REPLACE FUNCTION ST_AsText(text)
109        RETURNS text AS
110        $$ SELECT ST_AsText($1::geometry);  $$
111        LANGUAGE 'SQL' IMMUTABLE STRICT;
112
113-- Availability: 1.5.0
114CREATE OR REPLACE FUNCTION ST_GeographyFromText(text)
115        RETURNS geography
116        AS 'MODULE_PATHNAME','geography_from_text'
117        LANGUAGE 'C' IMMUTABLE STRICT;
118
119-- Availability: 1.5.0
120CREATE OR REPLACE FUNCTION ST_GeogFromText(text)
121        RETURNS geography
122        AS 'MODULE_PATHNAME','geography_from_text'
123        LANGUAGE 'C' IMMUTABLE STRICT;
124
125-- Availability: 1.5.0
126CREATE OR REPLACE FUNCTION ST_GeogFromWKB(bytea)
127        RETURNS geography
128        AS 'MODULE_PATHNAME','geography_from_binary'
129        LANGUAGE 'C' IMMUTABLE STRICT;
130
131-- Availability: 1.5.0
132CREATE OR REPLACE FUNCTION postgis_typmod_dims(integer)
133        RETURNS integer
134        AS 'MODULE_PATHNAME','postgis_typmod_dims'
135        LANGUAGE 'C' IMMUTABLE STRICT;
136
137-- Availability: 1.5.0
138CREATE OR REPLACE FUNCTION postgis_typmod_srid(integer)
139        RETURNS integer
140        AS 'MODULE_PATHNAME','postgis_typmod_srid'
141        LANGUAGE 'C' IMMUTABLE STRICT;
142
143-- Availability: 1.5.0
144CREATE OR REPLACE FUNCTION postgis_typmod_type(integer)
145        RETURNS text
146        AS 'MODULE_PATHNAME','postgis_typmod_type'
147        LANGUAGE 'C' IMMUTABLE STRICT;
148
149-- Availability: 1.5.0
150CREATE OR REPLACE VIEW geography_columns AS
151        SELECT
152                current_database() AS f_table_catalog, 
153                n.nspname AS f_table_schema, 
154                c.relname AS f_table_name, 
155                a.attname AS f_geography_column,
156                postgis_typmod_dims(a.atttypmod) AS coord_dimension,
157                postgis_typmod_srid(a.atttypmod) AS srid,
158                postgis_typmod_type(a.atttypmod) AS type
159        FROM
160                pg_class c, 
161                pg_attribute a, 
162                pg_type t, 
163                pg_namespace n
164        WHERE t.typname = 'geography'
165        AND a.attisdropped = false
166        AND a.atttypid = t.oid
167        AND a.attrelid = c.oid
168        AND c.relnamespace = n.oid
169        AND NOT pg_is_other_temp_schema(c.relnamespace);
170
171-- Availability: 1.5.0
172CREATE OR REPLACE FUNCTION geography(geometry)
173        RETURNS geography
174        AS 'MODULE_PATHNAME','geography_from_geometry'
175        LANGUAGE 'C' IMMUTABLE STRICT;
176
177-- Availability: 1.5.0
178CREATE CAST (geometry AS geography) WITH FUNCTION geography(geometry) AS IMPLICIT;
179
180-- Availability: 1.5.0
181CREATE OR REPLACE FUNCTION geometry(geography)
182        RETURNS geometry
183        AS 'MODULE_PATHNAME','geometry_from_geography'
184        LANGUAGE 'C' IMMUTABLE STRICT;
185
186-- Availability: 1.5.0
187CREATE CAST (geography AS geometry) WITH FUNCTION geometry(geography) ;
188
189-- ---------- ---------- ---------- ---------- ---------- ---------- ----------
190-- GiST Support Functions
191-- ---------- ---------- ---------- ---------- ---------- ---------- ----------
192
193-- Availability: 1.5.0
194CREATE OR REPLACE FUNCTION geography_gist_consistent(internal,geography,int4) 
195        RETURNS bool
196        AS 'MODULE_PATHNAME' ,'gserialized_gist_consistent'
197        LANGUAGE 'C';
198
199-- Availability: 1.5.0
200CREATE OR REPLACE FUNCTION geography_gist_compress(internal) 
201        RETURNS internal
202        AS 'MODULE_PATHNAME','gserialized_gist_compress'
203        LANGUAGE 'C';
204
205-- Availability: 1.5.0
206CREATE OR REPLACE FUNCTION geography_gist_penalty(internal,internal,internal) 
207        RETURNS internal
208        AS 'MODULE_PATHNAME' ,'gserialized_gist_penalty'
209        LANGUAGE 'C';
210
211-- Availability: 1.5.0
212CREATE OR REPLACE FUNCTION geography_gist_picksplit(internal, internal) 
213        RETURNS internal
214        AS 'MODULE_PATHNAME' ,'gserialized_gist_picksplit'
215        LANGUAGE 'C';
216
217-- Availability: 1.5.0
218CREATE OR REPLACE FUNCTION geography_gist_union(bytea, internal) 
219        RETURNS internal
220        AS 'MODULE_PATHNAME' ,'gserialized_gist_union'
221        LANGUAGE 'C';
222
223-- Availability: 1.5.0
224CREATE OR REPLACE FUNCTION geography_gist_same(box2d, box2d, internal) 
225        RETURNS internal
226        AS 'MODULE_PATHNAME' ,'gserialized_gist_same'
227        LANGUAGE 'C';
228
229-- Availability: 1.5.0
230CREATE OR REPLACE FUNCTION geography_gist_decompress(internal) 
231        RETURNS internal
232        AS 'MODULE_PATHNAME' ,'gserialized_gist_decompress'
233        LANGUAGE 'C';
234
235-- Availability: 1.5.0
236CREATE OR REPLACE FUNCTION geography_gist_selectivity (internal, oid, internal, int4)
237        RETURNS float8
238        AS 'MODULE_PATHNAME', 'geography_gist_selectivity'
239        LANGUAGE 'C';
240
241-- Availability: 1.5.0
242CREATE OR REPLACE FUNCTION geography_gist_join_selectivity(internal, oid, internal, smallint)
243        RETURNS float8
244        AS 'MODULE_PATHNAME', 'geography_gist_selectivity'
245        LANGUAGE 'C';
246
247-- Availability: 1.5.0
248CREATE OR REPLACE FUNCTION geography_overlaps(geography, geography) 
249        RETURNS boolean
250        AS 'MODULE_PATHNAME' ,'gserialized_overlaps'
251        LANGUAGE 'C' IMMUTABLE STRICT;
252
253-- Availability: 1.5.0
254CREATE OPERATOR && (
255        LEFTARG = geography, RIGHTARG = geography, PROCEDURE = geography_overlaps,
256        COMMUTATOR = '&&',
257        RESTRICT = geography_gist_selectivity, 
258        JOIN = geography_gist_join_selectivity
259);
260
261
262-- Availability: 1.5.0
263CREATE OPERATOR CLASS gist_geography_ops
264        DEFAULT FOR TYPE geography USING GIST AS
265        STORAGE         gidx,
266        OPERATOR        3        &&     ,
267--      OPERATOR        6        ~=     ,
268--      OPERATOR        7        ~      ,
269--      OPERATOR        8        @      ,
270        FUNCTION        1        geography_gist_consistent (internal, geography, int4),
271        FUNCTION        2        geography_gist_union (bytea, internal),
272        FUNCTION        3        geography_gist_compress (internal),
273        FUNCTION        4        geography_gist_decompress (internal),
274        FUNCTION        5        geography_gist_penalty (internal, internal, internal),
275        FUNCTION        6        geography_gist_picksplit (internal, internal),
276        FUNCTION        7        geography_gist_same (box2d, box2d, internal);
277
278
279-- ---------- ---------- ---------- ---------- ---------- ---------- ----------
280-- B-Tree Functions
281-- For sorting and grouping
282-- Availability: 1.5.0
283-- ---------- ---------- ---------- ---------- ---------- ---------- ----------
284
285CREATE OR REPLACE FUNCTION geography_lt(geography, geography)
286        RETURNS bool
287        AS 'MODULE_PATHNAME', 'geography_lt'
288        LANGUAGE 'C' IMMUTABLE STRICT;
289
290CREATE OR REPLACE FUNCTION geography_le(geography, geography)
291        RETURNS bool
292        AS 'MODULE_PATHNAME', 'geography_le'
293        LANGUAGE 'C' IMMUTABLE STRICT;
294
295CREATE OR REPLACE FUNCTION geography_gt(geography, geography)
296        RETURNS bool
297        AS 'MODULE_PATHNAME', 'geography_gt'
298        LANGUAGE 'C' IMMUTABLE STRICT;
299
300CREATE OR REPLACE FUNCTION geography_ge(geography, geography)
301        RETURNS bool
302        AS 'MODULE_PATHNAME', 'geography_ge'
303        LANGUAGE 'C' IMMUTABLE STRICT;
304
305CREATE OR REPLACE FUNCTION geography_eq(geography, geography)
306        RETURNS bool
307        AS 'MODULE_PATHNAME', 'geography_eq'
308        LANGUAGE 'C' IMMUTABLE STRICT;
309
310CREATE OR REPLACE FUNCTION geography_cmp(geography, geography)
311        RETURNS integer
312        AS 'MODULE_PATHNAME', 'geography_cmp'
313        LANGUAGE 'C' IMMUTABLE STRICT;
314
315--
316-- Sorting operators for Btree
317--
318
319CREATE OPERATOR < (
320        LEFTARG = geography, RIGHTARG = geography, PROCEDURE = geography_lt,
321        COMMUTATOR = '>', NEGATOR = '>=',
322        RESTRICT = contsel, JOIN = contjoinsel
323);
324
325CREATE OPERATOR <= (
326        LEFTARG = geography, RIGHTARG = geography, PROCEDURE = geography_le,
327        COMMUTATOR = '>=', NEGATOR = '>',
328        RESTRICT = contsel, JOIN = contjoinsel
329);
330
331CREATE OPERATOR = (
332        LEFTARG = geography, RIGHTARG = geography, PROCEDURE = geography_eq,
333        COMMUTATOR = '=', -- we might implement a faster negator here
334        RESTRICT = contsel, JOIN = contjoinsel
335);
336
337CREATE OPERATOR >= (
338        LEFTARG = geography, RIGHTARG = geography, PROCEDURE = geography_ge,
339        COMMUTATOR = '<=', NEGATOR = '<',
340        RESTRICT = contsel, JOIN = contjoinsel
341);
342CREATE OPERATOR > (
343        LEFTARG = geography, RIGHTARG = geography, PROCEDURE = geography_gt,
344        COMMUTATOR = '<', NEGATOR = '<=',
345        RESTRICT = contsel, JOIN = contjoinsel
346);
347
348CREATE OPERATOR CLASS btree_geography_ops
349        DEFAULT FOR TYPE geography USING btree AS
350        OPERATOR        1       < ,
351        OPERATOR        2       <= ,
352        OPERATOR        3       = ,
353        OPERATOR        4       >= ,
354        OPERATOR        5       > ,
355        FUNCTION        1       geography_cmp (geography, geography);
356
357
358-- ---------- ---------- ---------- ---------- ---------- ---------- ----------
359-- Export Functions
360-- Availability: 1.5.0
361-- ---------- ---------- ---------- ---------- ---------- ---------- ----------
362
363--
364-- SVG OUTPUT
365--
366
367-- ST_AsSVG(geography, rel, precision)
368-- rel int4 DEFAULT 0, maxdecimaldigits int4 DEFAULT 15
369-- Changed 2.0.0 to use default args and named args
370CREATE OR REPLACE FUNCTION ST_AsSVG(geog geography,rel int4 DEFAULT 0,maxdecimaldigits int4 DEFAULT 15)
371        RETURNS text
372        AS 'MODULE_PATHNAME','geography_as_svg'
373        LANGUAGE 'C' IMMUTABLE STRICT;
374       
375-- Availability: 1.5.0 - this is just a hack to prevent unknown from causing ambiguous name because of geography
376CREATE OR REPLACE FUNCTION ST_AsSVG(text)
377        RETURNS text AS
378        $$ SELECT ST_AsSVG($1::geometry,0,15);  $$
379        LANGUAGE 'SQL' IMMUTABLE STRICT;
380
381--
382-- GML OUTPUT
383--
384
385-- _ST_AsGML(version, geography, precision, option)
386CREATE OR REPLACE FUNCTION _ST_AsGML(int4, geography, int4, int4, text)
387        RETURNS text
388        AS 'MODULE_PATHNAME','geography_as_gml'
389        LANGUAGE 'C' IMMUTABLE;
390
391-- Availability: 1.5.0 - this is just a hack to prevent unknown from causing ambiguous name because of geography
392-- Change 2.0.0 to use base function
393CREATE OR REPLACE FUNCTION ST_AsGML(text)
394        RETURNS text AS
395        $$ SELECT _ST_AsGML(2,$1::geometry,15,0, NULL);  $$
396        LANGUAGE 'SQL' IMMUTABLE STRICT;
397
398-- ST_AsGML (geography, precision, option) / version=2
399-- Availability: 1.5.0
400-- Changed: 2.0.0 to use default args
401CREATE OR REPLACE FUNCTION ST_AsGML(geog geography, maxdecimaldigits int4 DEFAULT 15, options int4 DEFAULT 0)
402        RETURNS text
403        AS 'SELECT _ST_AsGML(2, $1, $2, $3, null)'
404        LANGUAGE 'SQL' IMMUTABLE STRICT;
405
406-- ST_AsGML(version, geography, precision, option, prefix)
407-- Changed: 2.0.0 to use default args and allow named args
408CREATE OR REPLACE FUNCTION ST_AsGML(version int4, geog geography, maxdecimaldigits int4 DEFAULT 15, options int4 DEFAULT 0, nprefix text DEFAULT NULL)
409        RETURNS text
410        AS $$ SELECT _ST_AsGML($1, $2, $3, $4, $5);$$
411        LANGUAGE 'SQL' IMMUTABLE;
412
413--
414-- KML OUTPUT
415--
416
417-- _ST_AsKML(version, geography, precision)
418CREATE OR REPLACE FUNCTION _ST_AsKML(int4, geography, int4, text)
419        RETURNS text
420        AS 'MODULE_PATHNAME','geography_as_kml'
421        LANGUAGE 'C' IMMUTABLE;
422
423-- AsKML(geography,precision) / version=2
424-- Changed: 2.0.0 to use default args and named args
425CREATE OR REPLACE FUNCTION ST_AsKML(geog geography, maxdecimaldigits int4 DEFAULT 15)
426        RETURNS text
427        AS 'SELECT _ST_AsKML(2, $1, $2, null)'
428        LANGUAGE 'SQL' IMMUTABLE STRICT;
429
430-- Availability: 1.5.0 - this is just a hack to prevent unknown from causing ambiguous name because of geography
431-- Deprecated 2.0.0
432CREATE OR REPLACE FUNCTION ST_AsKML(text)
433        RETURNS text AS
434        $$ SELECT _ST_AsKML(2, $1::geometry, 15, null);  $$
435        LANGUAGE 'SQL' IMMUTABLE STRICT;
436
437-- ST_AsKML(version, geography, precision, prefix)
438-- Availability: 2.0.0 nprefix added
439-- Changed: 2.0.0 to use default args and named args
440CREATE OR REPLACE FUNCTION ST_AsKML(version int4, geog geography, maxdecimaldigits int4 DEFAULT 15, nprefix text DEFAULT null)
441        RETURNS text
442        AS 'SELECT _ST_AsKML($1, $2, $3, $4)'
443        LANGUAGE 'SQL' IMMUTABLE;
444
445--
446-- GeoJson Output
447--
448
449CREATE OR REPLACE FUNCTION _ST_AsGeoJson(int4, geography, int4, int4)
450        RETURNS text
451        AS 'MODULE_PATHNAME','geography_as_geojson'
452        LANGUAGE 'C' IMMUTABLE STRICT;
453
454-- Availability: 1.5.0 - this is just a hack to prevent unknown from causing ambiguous name because of geography
455-- Deprecated in 2.0.0
456CREATE OR REPLACE FUNCTION ST_AsGeoJson(text)
457        RETURNS text AS
458        $$ SELECT _ST_AsGeoJson(1, $1::geometry,15,0);  $$
459        LANGUAGE 'SQL' IMMUTABLE STRICT;
460
461-- ST_AsGeoJson(geography, precision, options) / version=1
462-- Changed: 2.0.0 to use default args and named args
463CREATE OR REPLACE FUNCTION ST_AsGeoJson(geog geography, maxdecimaldigits int4 DEFAULT 15, options int4 DEFAULT 0)
464        RETURNS text
465        AS $$ SELECT _ST_AsGeoJson(1, $1, $2, $3); $$
466        LANGUAGE 'SQL' IMMUTABLE STRICT;
467
468-- ST_AsGeoJson(version, geography, precision,options)
469-- Changed: 2.0.0 to use default args and named args
470CREATE OR REPLACE FUNCTION ST_AsGeoJson(gj_version int4, geog geography, maxdecimaldigits int4 DEFAULT 15, options int4 DEFAULT 0)
471        RETURNS text
472        AS $$ SELECT _ST_AsGeoJson($1, $2, $3, $4); $$
473        LANGUAGE 'SQL' IMMUTABLE STRICT;
474
475-- ---------- ---------- ---------- ---------- ---------- ---------- ----------
476-- Measurement Functions
477-- Availability: 1.5.0
478-- ---------- ---------- ---------- ---------- ---------- ---------- ----------
479
480-- Stop calculation and return immediately once distance is less than tolerance
481-- Availability: 1.5.0
482CREATE OR REPLACE FUNCTION _ST_Distance(geography, geography, float8, boolean)
483        RETURNS float8
484        AS 'MODULE_PATHNAME','geography_distance'
485        LANGUAGE 'C' IMMUTABLE STRICT
486        COST 100;
487
488-- Stop calculation and return immediately once distance is less than tolerance
489-- Availability: 1.5.0
490CREATE OR REPLACE FUNCTION _ST_DWithin(geography, geography, float8, boolean)
491        RETURNS boolean
492        AS 'MODULE_PATHNAME','geography_dwithin'
493        LANGUAGE 'C' IMMUTABLE STRICT
494        COST 100;
495
496-- Availability: 1.5.0
497CREATE OR REPLACE FUNCTION ST_Distance(geography, geography, boolean)
498        RETURNS float8
499        AS 'SELECT _ST_Distance($1, $2, 0.0, $3)'
500        LANGUAGE 'SQL' IMMUTABLE STRICT;
501
502-- Currently defaulting to spheroid calculations
503-- Availability: 1.5.0
504CREATE OR REPLACE FUNCTION ST_Distance(geography, geography)
505        RETURNS float8
506        AS 'SELECT _ST_Distance($1, $2, 0.0, true)'
507        LANGUAGE 'SQL' IMMUTABLE STRICT;
508       
509-- Availability: 1.5.0 - this is just a hack to prevent unknown from causing ambiguous name because of geography
510CREATE OR REPLACE FUNCTION ST_Distance(text, text)
511        RETURNS float8 AS
512        $$ SELECT ST_Distance($1::geometry, $2::geometry);  $$
513        LANGUAGE 'SQL' IMMUTABLE STRICT;
514
515-- Only expands the bounding box, the actual geometry will remain unchanged, use with care.
516-- Availability: 1.5.0
517CREATE OR REPLACE FUNCTION _ST_Expand(geography, float8)
518        RETURNS geography
519        AS 'MODULE_PATHNAME','geography_expand'
520        LANGUAGE 'C' IMMUTABLE STRICT;
521
522-- Availability: 1.5.0
523CREATE OR REPLACE FUNCTION ST_DWithin(geography, geography, float8, boolean)
524        RETURNS boolean
525        AS 'SELECT $1 && _ST_Expand($2,$3) AND $2 && _ST_Expand($1,$3) AND _ST_DWithin($1, $2, $3, $4)'
526        LANGUAGE 'SQL' IMMUTABLE;
527
528-- Currently defaulting to spheroid calculations
529-- Availability: 1.5.0
530CREATE OR REPLACE FUNCTION ST_DWithin(geography, geography, float8)
531        RETURNS boolean
532        AS 'SELECT $1 && _ST_Expand($2,$3) AND $2 && _ST_Expand($1,$3) AND _ST_DWithin($1, $2, $3, true)'
533        LANGUAGE 'SQL' IMMUTABLE;
534
535-- Availability: 1.5.0 - this is just a hack to prevent unknown from causing ambiguous name because of geography
536CREATE OR REPLACE FUNCTION ST_DWithin(text, text, float8)
537        RETURNS boolean AS
538        $$ SELECT ST_DWithin($1::geometry, $2::geometry, $3);  $$
539        LANGUAGE 'SQL' IMMUTABLE;
540
541-- Availability: 1.5.0
542CREATE OR REPLACE FUNCTION ST_Area(geog geography, use_spheroid boolean DEFAULT true)
543        RETURNS float8
544        AS 'MODULE_PATHNAME','geography_area'
545        LANGUAGE 'C' IMMUTABLE STRICT
546        COST 100;
547
548-- Availability: 1.5.0 - this is just a hack to prevent unknown from causing ambiguous name because of geography
549CREATE OR REPLACE FUNCTION ST_Area(text)
550        RETURNS float8 AS
551        $$ SELECT ST_Area($1::geometry);  $$
552        LANGUAGE 'SQL' IMMUTABLE STRICT;
553
554-- Availability: 1.5.0
555CREATE OR REPLACE FUNCTION ST_Length(geog geography, use_spheroid boolean DEFAULT true)
556        RETURNS float8
557        AS 'MODULE_PATHNAME','geography_length'
558        LANGUAGE 'C' IMMUTABLE STRICT
559        COST 100;
560
561-- Availability: 1.5.0 - this is just a hack to prevent unknown from causing ambiguous name because of geography
562CREATE OR REPLACE FUNCTION ST_Length(text)
563        RETURNS float8 AS
564        $$ SELECT ST_Length($1::geometry);  $$
565        LANGUAGE 'SQL' IMMUTABLE STRICT;
566
567-- Availability: 2.0.0
568CREATE OR REPLACE FUNCTION ST_Project(geog geography, distance float8, azimuth float8)
569        RETURNS geography
570        AS 'MODULE_PATHNAME','geography_project'
571        LANGUAGE 'C' IMMUTABLE
572        COST 100;
573
574-- Availability: 2.0.0
575CREATE OR REPLACE FUNCTION ST_Azimuth(geog1 geography, geog2 geography)
576        RETURNS float8
577        AS 'MODULE_PATHNAME','geography_azimuth'
578        LANGUAGE 'C' IMMUTABLE STRICT
579        COST 100;
580
581-- Availability: 2.0.0
582CREATE OR REPLACE FUNCTION ST_Perimeter(geog geography, use_spheroid boolean DEFAULT true)
583        RETURNS float8
584        AS 'MODULE_PATHNAME','geography_perimeter'
585        LANGUAGE 'C' IMMUTABLE STRICT
586        COST 100;
587
588-- Availability: 1.5.0
589CREATE OR REPLACE FUNCTION _ST_PointOutside(geography)
590        RETURNS geography
591        AS 'MODULE_PATHNAME','geography_point_outside'
592        LANGUAGE 'C' IMMUTABLE STRICT;
593
594-- Only implemented for polygon-over-point
595-- Availability: 1.5.0
596CREATE OR REPLACE FUNCTION _ST_Covers(geography, geography)
597        RETURNS boolean
598        AS 'MODULE_PATHNAME','geography_covers'
599        LANGUAGE 'C' IMMUTABLE STRICT
600        COST 100;
601
602-- Only implemented for polygon-over-point
603-- Availability: 1.5.0
604CREATE OR REPLACE FUNCTION ST_Covers(geography, geography)
605        RETURNS boolean
606        AS 'SELECT $1 && $2 AND _ST_Covers($1, $2)'
607        LANGUAGE 'SQL' IMMUTABLE;
608
609-- Availability: 1.5.0 - this is just a hack to prevent unknown from causing ambiguous name because of geography
610CREATE OR REPLACE FUNCTION ST_Covers(text, text)
611        RETURNS boolean AS
612        $$ SELECT ST_Covers($1::geometry, $2::geometry);  $$
613        LANGUAGE 'SQL' IMMUTABLE ;
614
615-- Only implemented for polygon-over-point
616-- Availability: 1.5.0
617CREATE OR REPLACE FUNCTION ST_CoveredBy(geography, geography)
618        RETURNS boolean
619        AS 'SELECT $1 && $2 AND _ST_Covers($2, $1)'
620        LANGUAGE 'SQL' IMMUTABLE ;
621
622-- Availability: 1.5.0 - this is just a hack to prevent unknown from causing ambiguous name because of geography
623CREATE OR REPLACE FUNCTION ST_CoveredBy(text, text)
624        RETURNS boolean AS
625        $$ SELECT ST_CoveredBy($1::geometry, $2::geometry);  $$
626        LANGUAGE 'SQL' IMMUTABLE ;
627
628-- Availability: 1.5.0
629CREATE OR REPLACE FUNCTION ST_Intersects(geography, geography)
630        RETURNS boolean
631        AS 'SELECT $1 && $2 AND _ST_Distance($1, $2, 0.0, false) < 0.00001'
632        LANGUAGE 'SQL' IMMUTABLE ;
633
634-- Availability: 1.5.0 - this is just a hack to prevent unknown from causing ambiguous name because of geography
635CREATE OR REPLACE FUNCTION ST_Intersects(text, text)
636        RETURNS boolean AS
637        $$ SELECT ST_Intersects($1::geometry, $2::geometry);  $$
638        LANGUAGE 'SQL' IMMUTABLE ;
639
640-- Availability: 1.5.0
641CREATE OR REPLACE FUNCTION _ST_BestSRID(geography, geography)
642        RETURNS integer
643        AS 'MODULE_PATHNAME','geography_bestsrid'
644        LANGUAGE 'C' IMMUTABLE STRICT;
645
646-- Availability: 1.5.0
647CREATE OR REPLACE FUNCTION _ST_BestSRID(geography)
648        RETURNS integer
649        AS 'SELECT _ST_BestSRID($1,$1)'
650        LANGUAGE 'SQL' IMMUTABLE STRICT;
651
652-- Availability: 1.5.0
653CREATE OR REPLACE FUNCTION ST_Buffer(geography, float8)
654        RETURNS geography
655        AS 'SELECT geography(ST_Transform(ST_Buffer(ST_Transform(geometry($1), _ST_BestSRID($1)), $2), 4326))'
656        LANGUAGE 'SQL' IMMUTABLE STRICT;
657
658-- Availability: 1.5.0 - this is just a hack to prevent unknown from causing ambiguous name because of geography
659CREATE OR REPLACE FUNCTION ST_Buffer(text, float8)
660        RETURNS geometry AS
661        $$ SELECT ST_Buffer($1::geometry, $2);  $$
662        LANGUAGE 'SQL' IMMUTABLE STRICT;
663
664-- Availability: 1.5.0
665CREATE OR REPLACE FUNCTION ST_Intersection(geography, geography)
666        RETURNS geography
667        AS 'SELECT geography(ST_Transform(ST_Intersection(ST_Transform(geometry($1), _ST_BestSRID($1, $2)), ST_Transform(geometry($2), _ST_BestSRID($1, $2))), 4326))'
668        LANGUAGE 'SQL' IMMUTABLE STRICT;
669
670-- Availability: 1.5.0 - this is just a hack to prevent unknown from causing ambiguous name because of geography
671CREATE OR REPLACE FUNCTION ST_Intersection(text, text)
672        RETURNS geometry AS
673        $$ SELECT ST_Intersection($1::geometry, $2::geometry);  $$
674        LANGUAGE 'SQL' IMMUTABLE STRICT;
675
676-- Availability: 1.5.0
677CREATE OR REPLACE FUNCTION ST_AsBinary(geography)
678        RETURNS bytea
679        AS 'MODULE_PATHNAME','LWGEOM_asBinary'
680        LANGUAGE 'C' IMMUTABLE STRICT;
681
682-- Availability: 2.0.0
683CREATE OR REPLACE FUNCTION ST_AsBinary(geography,text)
684        RETURNS bytea AS
685        $$ SELECT ST_AsBinary($1::geometry, $2);  $$
686        LANGUAGE 'SQL' IMMUTABLE STRICT;
687
688-- Availability: 2.0.0
689CREATE OR REPLACE FUNCTION ST_AsEWKT(geography)
690        RETURNS TEXT
691        AS 'MODULE_PATHNAME','LWGEOM_asEWKT'
692        LANGUAGE 'C' IMMUTABLE STRICT;
693
694-- Availability: 2.0.0 - this is just a hack to prevent unknown from causing ambiguous name because of geography
695CREATE OR REPLACE FUNCTION ST_AsEWKT(text)
696        RETURNS text AS
697        $$ SELECT ST_AsEWKT($1::geometry);  $$
698        LANGUAGE 'SQL' IMMUTABLE STRICT;
699
700-- Availability: 2.0.0
701CREATE OR REPLACE FUNCTION GeometryType(geography)
702        RETURNS text
703        AS 'MODULE_PATHNAME', 'LWGEOM_getTYPE'
704        LANGUAGE 'C' IMMUTABLE STRICT;
705
706-- Availability: 2.0.0
707CREATE OR REPLACE FUNCTION ST_Summary(geography)
708        RETURNS text
709        AS 'MODULE_PATHNAME', 'LWGEOM_summary'
710        LANGUAGE 'C' IMMUTABLE STRICT;
711
712       
713-----------------------------------------------------------------------------
714
Note: See TracBrowser for help on using the browser.