4
-- other changes will require a bump in Major version.
5
-- Currently only function replaceble by CREATE OR REPLACE
6
-- are cleanly handled.
9
#include "sqldefines.h"
13
-------------------------------------------------------------------
14
-------------------------------------------------------------------
17
# define HISTOGRAM_IN_REP opaque
18
# define HISTOGRAM_OUT_REP opaque
20
# define HISTOGRAM_IN_REP histogram2d
21
# define HISTOGRAM_OUT_REP cstring
24
CREATEFUNCTION histogram2d_in(HISTOGRAM_OUT_REP)
25
RETURNS HISTOGRAM_IN_REP
26
AS '@MODULE_FILENAME@', 'lwhistogram2d_in'
27
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
29
CREATEFUNCTION ST_histogram2d_in(HISTOGRAM_OUT_REP)
30
RETURNS HISTOGRAM_IN_REP
31
AS '@MODULE_FILENAME@', 'lwhistogram2d_in'
32
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
34
CREATEFUNCTION histogram2d_out(HISTOGRAM_IN_REP)
35
RETURNS HISTOGRAM_OUT_REP
36
AS '@MODULE_FILENAME@', 'lwhistogram2d_out'
37
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
39
CREATEFUNCTION ST_histogram2d_out(HISTOGRAM_IN_REP)
40
RETURNS HISTOGRAM_OUT_REP
41
AS '@MODULE_FILENAME@', 'lwhistogram2d_out'
42
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
44
CREATE TYPE histogram2d (
46
internallength = variable,
47
input = ST_histogram2d_in,
48
output = ST_histogram2d_out,
52
-------------------------------------------------------------------
53
-------------------------------------------------------------------
56
# define SPHEROID_IN_REP opaque
57
# define SPHEROID_OUT_REP opaque
59
# define SPHEROID_IN_REP spheroid
60
# define SPHEROID_OUT_REP cstring
63
CREATEFUNCTION spheroid_in(SPHEROID_OUT_REP)
64
RETURNS SPHEROID_IN_REP
65
AS '@MODULE_FILENAME@','ellipsoid_in'
66
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
68
CREATEFUNCTION ST_spheroid_in(SPHEROID_OUT_REP)
69
RETURNS SPHEROID_IN_REP
70
AS '@MODULE_FILENAME@','ellipsoid_in'
71
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
73
CREATEFUNCTION spheroid_out(SPHEROID_IN_REP)
74
RETURNS SPHEROID_OUT_REP
75
AS '@MODULE_FILENAME@','ellipsoid_out'
76
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
78
CREATEFUNCTION ST_spheroid_out(SPHEROID_IN_REP)
79
RETURNS SPHEROID_OUT_REP
80
AS '@MODULE_FILENAME@','ellipsoid_out'
81
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
83
CREATE TYPE spheroid (
86
input = ST_spheroid_in,
87
output = ST_spheroid_out
90
-------------------------------------------------------------------
91
-------------------------------------------------------------------
94
# define GEOMETRY_IN_REP opaque
95
# define GEOMETRY_OUT_REP opaque
97
# define GEOMETRY_IN_REP geometry
98
# define GEOMETRY_OUT_REP cstring
101
CREATEFUNCTION geometry_in(GEOMETRY_OUT_REP)
103
AS '@MODULE_FILENAME@','LWGEOM_in'
104
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
106
CREATEFUNCTION ST_geometry_in(GEOMETRY_OUT_REP)
108
AS '@MODULE_FILENAME@','LWGEOM_in'
109
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
111
CREATEFUNCTION geometry_out(GEOMETRY_IN_REP)
113
AS '@MODULE_FILENAME@','LWGEOM_out'
114
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
116
CREATEFUNCTION ST_geometry_out(GEOMETRY_IN_REP)
118
AS '@MODULE_FILENAME@','LWGEOM_out'
119
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
121
#if USE_VERSION >= 80
122
CREATEFUNCTION geometry_analyze(internal)
124
AS '@MODULE_FILENAME@', 'LWGEOM_analyze'
125
LANGUAGE 'C' _VOLATILE_STRICT; -- WITH (isstrict);
127
CREATEFUNCTION ST_geometry_analyze(internal)
129
AS '@MODULE_FILENAME@', 'LWGEOM_analyze'
130
LANGUAGE 'C' _VOLATILE_STRICT; -- WITH (isstrict);
134
CREATEFUNCTION geometry_recv(internal)
136
AS '@MODULE_FILENAME@','LWGEOM_recv'
137
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
139
CREATEFUNCTION ST_geometry_recv(internal)
141
AS '@MODULE_FILENAME@','LWGEOM_recv'
142
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
144
CREATEFUNCTION geometry_send(geometry)
146
AS '@MODULE_FILENAME@','LWGEOM_send'
147
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
149
CREATEFUNCTION ST_geometry_send(geometry)
151
AS '@MODULE_FILENAME@','LWGEOM_send'
152
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
155
CREATE TYPE geometry (
156
internallength = variable,
157
input = ST_geometry_in,
158
output = ST_geometry_out,
160
send = ST_geometry_send,
161
receive = ST_geometry_recv,
164
#if USE_VERSION >= 80
165
analyze = ST_geometry_analyze,
170
-------------------------------------------
171
-------------------------------------------
173
CREATE OR REPLACE FUNCTION Affine(geometry,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8)
175
AS '@MODULE_FILENAME@', 'LWGEOM_affine'
176
LANGUAGE 'C' _IMMUTABLE_STRICT;
178
CREATE OR REPLACE FUNCTION ST_Affine(geometry,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8)
180
AS '@MODULE_FILENAME@', 'LWGEOM_affine'
181
LANGUAGE 'C' _IMMUTABLE_STRICT;
183
CREATE OR REPLACE FUNCTION Affine(geometry,float8,float8,float8,float8,float8,float8)
185
AS 'SELECT affine($1, $2, $3, 0, $4, $5, 0, 0, 0, 1, $6, $7, 0)'
186
LANGUAGE 'SQL' _IMMUTABLE_STRICT;
188
CREATE OR REPLACE FUNCTION ST_Affine(geometry,float8,float8,float8,float8,float8,float8)
190
AS 'SELECT affine($1, $2, $3, 0, $4, $5, 0, 0, 0, 1, $6, $7, 0)'
191
LANGUAGE 'SQL' _IMMUTABLE_STRICT;
193
CREATEFUNCTION RotateZ(geometry,float8)
195
AS 'SELECT affine($1, cos($2), -sin($2), 0, sin($2), cos($2), 0, 0, 0, 1, 0, 0, 0)'
196
LANGUAGE 'SQL' _IMMUTABLE_STRICT;
198
CREATEFUNCTION ST_RotateZ(geometry,float8)
200
AS 'SELECT affine($1, cos($2), -sin($2), 0, sin($2), cos($2), 0, 0, 0, 1, 0, 0, 0)'
201
LANGUAGE 'SQL' _IMMUTABLE_STRICT;
203
CREATEFUNCTION Rotate(geometry,float8)
205
AS 'SELECT rotateZ($1, $2)'
206
LANGUAGE 'SQL' _IMMUTABLE_STRICT;
208
CREATEFUNCTION ST_Rotate(geometry,float8)
210
AS 'SELECT rotateZ($1, $2)'
211
LANGUAGE 'SQL' _IMMUTABLE_STRICT;
213
CREATEFUNCTION RotateX(geometry,float8)
215
AS 'SELECT affine($1, 1, 0, 0, 0, cos($2), -sin($2), 0, sin($2), cos($2), 0, 0, 0)'
216
LANGUAGE 'SQL' _IMMUTABLE_STRICT;
218
CREATEFUNCTION ST_RotateX(geometry,float8)
220
AS 'SELECT affine($1, 1, 0, 0, 0, cos($2), -sin($2), 0, sin($2), cos($2), 0, 0, 0)'
221
LANGUAGE 'SQL' _IMMUTABLE_STRICT;
223
CREATEFUNCTION RotateY(geometry,float8)
225
AS 'SELECT affine($1, cos($2), 0, sin($2), 0, 1, 0, -sin($2), 0, cos($2), 0, 0, 0)'
226
LANGUAGE 'SQL' _IMMUTABLE_STRICT;
228
CREATEFUNCTION ST_RotateY(geometry,float8)
230
AS 'SELECT affine($1, cos($2), 0, sin($2), 0, 1, 0, -sin($2), 0, cos($2), 0, 0, 0)'
231
LANGUAGE 'SQL' _IMMUTABLE_STRICT;
233
CREATEFUNCTION Translate(geometry,float8,float8,float8)
235
AS 'SELECT affine($1, 1, 0, 0, 0, 1, 0, 0, 0, 1, $2, $3, $4)'
236
LANGUAGE 'SQL' _IMMUTABLE_STRICT;
238
CREATEFUNCTION ST_Translate(geometry,float8,float8,float8)
240
AS 'SELECT affine($1, 1, 0, 0, 0, 1, 0, 0, 0, 1, $2, $3, $4)'
241
LANGUAGE 'SQL' _IMMUTABLE_STRICT;
243
CREATEFUNCTION Translate(geometry,float8,float8)
245
AS 'SELECT translate($1, $2, $3, 0)'
246
LANGUAGE 'SQL' _IMMUTABLE_STRICT;
248
CREATEFUNCTION ST_Translate(geometry,float8,float8)
250
AS 'SELECT translate($1, $2, $3, 0)'
251
LANGUAGE 'SQL' _IMMUTABLE_STRICT;
253
CREATEFUNCTION Scale(geometry,float8,float8,float8)
255
AS 'SELECT affine($1, $2, 0, 0, 0, $3, 0, 0, 0, $4, 0, 0, 0)'
256
LANGUAGE 'SQL' _IMMUTABLE_STRICT;
258
CREATEFUNCTION ST_Scale(geometry,float8,float8,float8)
260
AS 'SELECT affine($1, $2, 0, 0, 0, $3, 0, 0, 0, $4, 0, 0, 0)'
261
LANGUAGE 'SQL' _IMMUTABLE_STRICT;
263
CREATEFUNCTION Scale(geometry,float8,float8)
265
AS 'SELECT scale($1, $2, $3, 1)'
266
LANGUAGE 'SQL' _IMMUTABLE_STRICT;
268
CREATEFUNCTION ST_Scale(geometry,float8,float8)
270
AS 'SELECT scale($1, $2, $3, 1)'
271
LANGUAGE 'SQL' _IMMUTABLE_STRICT;
273
CREATEFUNCTION transscale(geometry,float8,float8,float8,float8)
275
AS 'SELECT affine($1, $4, 0, 0, 0, $5, 0,
276
0, 0, 1, $2 * $4, $3 * $5, 0)'
277
LANGUAGE 'SQL' _IMMUTABLE_STRICT;
279
CREATEFUNCTION ST_transscale(geometry,float8,float8,float8,float8)
281
AS 'SELECT affine($1, $4, 0, 0, 0, $5, 0,
282
0, 0, 1, $2 * $4, $3 * $5, 0)'
283
LANGUAGE 'SQL' _IMMUTABLE_STRICT;
285
CREATEFUNCTION shift_longitude(geometry)
287
AS '@MODULE_FILENAME@', 'LWGEOM_longitude_shift'
288
LANGUAGE 'C' _IMMUTABLE_STRICT;
290
CREATEFUNCTION ST_shift_longitude(geometry)
292
AS '@MODULE_FILENAME@', 'LWGEOM_longitude_shift'
293
LANGUAGE 'C' _IMMUTABLE_STRICT;
295
-------------------------------------------------------------------
296
-------------------------------------------------------------------
299
# define BOX3D_IN_REP opaque
300
# define BOX3D_OUT_REP opaque
302
# define BOX3D_IN_REP box3d
303
# define BOX3D_OUT_REP cstring
306
CREATEFUNCTION box3d_in(BOX3D_OUT_REP)
308
AS '@MODULE_FILENAME@', 'BOX3D_in'
309
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
311
CREATEFUNCTION box3d_out(BOX3D_IN_REP)
312
RETURNS BOX3D_OUT_REP
313
AS '@MODULE_FILENAME@', 'BOX3D_out'
314
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
316
CREATEFUNCTION ST_box3d_in(BOX3D_OUT_REP)
318
AS '@MODULE_FILENAME@', 'BOX3D_in'
319
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
321
CREATEFUNCTION ST_box3d_out(BOX3D_IN_REP)
322
RETURNS BOX3D_OUT_REP
323
AS '@MODULE_FILENAME@', 'BOX3D_out'
324
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
330
output = ST_box3d_out
333
CREATEFUNCTION xmin(box3d)
335
AS '@MODULE_FILENAME@','BOX3D_xmin'
336
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
338
CREATEFUNCTION ST_XMin(box3d)
340
AS '@MODULE_FILENAME@','BOX3D_xmin'
341
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
343
CREATEFUNCTION ymin(box3d)
345
AS '@MODULE_FILENAME@','BOX3D_ymin'
346
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
348
CREATEFUNCTION ST_YMin(box3d)
350
AS '@MODULE_FILENAME@','BOX3D_ymin'
351
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
353
CREATEFUNCTION zmin(box3d)
355
AS '@MODULE_FILENAME@','BOX3D_zmin'
356
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
358
CREATEFUNCTION ST_ZMin(box3d)
360
AS '@MODULE_FILENAME@','BOX3D_zmin'
361
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
363
CREATEFUNCTION xmax(box3d)
365
AS '@MODULE_FILENAME@','BOX3D_xmax'
366
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
368
CREATEFUNCTION ST_XMax(box3d)
370
AS '@MODULE_FILENAME@','BOX3D_xmax'
371
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
373
CREATEFUNCTION ymax(box3d)
375
AS '@MODULE_FILENAME@','BOX3D_ymax'
376
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
378
CREATEFUNCTION ST_YMax(box3d)
380
AS '@MODULE_FILENAME@','BOX3D_ymax'
381
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
383
CREATEFUNCTION zmax(box3d)
385
AS '@MODULE_FILENAME@','BOX3D_zmax'
386
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
388
CREATEFUNCTION ST_ZMax(box3d)
390
AS '@MODULE_FILENAME@','BOX3D_zmax'
391
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
393
-------------------------------------------------------------------
394
-------------------------------------------------------------------
397
# define CHIP_IN_REP opaque
398
# define CHIP_OUT_REP opaque
400
# define CHIP_IN_REP chip
401
# define CHIP_OUT_REP cstring
404
CREATEFUNCTION chip_in(CHIP_OUT_REP)
406
AS '@MODULE_FILENAME@','CHIP_in'
407
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
409
CREATEFUNCTION ST_chip_in(CHIP_OUT_REP)
411
AS '@MODULE_FILENAME@','CHIP_in'
412
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
414
CREATEFUNCTION chip_out(CHIP_IN_REP)
416
AS '@MODULE_FILENAME@','CHIP_out'
417
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
419
CREATEFUNCTION ST_chip_out(CHIP_IN_REP)
421
AS '@MODULE_FILENAME@','CHIP_out'
422
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
426
internallength = variable,
428
output = ST_chip_out,
432
-----------------------------------------------------------------------
433
-----------------------------------------------------------------------
437
# define BOX2D_IN_REP opaque
438
# define BOX2D_OUT_REP opaque
440
# define BOX2D_IN_REP box2d
441
# define BOX2D_OUT_REP cstring
444
CREATEFUNCTION box2d_in(BOX2D_OUT_REP)
446
AS '@MODULE_FILENAME@','BOX2DFLOAT4_in'
447
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
449
CREATEFUNCTION ST_box2d_in(BOX2D_OUT_REP)
451
AS '@MODULE_FILENAME@','BOX2DFLOAT4_in'
452
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
454
CREATEFUNCTION box2d_out(BOX2D_IN_REP)
456
AS '@MODULE_FILENAME@','BOX2DFLOAT4_out'
457
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
459
CREATEFUNCTION ST_box2d_out(BOX2D_IN_REP)
461
AS '@MODULE_FILENAME@','BOX2DFLOAT4_out'
462
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
467
output = ST_box2d_out,
471
---- BOX2D support functions
473
CREATEFUNCTION box2d_overleft(box2d, box2d)
475
AS '@MODULE_FILENAME@', 'BOX2D_overleft'
476
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
478
CREATEFUNCTION ST_box2d_overleft(box2d, box2d)
480
AS '@MODULE_FILENAME@', 'BOX2D_overleft'
481
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
483
CREATEFUNCTION box2d_overright(box2d, box2d)
485
AS '@MODULE_FILENAME@', 'BOX2D_overright'
486
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
488
CREATEFUNCTION ST_box2d_overright(box2d, box2d)
490
AS '@MODULE_FILENAME@', 'BOX2D_overright'
491
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
493
CREATEFUNCTION box2d_left(box2d, box2d)
495
AS '@MODULE_FILENAME@', 'BOX2D_left'
496
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
498
CREATEFUNCTION ST_box2d_left(box2d, box2d)
500
AS '@MODULE_FILENAME@', 'BOX2D_left'
501
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
503
CREATEFUNCTION box2d_right(box2d, box2d)
505
AS '@MODULE_FILENAME@', 'BOX2D_right'
506
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
508
CREATEFUNCTION ST_box2d_right(box2d, box2d)
510
AS '@MODULE_FILENAME@', 'BOX2D_right'
511
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
513
CREATEFUNCTION box2d_contain(box2d, box2d)
515
AS '@MODULE_FILENAME@', 'BOX2D_contain'
516
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
518
CREATEFUNCTION ST_box2d_contain(box2d, box2d)
520
AS '@MODULE_FILENAME@', 'BOX2D_contain'
521
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
523
CREATEFUNCTION box2d_contained(box2d, box2d)
525
AS '@MODULE_FILENAME@', 'BOX2D_contained'
526
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
528
CREATEFUNCTION ST_box2d_contained(box2d, box2d)
530
AS '@MODULE_FILENAME@', 'BOX2D_contained'
531
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
533
CREATEFUNCTION box2d_overlap(box2d, box2d)
535
AS '@MODULE_FILENAME@', 'BOX2D_overlap'
536
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
538
CREATEFUNCTION ST_box2d_overlap(box2d, box2d)
540
AS '@MODULE_FILENAME@', 'BOX2D_overlap'
541
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
543
CREATEFUNCTION box2d_same(box2d, box2d)
545
AS '@MODULE_FILENAME@', 'BOX2D_same'
546
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
548
CREATEFUNCTION ST_box2d_same(box2d, box2d)
550
AS '@MODULE_FILENAME@', 'BOX2D_same'
551
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
553
CREATEFUNCTION box2d_intersects(box2d, box2d)
555
AS '@MODULE_FILENAME@', 'BOX2D_intersects'
556
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
558
CREATEFUNCTION ST_box2d_intersects(box2d, box2d)
560
AS '@MODULE_FILENAME@', 'BOX2D_intersects'
561
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
565
-------------------------------------------------------------------
566
-------------------------------------------------------------------
568
CREATEFUNCTION geometry_lt(geometry, geometry)
570
AS '@MODULE_FILENAME@', 'lwgeom_lt'
571
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
573
CREATEFUNCTION ST_geometry_lt(geometry, geometry)
575
AS '@MODULE_FILENAME@', 'lwgeom_lt'
576
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
578
CREATEFUNCTION geometry_le(geometry, geometry)
580
AS '@MODULE_FILENAME@', 'lwgeom_le'
581
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
583
CREATEFUNCTION ST_geometry_le(geometry, geometry)
585
AS '@MODULE_FILENAME@', 'lwgeom_le'
586
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
588
CREATEFUNCTION geometry_gt(geometry, geometry)
590
AS '@MODULE_FILENAME@', 'lwgeom_gt'
591
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
593
CREATEFUNCTION ST_geometry_gt(geometry, geometry)
595
AS '@MODULE_FILENAME@', 'lwgeom_gt'
596
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
598
CREATEFUNCTION geometry_ge(geometry, geometry)
600
AS '@MODULE_FILENAME@', 'lwgeom_ge'
601
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
603
CREATEFUNCTION ST_geometry_ge(geometry, geometry)
605
AS '@MODULE_FILENAME@', 'lwgeom_ge'
606
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
608
CREATEFUNCTION geometry_eq(geometry, geometry)
610
AS '@MODULE_FILENAME@', 'lwgeom_eq'
611
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
613
CREATEFUNCTION ST_geometry_eq(geometry, geometry)
615
AS '@MODULE_FILENAME@', 'lwgeom_eq'
616
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
618
CREATEFUNCTION geometry_cmp(geometry, geometry)
620
AS '@MODULE_FILENAME@', 'lwgeom_cmp'
621
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
623
CREATEFUNCTION ST_geometry_cmp(geometry, geometry)
625
AS '@MODULE_FILENAME@', 'lwgeom_cmp'
626
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
632
LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = ST_geometry_lt,
633
COMMUTATOR = '>', NEGATOR = '>=',
634
RESTRICT = contsel, JOIN = contjoinsel
638
LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = ST_geometry_le,
639
COMMUTATOR = '>=', NEGATOR = '>',
640
RESTRICT = contsel, JOIN = contjoinsel
644
LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = ST_geometry_eq,
645
COMMUTATOR = '=', -- we might implement a faster negator here
646
RESTRICT = contsel, JOIN = contjoinsel
650
LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = ST_geometry_ge,
651
COMMUTATOR = '<=', NEGATOR = '<',
652
RESTRICT = contsel, JOIN = contjoinsel
655
LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = ST_geometry_gt,
656
COMMUTATOR = '<', NEGATOR = '<=',
657
RESTRICT = contsel, JOIN = contjoinsel
660
#if USE_VERSION >= 74
662
CREATE OPERATOR CLASS btree_geometry_ops
663
DEFAULT FOR TYPE geometry USING btree AS
669
FUNCTION 1 geometry_cmp (geometry, geometry);
674
-------------------------------------------------------------------
675
-------------------------------------------------------------------
677
CREATEFUNCTION postgis_gist_sel(opaque, oid, opaque, int4)
679
CREATEFUNCTION postgis_gist_sel (internal, oid, internal, int4)
682
AS '@MODULE_FILENAME@', 'LWGEOM_gist_sel'
686
CREATEFUNCTION ST_postgis_gist_sel(opaque, oid, opaque, int4)
688
CREATEFUNCTION ST_postgis_gist_sel (internal, oid, internal, int4)
691
AS '@MODULE_FILENAME@', 'LWGEOM_gist_sel'
694
#if USE_VERSION == 72
695
CREATEFUNCTION postgis_gist_joinsel(opaque, oid, opaque)
696
#elif USE_VERSION == 73
697
CREATEFUNCTION postgis_gist_joinsel(internal, oid, internal)
699
CREATEFUNCTION postgis_gist_joinsel(internal, oid, internal, smallint)
702
AS '@MODULE_FILENAME@', 'LWGEOM_gist_joinsel'
705
#if USE_VERSION == 72
706
CREATEFUNCTION ST_postgis_gist_joinsel(opaque, oid, opaque)
707
#elif USE_VERSION == 73
708
CREATEFUNCTION ST_postgis_gist_joinsel(internal, oid, internal)
710
CREATEFUNCTION ST_postgis_gist_joinsel(internal, oid, internal, smallint)
713
AS '@MODULE_FILENAME@', 'LWGEOM_gist_joinsel'
716
CREATEFUNCTION geometry_overleft(geometry, geometry)
718
AS '@MODULE_FILENAME@', 'LWGEOM_overleft'
719
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
721
CREATEFUNCTION ST_geometry_overleft(geometry, geometry)
723
AS '@MODULE_FILENAME@', 'LWGEOM_overleft'
724
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
726
CREATEFUNCTION geometry_overright(geometry, geometry)
728
AS '@MODULE_FILENAME@', 'LWGEOM_overright'
729
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
731
CREATEFUNCTION ST_geometry_overright(geometry, geometry)
733
AS '@MODULE_FILENAME@', 'LWGEOM_overright'
734
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
736
CREATEFUNCTION geometry_overabove(geometry, geometry)
738
AS '@MODULE_FILENAME@', 'LWGEOM_overabove'
739
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
741
CREATEFUNCTION ST_geometry_overabove(geometry, geometry)
743
AS '@MODULE_FILENAME@', 'LWGEOM_overabove'
744
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
746
CREATEFUNCTION geometry_overbelow(geometry, geometry)
748
AS '@MODULE_FILENAME@', 'LWGEOM_overbelow'
749
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
751
CREATEFUNCTION ST_geometry_overbelow(geometry, geometry)
753
AS '@MODULE_FILENAME@', 'LWGEOM_overbelow'
754
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
756
CREATEFUNCTION geometry_left(geometry, geometry)
758
AS '@MODULE_FILENAME@', 'LWGEOM_left'
759
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
761
CREATEFUNCTION ST_geometry_left(geometry, geometry)
763
AS '@MODULE_FILENAME@', 'LWGEOM_left'
764
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
766
CREATEFUNCTION geometry_right(geometry, geometry)
768
AS '@MODULE_FILENAME@', 'LWGEOM_right'
769
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
771
CREATEFUNCTION ST_geometry_right(geometry, geometry)
773
AS '@MODULE_FILENAME@', 'LWGEOM_right'
774
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
776
CREATEFUNCTION geometry_above(geometry, geometry)
778
AS '@MODULE_FILENAME@', 'LWGEOM_above'
779
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
781
CREATEFUNCTION ST_geometry_above(geometry, geometry)
783
AS '@MODULE_FILENAME@', 'LWGEOM_above'
784
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
786
CREATEFUNCTION geometry_below(geometry, geometry)
788
AS '@MODULE_FILENAME@', 'LWGEOM_below'
789
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
791
CREATEFUNCTION ST_geometry_below(geometry, geometry)
793
AS '@MODULE_FILENAME@', 'LWGEOM_below'
794
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
796
CREATEFUNCTION geometry_contain(geometry, geometry)
798
AS '@MODULE_FILENAME@', 'LWGEOM_contain'
799
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
801
CREATEFUNCTION ST_geometry_contain(geometry, geometry)
803
AS '@MODULE_FILENAME@', 'LWGEOM_contain'
804
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
806
CREATEFUNCTION geometry_contained(geometry, geometry)
808
AS '@MODULE_FILENAME@', 'LWGEOM_contained'
809
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
811
CREATEFUNCTION ST_geometry_contained(geometry, geometry)
813
AS '@MODULE_FILENAME@', 'LWGEOM_contained'
814
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
816
CREATEFUNCTION geometry_overlap(geometry, geometry)
818
AS '@MODULE_FILENAME@', 'LWGEOM_overlap'
819
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
821
CREATEFUNCTION ST_geometry_overlap(geometry, geometry)
823
AS '@MODULE_FILENAME@', 'LWGEOM_overlap'
824
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
826
CREATEFUNCTION geometry_same(geometry, geometry)
828
AS '@MODULE_FILENAME@', 'LWGEOM_same'
829
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
831
--Availability: 1.2.2
832
CREATEFUNCTION ST_geometry_same(geometry, geometry)
834
AS '@MODULE_FILENAME@', 'LWGEOM_same'
835
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
839
LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = ST_geometry_left,
841
RESTRICT = positionsel, JOIN = positionjoinsel
845
LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = ST_geometry_overleft,
847
RESTRICT = positionsel, JOIN = positionjoinsel
850
CREATE OPERATOR <<| (
851
LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = ST_geometry_below,
853
RESTRICT = positionsel, JOIN = positionjoinsel
856
CREATE OPERATOR &<| (
857
LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = ST_geometry_overbelow,
859
RESTRICT = positionsel, JOIN = positionjoinsel
863
LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = ST_geometry_overlap,
865
RESTRICT = ST_postgis_gist_sel, JOIN = ST_postgis_gist_joinsel
869
LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = ST_geometry_overright,
871
RESTRICT = positionsel, JOIN = positionjoinsel
875
LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = ST_geometry_right,
877
RESTRICT = positionsel, JOIN = positionjoinsel
880
CREATE OPERATOR |&> (
881
LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = ST_geometry_overabove,
883
RESTRICT = positionsel, JOIN = positionjoinsel
886
CREATE OPERATOR |>> (
887
LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = ST_geometry_above,
889
RESTRICT = positionsel, JOIN = positionjoinsel
893
LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = ST_geometry_same,
895
RESTRICT = eqsel, JOIN = eqjoinsel
899
LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = ST_geometry_contained,
901
RESTRICT = contsel, JOIN = contjoinsel
905
LEFTARG = geometry, RIGHTARG = geometry, PROCEDURE = ST_geometry_contain,
907
RESTRICT = contsel, JOIN = contjoinsel
912
#define OPAQUE_TYPE opaque
914
#define OPAQUE_TYPE internal
917
CREATEFUNCTION LWGEOM_gist_consistent(OPAQUE_TYPE,geometry,int4)
919
AS '@MODULE_FILENAME@' ,'LWGEOM_gist_consistent'
922
CREATEFUNCTION LWGEOM_gist_compress(OPAQUE_TYPE)
924
AS '@MODULE_FILENAME@','LWGEOM_gist_compress'
927
CREATEFUNCTION LWGEOM_gist_penalty(OPAQUE_TYPE,OPAQUE_TYPE,OPAQUE_TYPE)
929
AS '@MODULE_FILENAME@' ,'LWGEOM_gist_penalty'
932
CREATEFUNCTION LWGEOM_gist_picksplit(OPAQUE_TYPE, OPAQUE_TYPE)
934
AS '@MODULE_FILENAME@' ,'LWGEOM_gist_picksplit'
937
CREATEFUNCTION LWGEOM_gist_union(bytea, OPAQUE_TYPE)
939
AS '@MODULE_FILENAME@' ,'LWGEOM_gist_union'
942
CREATEFUNCTION LWGEOM_gist_same(box2d, box2d, OPAQUE_TYPE)
944
AS '@MODULE_FILENAME@' ,'LWGEOM_gist_same'
947
CREATEFUNCTION LWGEOM_gist_decompress(OPAQUE_TYPE)
949
AS '@MODULE_FILENAME@' ,'LWGEOM_gist_decompress'
952
-------------------------------------------
953
-------------------------------------------
955
#if USE_VERSION == 72
960
INSERT INTO pg_opclass (opcamid, opcname, opcintype, opcdefault, opckeytype)
962
(SELECT oid FROM pg_am WHERE amname = 'gist'),
964
(SELECT oid FROM pg_type WHERE typname = 'geometry'),
966
(SELECT oid FROM pg_type WHERE typname = 'box2d'));
969
SELECT o.oid AS opoid, o.oprname
970
INTO TABLE rt_ops_tmp
971
FROM pg_operator o, pg_type t
972
WHERE o.oprleft = t.oid
973
AND t.typname = 'geometry';
975
INSERT INTO pg_amop (amopclaid, amopstrategy, amopreqcheck, amopopr)
976
SELECT opcl.oid, 1, true, c.opoid
977
FROM pg_opclass opcl, rt_ops_tmp c
979
opcamid = (SELECT oid FROM pg_am WHERE amname = 'gist')
980
and opcname = 'gist_geometry_ops'
981
and c.oprname = '<<';
983
INSERT INTO pg_amop (amopclaid, amopstrategy, amopreqcheck, amopopr)
984
SELECT opcl.oid, 2, true, c.opoid
985
FROM pg_opclass opcl, rt_ops_tmp c
987
opcamid = (SELECT oid FROM pg_am WHERE amname = 'gist')
988
and opcname = 'gist_geometry_ops'
989
and c.oprname = '&<';
991
INSERT INTO pg_amop (amopclaid, amopstrategy, amopreqcheck, amopopr)
992
SELECT opcl.oid, 3, true, c.opoid
993
FROM pg_opclass opcl, rt_ops_tmp c
995
opcamid = (SELECT oid FROM pg_am WHERE amname = 'gist')
996
and opcname = 'gist_geometry_ops'
997
and c.oprname = '&&';
999
INSERT INTO pg_amop (amopclaid, amopstrategy, amopreqcheck, amopopr)
1000
SELECT opcl.oid, 4, true, c.opoid
1001
FROM pg_opclass opcl, rt_ops_tmp c
1003
opcamid = (SELECT oid FROM pg_am WHERE amname = 'gist')
1004
and opcname = 'gist_geometry_ops'
1005
and c.oprname = '&>';
1007
INSERT INTO pg_amop (amopclaid, amopstrategy, amopreqcheck, amopopr)
1008
SELECT opcl.oid, 5, true, c.opoid
1009
FROM pg_opclass opcl, rt_ops_tmp c
1011
opcamid = (SELECT oid FROM pg_am WHERE amname = 'gist')
1012
and opcname = 'gist_geometry_ops'
1013
and c.oprname = '>>';
1015
INSERT INTO pg_amop (amopclaid, amopstrategy, amopreqcheck, amopopr)
1016
SELECT opcl.oid, 6, true, c.opoid
1017
FROM pg_opclass opcl, rt_ops_tmp c
1019
opcamid = (SELECT oid FROM pg_am WHERE amname = 'gist')
1020
and opcname = 'gist_geometry_ops'
1021
and c.oprname = '~=';
1023
INSERT INTO pg_amop (amopclaid, amopstrategy, amopreqcheck, amopopr)
1024
SELECT opcl.oid, 7, true, c.opoid
1025
FROM pg_opclass opcl, rt_ops_tmp c
1027
opcamid = (SELECT oid FROM pg_am WHERE amname = 'gist')
1028
and opcname = 'gist_geometry_ops'
1029
and c.oprname = '~';
1031
INSERT INTO pg_amop (amopclaid, amopstrategy, amopreqcheck, amopopr)
1032
SELECT opcl.oid, 8, true, c.opoid
1033
FROM pg_opclass opcl, rt_ops_tmp c
1035
opcamid = (SELECT oid FROM pg_am WHERE amname = 'gist')
1036
and opcname = 'gist_geometry_ops'
1037
and c.oprname = '@';
1039
INSERT INTO pg_amop (amopclaid, amopstrategy, amopreqcheck, amopopr)
1040
SELECT opcl.oid, 9, true, c.opoid
1041
FROM pg_opclass opcl, rt_ops_tmp c
1043
opcamid = (SELECT oid FROM pg_am WHERE amname = 'gist')
1044
and opcname = 'gist_geometry_ops'
1045
and c.oprname = '&<|';
1047
INSERT INTO pg_amop (amopclaid, amopstrategy, amopreqcheck, amopopr)
1048
SELECT opcl.oid, 10, true, c.opoid
1049
FROM pg_opclass opcl, rt_ops_tmp c
1051
opcamid = (SELECT oid FROM pg_am WHERE amname = 'gist')
1052
and opcname = 'gist_geometry_ops'
1053
and c.oprname = '<<|';
1055
INSERT INTO pg_amop (amopclaid, amopstrategy, amopreqcheck, amopopr)
1056
SELECT opcl.oid, 11, true, c.opoid
1057
FROM pg_opclass opcl, rt_ops_tmp c
1059
opcamid = (SELECT oid FROM pg_am WHERE amname = 'gist')
1060
and opcname = 'gist_geometry_ops'
1061
and c.oprname = '|>>';
1063
INSERT INTO pg_amop (amopclaid, amopstrategy, amopreqcheck, amopopr)
1064
SELECT opcl.oid, 12, true, c.opoid
1065
FROM pg_opclass opcl, rt_ops_tmp c
1067
opcamid = (SELECT oid FROM pg_am WHERE amname = 'gist')
1068
and opcname = 'gist_geometry_ops'
1069
and c.oprname = '|&>';
1071
DROP TABLE rt_ops_tmp;
1074
INSERT INTO pg_amproc (amopclaid, amprocnum, amproc)
1075
SELECT opcl.oid, 1, pro.oid
1076
FROM pg_opclass opcl, pg_proc pro
1078
opcamid = (SELECT oid FROM pg_am WHERE amname = 'gist')
1079
and opcname = 'gist_geometry_ops'
1080
and proname = 'lwgeom_gist_consistent';
1082
INSERT INTO pg_amproc (amopclaid, amprocnum, amproc)
1083
SELECT opcl.oid, 2, pro.oid
1084
FROM pg_opclass opcl, pg_proc pro
1086
opcamid = (SELECT oid FROM pg_am WHERE amname = 'gist')
1087
and opcname = 'gist_geometry_ops'
1088
and proname = 'lwgeom_gist_union';
1090
INSERT INTO pg_amproc (amopclaid, amprocnum, amproc)
1091
SELECT opcl.oid, 3, pro.oid
1092
FROM pg_opclass opcl, pg_proc pro
1094
opcamid = (SELECT oid FROM pg_am WHERE amname = 'gist')
1095
and opcname = 'gist_geometry_ops'
1096
and proname = 'lwgeom_gist_compress';
1098
INSERT INTO pg_amproc (amopclaid, amprocnum, amproc)
1099
SELECT opcl.oid, 4, pro.oid
1100
FROM pg_opclass opcl, pg_proc pro
1102
opcamid = (SELECT oid FROM pg_am WHERE amname = 'gist')
1103
and opcname = 'gist_geometry_ops'
1104
and proname = 'lwgeom_gist_decompress';
1106
INSERT INTO pg_amproc (amopclaid, amprocnum, amproc)
1107
SELECT opcl.oid, 5, pro.oid
1108
FROM pg_opclass opcl, pg_proc pro
1110
opcamid = (SELECT oid FROM pg_am WHERE amname = 'gist')
1111
and opcname = 'gist_geometry_ops'
1112
and proname = 'lwgeom_gist_penalty';
1114
INSERT INTO pg_amproc (amopclaid, amprocnum, amproc)
1115
SELECT opcl.oid, 6, pro.oid
1116
FROM pg_opclass opcl, pg_proc pro
1118
opcamid = (SELECT oid FROM pg_am WHERE amname = 'gist')
1119
and opcname = 'gist_geometry_ops'
1120
and proname = 'lwgeom_gist_picksplit';
1122
INSERT INTO pg_amproc (amopclaid, amprocnum, amproc)
1123
SELECT opcl.oid, 7, pro.oid
1124
FROM pg_opclass opcl, pg_proc pro
1126
opcamid = (SELECT oid FROM pg_am WHERE amname = 'gist')
1127
and opcname = 'gist_geometry_ops'
1128
and proname = 'lwgeom_gist_same';
1132
#if USE_VERSION < 84
1137
CREATE OPERATOR CLASS gist_geometry_ops
1138
DEFAULT FOR TYPE geometry USING gist AS
1139
OPERATOR 1 << RECHECK,
1140
OPERATOR 2 &< RECHECK,
1141
OPERATOR 3 && RECHECK,
1142
OPERATOR 4 &> RECHECK,
1143
OPERATOR 5 >> RECHECK,
1144
OPERATOR 6 ~= RECHECK,
1145
OPERATOR 7 ~ RECHECK,
1146
OPERATOR 8 @ RECHECK,
1147
OPERATOR 9 &<| RECHECK,
1148
OPERATOR 10 <<| RECHECK,
1149
OPERATOR 11 |>> RECHECK,
1150
OPERATOR 12 |&> RECHECK,
1151
FUNCTION 1 LWGEOM_gist_consistent (internal, geometry, int4),
1152
FUNCTION 2 LWGEOM_gist_union (bytea, internal),
1153
FUNCTION 3 LWGEOM_gist_compress (internal),
1154
FUNCTION 4 LWGEOM_gist_decompress (internal),
1155
FUNCTION 5 LWGEOM_gist_penalty (internal, internal, internal),
1156
FUNCTION 6 LWGEOM_gist_picksplit (internal, internal),
1157
FUNCTION 7 LWGEOM_gist_same (box2d, box2d, internal);
1160
SET opckeytype = (SELECT oid FROM pg_type
1161
WHERE typname = 'box2d'
1162
AND typnamespace = (SELECT oid FROM pg_namespace
1163
WHERE nspname=current_schema()))
1164
WHERE opcname = 'gist_geometry_ops'
1165
AND opcnamespace = (SELECT oid from pg_namespace
1166
WHERE nspname=current_schema());
1174
CREATE OPERATOR CLASS gist_geometry_ops
1175
DEFAULT FOR TYPE geometry USING gist AS
1189
FUNCTION 1 LWGEOM_gist_consistent (internal, geometry, int4),
1190
FUNCTION 2 LWGEOM_gist_union (bytea, internal),
1191
FUNCTION 3 LWGEOM_gist_compress (internal),
1192
FUNCTION 4 LWGEOM_gist_decompress (internal),
1193
FUNCTION 5 LWGEOM_gist_penalty (internal, internal, internal),
1194
FUNCTION 6 LWGEOM_gist_picksplit (internal, internal),
1195
FUNCTION 7 LWGEOM_gist_same (box2d, box2d, internal);
1201
-------------------------------------------
1202
-------------------------------------------
1204
CREATEFUNCTION addBBOX(geometry)
1206
AS '@MODULE_FILENAME@','LWGEOM_addBBOX'
1207
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
1209
CREATEFUNCTION ST_addBBOX(geometry)
1211
AS '@MODULE_FILENAME@','LWGEOM_addBBOX'
1212
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
1214
CREATEFUNCTION dropBBOX(geometry)
1216
AS '@MODULE_FILENAME@','LWGEOM_dropBBOX'
1217
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
1219
CREATEFUNCTION ST_dropBBOX(geometry)
1221
AS '@MODULE_FILENAME@','LWGEOM_dropBBOX'
1222
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
1224
CREATEFUNCTION getSRID(geometry)
1226
AS '@MODULE_FILENAME@','LWGEOM_getSRID'
1227
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
1229
CREATEFUNCTION getSRID(geometry)
1231
AS '@MODULE_FILENAME@','LWGEOM_getSRID'
1232
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
1234
CREATEFUNCTION getBBOX(geometry)
1236
AS '@MODULE_FILENAME@','LWGEOM_to_BOX2DFLOAT4'
1237
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
1239
CREATEFUNCTION getBBOX(geometry)
1241
AS '@MODULE_FILENAME@','LWGEOM_to_BOX2DFLOAT4'
1242
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
1244
-------------------------------------------
1246
-------------------------------------------
1248
CREATEFUNCTION srid(chip)
1250
AS '@MODULE_FILENAME@','CHIP_getSRID'
1251
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1253
CREATEFUNCTION ST_srid(chip)
1255
AS '@MODULE_FILENAME@','CHIP_getSRID'
1256
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1258
CREATEFUNCTION height(chip)
1260
AS '@MODULE_FILENAME@','CHIP_getHeight'
1261
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1263
CREATEFUNCTION ST_height(chip)
1265
AS '@MODULE_FILENAME@','CHIP_getHeight'
1266
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1268
CREATEFUNCTION factor(chip)
1270
AS '@MODULE_FILENAME@','CHIP_getFactor'
1271
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1273
CREATEFUNCTION ST_factor(chip)
1275
AS '@MODULE_FILENAME@','CHIP_getFactor'
1276
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1278
CREATEFUNCTION width(chip)
1280
AS '@MODULE_FILENAME@','CHIP_getWidth'
1281
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1283
CREATEFUNCTION ST_width(chip)
1285
AS '@MODULE_FILENAME@','CHIP_getWidth'
1286
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1288
CREATEFUNCTION datatype(chip)
1290
AS '@MODULE_FILENAME@','CHIP_getDatatype'
1291
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1293
CREATEFUNCTION ST_datatype(chip)
1295
AS '@MODULE_FILENAME@','CHIP_getDatatype'
1296
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1298
CREATEFUNCTION compression(chip)
1300
AS '@MODULE_FILENAME@','CHIP_getCompression'
1301
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1303
CREATEFUNCTION ST_compression(chip)
1305
AS '@MODULE_FILENAME@','CHIP_getCompression'
1306
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1308
CREATEFUNCTION setSRID(chip,int4)
1310
AS '@MODULE_FILENAME@','CHIP_setSRID'
1311
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
1313
CREATEFUNCTION setFactor(chip,float4)
1315
AS '@MODULE_FILENAME@','CHIP_setFactor'
1316
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
1318
CREATEFUNCTION ST_setFactor(chip,float4)
1320
AS '@MODULE_FILENAME@','CHIP_setFactor'
1321
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
1323
------------------------------------------------------------------------
1324
------------------------------------------------------------------------
1326
CREATEFUNCTION mem_size(geometry)
1328
AS '@MODULE_FILENAME@', 'LWGEOM_mem_size'
1329
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1331
CREATEFUNCTION ST_mem_size(geometry)
1333
AS '@MODULE_FILENAME@', 'LWGEOM_mem_size'
1334
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1336
CREATEFUNCTION summary(geometry)
1338
AS '@MODULE_FILENAME@', 'LWGEOM_summary'
1339
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1341
CREATEFUNCTION ST_summary(geometry)
1343
AS '@MODULE_FILENAME@', 'LWGEOM_summary'
1344
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1346
CREATEFUNCTION npoints(geometry)
1348
AS '@MODULE_FILENAME@', 'LWGEOM_npoints'
1349
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1351
CREATEFUNCTION ST_npoints(geometry)
1353
AS '@MODULE_FILENAME@', 'LWGEOM_npoints'
1354
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1356
CREATEFUNCTION nrings(geometry)
1358
AS '@MODULE_FILENAME@', 'LWGEOM_nrings'
1359
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1361
CREATEFUNCTION ST_nrings(geometry)
1363
AS '@MODULE_FILENAME@', 'LWGEOM_nrings'
1364
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1366
------------------------------------------------------------------------
1367
------------------------------------------------------------------------
1369
CREATEFUNCTION length3d(geometry)
1371
AS '@MODULE_FILENAME@', 'LWGEOM_length_linestring'
1372
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1374
CREATEFUNCTION ST_length3d(geometry)
1376
AS '@MODULE_FILENAME@', 'LWGEOM_length_linestring'
1377
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1379
CREATEFUNCTION length2d(geometry)
1381
AS '@MODULE_FILENAME@', 'LWGEOM_length2d_linestring'
1382
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1384
CREATEFUNCTION ST_length2d(geometry)
1386
AS '@MODULE_FILENAME@', 'LWGEOM_length2d_linestring'
1387
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1389
CREATEFUNCTION length(geometry)
1391
AS '@MODULE_FILENAME@', 'LWGEOM_length_linestring'
1392
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1394
CREATEFUNCTION ST_Length(geometry)
1396
AS '@MODULE_FILENAME@', 'LWGEOM_length2d_linestring'
1397
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1399
CREATEFUNCTION length3d_spheroid(geometry, spheroid)
1401
AS '@MODULE_FILENAME@','LWGEOM_length_ellipsoid_linestring'
1402
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1404
CREATEFUNCTION ST_length3d_spheroid(geometry, spheroid)
1406
AS '@MODULE_FILENAME@','LWGEOM_length_ellipsoid_linestring'
1407
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1409
CREATEFUNCTION length_spheroid(geometry, spheroid)
1411
AS '@MODULE_FILENAME@','LWGEOM_length_ellipsoid_linestring'
1412
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1414
CREATEFUNCTION ST_length_spheroid(geometry, spheroid)
1416
AS '@MODULE_FILENAME@','LWGEOM_length_ellipsoid_linestring'
1417
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1419
CREATEFUNCTION length2d_spheroid(geometry, spheroid)
1421
AS '@MODULE_FILENAME@','LWGEOM_length2d_ellipsoid_linestring'
1422
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1424
CREATEFUNCTION ST_length2d_spheroid(geometry, spheroid)
1426
AS '@MODULE_FILENAME@','LWGEOM_length2d_ellipsoid_linestring'
1427
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1429
CREATEFUNCTION perimeter3d(geometry)
1431
AS '@MODULE_FILENAME@', 'LWGEOM_perimeter_poly'
1432
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1434
CREATEFUNCTION ST_perimeter3d(geometry)
1436
AS '@MODULE_FILENAME@', 'LWGEOM_perimeter_poly'
1437
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1439
CREATEFUNCTION perimeter2d(geometry)
1441
AS '@MODULE_FILENAME@', 'LWGEOM_perimeter2d_poly'
1442
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1444
CREATEFUNCTION ST_perimeter2d(geometry)
1446
AS '@MODULE_FILENAME@', 'LWGEOM_perimeter2d_poly'
1447
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1449
CREATEFUNCTION perimeter(geometry)
1451
AS '@MODULE_FILENAME@', 'LWGEOM_perimeter_poly'
1452
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1454
CREATEFUNCTION ST_Perimeter(geometry)
1456
AS '@MODULE_FILENAME@', 'LWGEOM_perimeter2d_poly'
1457
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1459
CREATEFUNCTION area2d(geometry)
1461
AS '@MODULE_FILENAME@', 'LWGEOM_area_polygon'
1462
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1464
CREATEFUNCTION ST_area2d(geometry)
1466
AS '@MODULE_FILENAME@', 'LWGEOM_area_polygon'
1467
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1469
CREATEFUNCTION area(geometry)
1471
AS '@MODULE_FILENAME@','LWGEOM_area_polygon'
1472
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1474
CREATEFUNCTION ST_Area(geometry)
1476
AS '@MODULE_FILENAME@','LWGEOM_area_polygon'
1477
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1479
CREATEFUNCTION distance_spheroid(geometry,geometry,spheroid)
1481
AS '@MODULE_FILENAME@','LWGEOM_distance_ellipsoid_point'
1482
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1484
CREATEFUNCTION ST_distance_spheroid(geometry,geometry,spheroid)
1486
AS '@MODULE_FILENAME@','LWGEOM_distance_ellipsoid_point'
1487
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1489
CREATEFUNCTION distance_sphere(geometry,geometry)
1491
AS '@MODULE_FILENAME@','LWGEOM_distance_sphere'
1492
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1494
CREATEFUNCTION ST_distance_sphere(geometry,geometry)
1496
AS '@MODULE_FILENAME@','LWGEOM_distance_sphere'
1497
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1499
CREATEFUNCTION distance(geometry,geometry)
1501
AS '@MODULE_FILENAME@', 'LWGEOM_mindistance2d'
1502
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
1504
CREATEFUNCTION ST_Distance(geometry,geometry)
1506
AS '@MODULE_FILENAME@', 'LWGEOM_mindistance2d'
1507
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
1509
CREATEFUNCTION max_distance(geometry,geometry)
1511
AS '@MODULE_FILENAME@', 'LWGEOM_maxdistance2d_linestring'
1512
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
1514
CREATEFUNCTION ST_max_distance(geometry,geometry)
1516
AS '@MODULE_FILENAME@', 'LWGEOM_maxdistance2d_linestring'
1517
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
1519
CREATEFUNCTION point_inside_circle(geometry,float8,float8,float8)
1521
AS '@MODULE_FILENAME@', 'LWGEOM_inside_circle_point'
1522
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1524
CREATEFUNCTION ST_point_inside_circle(geometry,float8,float8,float8)
1526
AS '@MODULE_FILENAME@', 'LWGEOM_inside_circle_point'
1527
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1529
CREATEFUNCTION azimuth(geometry,geometry)
1531
AS '@MODULE_FILENAME@', 'LWGEOM_azimuth'
1532
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1534
CREATEFUNCTION ST_azimuth(geometry,geometry)
1536
AS '@MODULE_FILENAME@', 'LWGEOM_azimuth'
1537
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1539
------------------------------------------------------------------------
1540
------------------------------------------------------------------------
1542
CREATEFUNCTION force_2d(geometry)
1544
AS '@MODULE_FILENAME@', 'LWGEOM_force_2d'
1545
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1547
CREATEFUNCTION ST_force_2d(geometry)
1549
AS '@MODULE_FILENAME@', 'LWGEOM_force_2d'
1550
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1552
CREATEFUNCTION force_3dz(geometry)
1554
AS '@MODULE_FILENAME@', 'LWGEOM_force_3dz'
1555
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1557
CREATEFUNCTION ST_force_3dz(geometry)
1559
AS '@MODULE_FILENAME@', 'LWGEOM_force_3dz'
1560
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1562
CREATEFUNCTION force_3d(geometry)
1564
AS '@MODULE_FILENAME@', 'LWGEOM_force_3dz'
1565
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1567
CREATEFUNCTION ST_force_3d(geometry)
1569
AS '@MODULE_FILENAME@', 'LWGEOM_force_3dz'
1570
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1572
CREATEFUNCTION force_3dm(geometry)
1574
AS '@MODULE_FILENAME@', 'LWGEOM_force_3dm'
1575
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1577
CREATEFUNCTION ST_force_3dm(geometry)
1579
AS '@MODULE_FILENAME@', 'LWGEOM_force_3dm'
1580
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1582
CREATEFUNCTION force_4d(geometry)
1584
AS '@MODULE_FILENAME@', 'LWGEOM_force_4d'
1585
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1587
CREATEFUNCTION ST_force_4d(geometry)
1589
AS '@MODULE_FILENAME@', 'LWGEOM_force_4d'
1590
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1592
CREATEFUNCTION force_collection(geometry)
1594
AS '@MODULE_FILENAME@', 'LWGEOM_force_collection'
1595
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1597
CREATEFUNCTION ST_force_collection(geometry)
1599
AS '@MODULE_FILENAME@', 'LWGEOM_force_collection'
1600
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1602
CREATEFUNCTION multi(geometry)
1604
AS '@MODULE_FILENAME@', 'LWGEOM_force_multi'
1605
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1607
CREATEFUNCTION ST_multi(geometry)
1609
AS '@MODULE_FILENAME@', 'LWGEOM_force_multi'
1610
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
1612
CREATEFUNCTION collector(geometry, geometry)
1614
AS '@MODULE_FILENAME@', 'LWGEOM_collect'
1615
LANGUAGE 'C' _IMMUTABLE;
1617
CREATEFUNCTION ST_collector(geometry, geometry)
1619
AS '@MODULE_FILENAME@', 'LWGEOM_collect'
1620
LANGUAGE 'C' _IMMUTABLE;
1622
CREATEFUNCTION collect(geometry, geometry)
1624
AS '@MODULE_FILENAME@', 'LWGEOM_collect'
1625
LANGUAGE 'C' _IMMUTABLE;
1627
CREATEFUNCTION ST_collect(geometry, geometry)
1629
AS '@MODULE_FILENAME@', 'LWGEOM_collect'
1630
LANGUAGE 'C' _IMMUTABLE;
1632
CREATE AGGREGATE memcollect(
1634
basetype = geometry,
1638
CREATE AGGREGATE ST_memcollect(
1640
basetype = geometry,
1644
CREATEFUNCTION geom_accum (geometry[],geometry)
1646
AS '@MODULE_FILENAME@', 'LWGEOM_accum'
1647
LANGUAGE 'C' _IMMUTABLE;
1649
CREATEFUNCTION ST_geom_accum (geometry[],geometry)
1651
AS '@MODULE_FILENAME@', 'LWGEOM_accum'
1652
LANGUAGE 'C' _IMMUTABLE;
1654
CREATE AGGREGATE accum (
1655
sfunc = ST_geom_accum,
1656
basetype = geometry,
1660
CREATE AGGREGATE ST_accum (
1661
sfunc = ST_geom_accum,
1662
basetype = geometry,
1666
CREATEFUNCTION collect_garray (geometry[])
1668
AS '@MODULE_FILENAME@', 'LWGEOM_collect_garray'
1669
LANGUAGE 'C' _IMMUTABLE_STRICT;
1671
CREATEFUNCTION ST_collect_garray (geometry[])
1673
AS '@MODULE_FILENAME@', 'LWGEOM_collect_garray'
1674
LANGUAGE 'C' _IMMUTABLE_STRICT;
1676
CREATE AGGREGATE collect (
1677
sfunc = ST_geom_accum,
1678
basetype = geometry,
1680
finalfunc = ST_collect_garray
1684
CREATE AGGREGATE ST_collect (
1685
sfunc = ST_geom_accum,
1686
basetype = geometry,
1688
finalfunc = ST_collect_garray
1691
CREATEFUNCTION expand(box3d,float8)
1693
AS '@MODULE_FILENAME@', 'BOX3D_expand'
1694
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1696
CREATEFUNCTION ST_Expand(box3d,float8)
1698
AS '@MODULE_FILENAME@', 'BOX3D_expand'
1699
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1701
CREATEFUNCTION expand(box2d,float8)
1703
AS '@MODULE_FILENAME@', 'BOX2DFLOAT4_expand'
1704
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1706
CREATEFUNCTION ST_expand(box2d,float8)
1708
AS '@MODULE_FILENAME@', 'BOX2DFLOAT4_expand'
1709
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1711
CREATEFUNCTION expand(geometry,float8)
1713
AS '@MODULE_FILENAME@', 'LWGEOM_expand'
1714
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1716
CREATEFUNCTION ST_expand(geometry,float8)
1718
AS '@MODULE_FILENAME@', 'LWGEOM_expand'
1719
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1721
CREATEFUNCTION envelope(geometry)
1723
AS '@MODULE_FILENAME@', 'LWGEOM_envelope'
1724
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1726
CREATEFUNCTION ST_Envelope(geometry)
1728
AS '@MODULE_FILENAME@', 'LWGEOM_envelope'
1729
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1731
CREATEFUNCTION reverse(geometry)
1733
AS '@MODULE_FILENAME@', 'LWGEOM_reverse'
1734
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1736
CREATEFUNCTION ST_Reverse(geometry)
1738
AS '@MODULE_FILENAME@', 'LWGEOM_reverse'
1739
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1741
CREATEFUNCTION ForceRHR(geometry)
1743
AS '@MODULE_FILENAME@', 'LWGEOM_forceRHR_poly'
1744
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1746
CREATEFUNCTION ST_ForceRHR(geometry)
1748
AS '@MODULE_FILENAME@', 'LWGEOM_forceRHR_poly'
1749
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1751
CREATEFUNCTION noop(geometry)
1753
AS '@MODULE_FILENAME@', 'LWGEOM_noop'
1754
LANGUAGE 'C' _VOLATILE_STRICT; -- WITH (iscachable,isstrict);
1756
CREATEFUNCTION ST_noop(geometry)
1758
AS '@MODULE_FILENAME@', 'LWGEOM_noop'
1759
LANGUAGE 'C' _VOLATILE_STRICT; -- WITH (iscachable,isstrict);
1761
CREATEFUNCTION zmflag(geometry)
1763
AS '@MODULE_FILENAME@', 'LWGEOM_zmflag'
1764
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1766
CREATEFUNCTION ST_zmflag(geometry)
1768
AS '@MODULE_FILENAME@', 'LWGEOM_zmflag'
1769
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1771
CREATEFUNCTION hasBBOX(geometry)
1773
AS '@MODULE_FILENAME@', 'LWGEOM_hasBBOX'
1774
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1776
CREATEFUNCTION ST_HasBBOX(geometry)
1778
AS '@MODULE_FILENAME@', 'LWGEOM_hasBBOX'
1779
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1781
CREATEFUNCTION ndims(geometry)
1783
AS '@MODULE_FILENAME@', 'LWGEOM_ndims'
1784
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1786
CREATEFUNCTION ST_NDims(geometry)
1788
AS '@MODULE_FILENAME@', 'LWGEOM_ndims'
1789
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1791
CREATEFUNCTION AsEWKT(geometry)
1793
AS '@MODULE_FILENAME@','LWGEOM_asEWKT'
1794
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
1796
CREATEFUNCTION ST_AsEWKT(geometry)
1798
AS '@MODULE_FILENAME@','LWGEOM_asEWKT'
1799
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
1801
CREATEFUNCTION AsEWKB(geometry)
1803
AS '@MODULE_FILENAME@','WKBFromLWGEOM'
1804
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
1806
CREATEFUNCTION ST_AsEWKB(geometry)
1808
AS '@MODULE_FILENAME@','WKBFromLWGEOM'
1809
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
1811
CREATEFUNCTION AsHEXEWKB(geometry)
1813
AS '@MODULE_FILENAME@','LWGEOM_asHEXEWKB'
1814
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
1816
CREATEFUNCTION ST_AsHEXEWKB(geometry)
1818
AS '@MODULE_FILENAME@','LWGEOM_asHEXEWKB'
1819
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
1821
CREATEFUNCTION AsHEXEWKB(geometry, text)
1823
AS '@MODULE_FILENAME@','LWGEOM_asHEXEWKB'
1824
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
1826
CREATEFUNCTION ST_AsHEXEWKB(geometry, text)
1828
AS '@MODULE_FILENAME@','LWGEOM_asHEXEWKB'
1829
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
1831
CREATEFUNCTION AsEWKB(geometry,text)
1833
AS '@MODULE_FILENAME@','WKBFromLWGEOM'
1834
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
1836
CREATEFUNCTION ST_AsEWKB(geometry,text)
1838
AS '@MODULE_FILENAME@','WKBFromLWGEOM'
1839
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
1841
CREATEFUNCTION GeomFromEWKB(bytea)
1843
AS '@MODULE_FILENAME@','LWGEOMFromWKB'
1844
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
1846
CREATEFUNCTION ST_GeomFromEWKB(bytea)
1848
AS '@MODULE_FILENAME@','LWGEOMFromWKB'
1849
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
1851
CREATEFUNCTION GeomFromEWKT(text)
1853
AS '@MODULE_FILENAME@','parse_WKT_lwgeom'
1854
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
1856
CREATEFUNCTION ST_GeomFromEWKT(text)
1858
AS '@MODULE_FILENAME@','parse_WKT_lwgeom'
1859
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
1861
CREATEFUNCTION cache_bbox()
1863
AS '@MODULE_FILENAME@'
1866
CREATEFUNCTION ST_Cache_BBox()
1868
AS '@MODULE_FILENAME@','cache_bbox'
1871
------------------------------------------------------------------------
1872
------------------------------------------------------------------------
1874
CREATEFUNCTION MakePoint(float8, float8)
1876
AS '@MODULE_FILENAME@', 'LWGEOM_makepoint'
1877
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1879
CREATEFUNCTION ST_MakePoint(float8, float8)
1881
AS '@MODULE_FILENAME@', 'LWGEOM_makepoint'
1882
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1884
CREATEFUNCTION MakePoint(float8, float8, float8)
1886
AS '@MODULE_FILENAME@', 'LWGEOM_makepoint'
1887
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1889
CREATEFUNCTION ST_MakePoint(float8, float8, float8)
1891
AS '@MODULE_FILENAME@', 'LWGEOM_makepoint'
1892
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1894
CREATEFUNCTION MakePoint(float8, float8, float8, float8)
1896
AS '@MODULE_FILENAME@', 'LWGEOM_makepoint'
1897
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1899
CREATEFUNCTION ST_MakePoint(float8, float8, float8, float8)
1901
AS '@MODULE_FILENAME@', 'LWGEOM_makepoint'
1902
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1904
CREATEFUNCTION MakePointM(float8, float8, float8)
1906
AS '@MODULE_FILENAME@', 'LWGEOM_makepoint3dm'
1907
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1909
CREATEFUNCTION ST_MakePointM(float8, float8, float8)
1911
AS '@MODULE_FILENAME@', 'LWGEOM_makepoint3dm'
1912
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1914
CREATEFUNCTION MakeBox2d(geometry, geometry)
1916
AS '@MODULE_FILENAME@', 'BOX2DFLOAT4_construct'
1917
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1919
CREATEFUNCTION ST_MakeBox2d(geometry, geometry)
1921
AS '@MODULE_FILENAME@', 'BOX2DFLOAT4_construct'
1922
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1924
CREATEFUNCTION MakeBox3d(geometry, geometry)
1926
AS '@MODULE_FILENAME@', 'BOX3D_construct'
1927
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1929
CREATEFUNCTION ST_MakeBox3d(geometry, geometry)
1931
AS '@MODULE_FILENAME@', 'BOX3D_construct'
1932
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1934
CREATEFUNCTION makeline_garray (geometry[])
1936
AS '@MODULE_FILENAME@', 'LWGEOM_makeline_garray'
1937
LANGUAGE 'C' _IMMUTABLE_STRICT;
1939
CREATEFUNCTION ST_MakeLine_GArray (geometry[])
1941
AS '@MODULE_FILENAME@', 'LWGEOM_makeline_garray'
1942
LANGUAGE 'C' _IMMUTABLE_STRICT;
1944
CREATEFUNCTION LineFromMultiPoint(geometry)
1946
AS '@MODULE_FILENAME@', 'LWGEOM_line_from_mpoint'
1947
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1949
CREATEFUNCTION ST_LineFromMultiPoint(geometry)
1951
AS '@MODULE_FILENAME@', 'LWGEOM_line_from_mpoint'
1952
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1954
CREATEFUNCTION MakeLine(geometry, geometry)
1956
AS '@MODULE_FILENAME@', 'LWGEOM_makeline'
1957
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1959
CREATEFUNCTION ST_MakeLine(geometry, geometry)
1961
AS '@MODULE_FILENAME@', 'LWGEOM_makeline'
1962
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1964
CREATEFUNCTION AddPoint(geometry, geometry)
1966
AS '@MODULE_FILENAME@', 'LWGEOM_addpoint'
1967
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1969
CREATEFUNCTION ST_AddPoint(geometry, geometry)
1971
AS '@MODULE_FILENAME@', 'LWGEOM_addpoint'
1972
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1974
CREATEFUNCTION AddPoint(geometry, geometry, integer)
1976
AS '@MODULE_FILENAME@', 'LWGEOM_addpoint'
1977
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1979
CREATEFUNCTION ST_AddPoint(geometry, geometry, integer)
1981
AS '@MODULE_FILENAME@', 'LWGEOM_addpoint'
1982
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1984
CREATEFUNCTION RemovePoint(geometry, integer)
1986
AS '@MODULE_FILENAME@', 'LWGEOM_removepoint'
1987
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1989
CREATEFUNCTION ST_RemovePoint(geometry, integer)
1991
AS '@MODULE_FILENAME@', 'LWGEOM_removepoint'
1992
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1994
CREATEFUNCTION SetPoint(geometry, integer, geometry)
1996
AS '@MODULE_FILENAME@', 'LWGEOM_setpoint_linestring'
1997
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
1999
CREATEFUNCTION ST_SetPoint(geometry, integer, geometry)
2001
AS '@MODULE_FILENAME@', 'LWGEOM_setpoint_linestring'
2002
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
2004
CREATE AGGREGATE makeline (
2006
basetype = geometry,
2008
finalfunc = makeline_garray
2011
CREATE AGGREGATE ST_MakeLine (
2013
basetype = geometry,
2015
finalfunc = ST_makeline_garray
2018
CREATEFUNCTION MakePolygon(geometry, geometry[])
2020
AS '@MODULE_FILENAME@', 'LWGEOM_makepoly'
2021
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
2023
CREATEFUNCTION ST_MakePolygon(geometry, geometry[])
2025
AS '@MODULE_FILENAME@', 'LWGEOM_makepoly'
2026
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
2028
CREATEFUNCTION MakePolygon(geometry)
2030
AS '@MODULE_FILENAME@', 'LWGEOM_makepoly'
2031
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
2033
CREATEFUNCTION ST_MakePolygon(geometry)
2035
AS '@MODULE_FILENAME@', 'LWGEOM_makepoly'
2036
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
2038
CREATEFUNCTION BuildArea(geometry)
2040
AS '@MODULE_FILENAME@', 'LWGEOM_buildarea'
2041
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
2043
CREATEFUNCTION ST_BuildArea(geometry)
2045
AS '@MODULE_FILENAME@', 'LWGEOM_buildarea'
2046
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
2048
CREATEFUNCTION Polygonize_GArray (geometry[])
2050
AS '@MODULE_FILENAME@', 'polygonize_garray'
2051
LANGUAGE 'C' _IMMUTABLE_STRICT;
2053
CREATEFUNCTION ST_Polygonize_GArray (geometry[])
2055
AS '@MODULE_FILENAME@', 'polygonize_garray'
2056
LANGUAGE 'C' _IMMUTABLE_STRICT;
2058
CREATEFUNCTION LineMerge(geometry)
2060
AS '@MODULE_FILENAME@', 'linemerge'
2061
LANGUAGE 'C' _IMMUTABLE_STRICT;
2063
CREATEFUNCTION ST_LineMerge(geometry)
2065
AS '@MODULE_FILENAME@', 'linemerge'
2066
LANGUAGE 'C' _IMMUTABLE_STRICT;
2068
CREATE AGGREGATE Polygonize (
2070
basetype = geometry,
2072
finalfunc = polygonize_garray
2075
CREATE AGGREGATE ST_Polygonize (
2076
sfunc = ST_geom_accum,
2077
basetype = geometry,
2079
finalfunc = ST_polygonize_garray
2082
#if USE_VERSION > 72
2084
CREATE TYPE geometry_dump AS (path integer[], geom geometry);
2086
CREATEFUNCTION Dump(geometry)
2087
RETURNS SETOF geometry_dump
2088
AS '@MODULE_FILENAME@', 'LWGEOM_dump'
2089
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
2091
CREATEFUNCTION ST_Dump(geometry)
2092
RETURNS SETOF geometry_dump
2093
AS '@MODULE_FILENAME@', 'LWGEOM_dump'
2094
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
2096
CREATEFUNCTION DumpRings(geometry)
2097
RETURNS SETOF geometry_dump
2098
AS '@MODULE_FILENAME@', 'LWGEOM_dump_rings'
2099
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
2101
CREATEFUNCTION ST_DumpRings(geometry)
2102
RETURNS SETOF geometry_dump
2103
AS '@MODULE_FILENAME@', 'LWGEOM_dump_rings'
2104
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
2108
------------------------------------------------------------------------
2113
CREATEFUNCTION combine_bbox(box2d,geometry)
2115
AS '@MODULE_FILENAME@', 'BOX2DFLOAT4_combine'
2116
LANGUAGE 'C' _IMMUTABLE;
2118
CREATEFUNCTION ST_Combine_BBox(box2d,geometry)
2120
AS '@MODULE_FILENAME@', 'BOX2DFLOAT4_combine'
2121
LANGUAGE 'C' _IMMUTABLE;
2123
CREATE AGGREGATE Extent(
2124
sfunc = ST_combine_bbox,
2125
basetype = geometry,
2129
CREATE AGGREGATE ST_Extent(
2130
sfunc = ST_combine_bbox,
2131
basetype = geometry,
2135
CREATEFUNCTION combine_bbox(box3d,geometry)
2137
AS '@MODULE_FILENAME@', 'BOX3D_combine'
2138
LANGUAGE 'C' _IMMUTABLE;
2140
CREATEFUNCTION ST_Combine_BBox(box3d,geometry)
2142
AS '@MODULE_FILENAME@', 'BOX3D_combine'
2143
LANGUAGE 'C' _IMMUTABLE;
2145
CREATE AGGREGATE Extent3d(
2146
sfunc = combine_bbox,
2147
basetype = geometry,
2151
CREATE AGGREGATE ST_Extent3d(
2152
sfunc = ST_combine_bbox,
2153
basetype = geometry,
2157
-----------------------------------------------------------------------
2158
-----------------------------------------------------------------------
2161
-----------------------------------------------------------------------
2162
CREATEFUNCTION create_histogram2d(box2d,int)
2164
AS '@MODULE_FILENAME@','create_lwhistogram2d'
2165
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
2167
CREATEFUNCTION ST_create_histogram2d(box2d,int)
2169
AS '@MODULE_FILENAME@','create_lwhistogram2d'
2170
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
2172
-----------------------------------------------------------------------
2173
-----------------------------------------------------------------------
2174
CREATEFUNCTION build_histogram2d (histogram2d,text,text)
2176
AS '@MODULE_FILENAME@','build_lwhistogram2d'
2177
LANGUAGE 'C' _STABLE_STRICT; -- WITH (isstrict);
2179
CREATEFUNCTION ST_build_histogram2d (histogram2d,text,text)
2181
AS '@MODULE_FILENAME@','build_lwhistogram2d'
2182
LANGUAGE 'C' _STABLE_STRICT; -- WITH (isstrict);
2184
#if USE_VERSION >= 73
2185
-----------------------------------------------------------------------
2186
-----------------------------------------------------------------------
2187
-----------------------------------------------------------------------
2188
CREATEFUNCTION build_histogram2d (histogram2d,text,text,text)
2192
EXECUTE ''SET local search_path = ''||$2||'',public'';
2193
RETURN public.build_histogram2d($1,$3,$4);
2196
LANGUAGE 'plpgsql' _STABLE_STRICT; -- WITH (isstrict);
2198
CREATEFUNCTION ST_build_histogram2d (histogram2d,text,text,text)
2202
EXECUTE ''SET local search_path = ''||$2||'',public'';
2203
RETURN public.build_histogram2d($1,$3,$4);
2206
LANGUAGE 'plpgsql' _STABLE_STRICT; -- WITH (isstrict);
2210
-----------------------------------------------------------------------
2211
-----------------------------------------------------------------------
2212
CREATEFUNCTION explode_histogram2d (histogram2d,text)
2214
AS '@MODULE_FILENAME@','explode_lwhistogram2d'
2215
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
2217
CREATEFUNCTION ST_explode_histogram2d (histogram2d,text)
2219
AS '@MODULE_FILENAME@','explode_lwhistogram2d'
2220
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
2222
-----------------------------------------------------------------------
2223
-----------------------------------------------------------------------
2224
CREATEFUNCTION estimate_histogram2d(histogram2d,box2d)
2226
AS '@MODULE_FILENAME@','estimate_lwhistogram2d'
2227
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
2229
CREATEFUNCTION ST_estimate_histogram2d(histogram2d,box2d)
2231
AS '@MODULE_FILENAME@','estimate_lwhistogram2d'
2232
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
2234
-----------------------------------------------------------------------
2235
-----------------------------------------------------------------------
2236
CREATEFUNCTION estimated_extent(text,text,text) RETURNS box2d AS
2237
'@MODULE_FILENAME@', 'LWGEOM_estimated_extent'
2238
LANGUAGE 'C' _IMMUTABLE_STRICT _SECURITY_DEFINER;
2240
CREATEFUNCTION ST_estimated_extent(text,text,text) RETURNS box2d AS
2241
'@MODULE_FILENAME@', 'LWGEOM_estimated_extent'
2242
LANGUAGE 'C' _IMMUTABLE_STRICT _SECURITY_DEFINER;
2244
-----------------------------------------------------------------------
2245
-----------------------------------------------------------------------
2246
CREATEFUNCTION estimated_extent(text,text) RETURNS box2d AS
2247
'@MODULE_FILENAME@', 'LWGEOM_estimated_extent'
2248
LANGUAGE 'C' _IMMUTABLE_STRICT _SECURITY_DEFINER;
2250
CREATEFUNCTION ST_estimated_extent(text,text) RETURNS box2d AS
2251
'@MODULE_FILENAME@', 'LWGEOM_estimated_extent'
2252
LANGUAGE 'C' _IMMUTABLE_STRICT _SECURITY_DEFINER;
2254
-----------------------------------------------------------------------
2255
-----------------------------------------------------------------------
2256
CREATEFUNCTION find_extent(text,text,text) RETURNS box2d AS
2259
schemaname alias for $1;
2260
tablename alias for $2;
2261
columnname alias for $3;
2265
FOR myrec IN EXECUTE ''SELECT extent("''||columnname||''") FROM "''||schemaname||''"."''||tablename||''"'' LOOP
2266
return myrec.extent;
2270
LANGUAGE 'plpgsql' _IMMUTABLE_STRICT; -- WITH (isstrict);
2272
CREATEFUNCTION ST_find_extent(text,text,text) RETURNS box2d AS
2275
schemaname alias for $1;
2276
tablename alias for $2;
2277
columnname alias for $3;
2281
FOR myrec IN EXECUTE ''SELECT extent("''||columnname||''") FROM "''||schemaname||''"."''||tablename||''"'' LOOP
2282
return myrec.extent;
2286
LANGUAGE 'plpgsql' _IMMUTABLE_STRICT; -- WITH (isstrict);
2289
-----------------------------------------------------------------------
2290
-----------------------------------------------------------------------
2291
CREATEFUNCTION find_extent(text,text) RETURNS box2d AS
2294
tablename alias for $1;
2295
columnname alias for $2;
2299
FOR myrec IN EXECUTE ''SELECT extent("''||columnname||''") FROM "''||tablename||''"'' LOOP
2300
return myrec.extent;
2304
LANGUAGE 'plpgsql' _IMMUTABLE_STRICT; -- WITH (isstrict);
2306
CREATEFUNCTION ST_find_extent(text,text) RETURNS box2d AS
2309
tablename alias for $1;
2310
columnname alias for $2;
2314
FOR myrec IN EXECUTE ''SELECT extent("''||columnname||''") FROM "''||tablename||''"'' LOOP
2315
return myrec.extent;
2319
LANGUAGE 'plpgsql' _IMMUTABLE_STRICT; -- WITH (isstrict);
2321
-------------------------------------------------------------------
2322
-------------------------------------------------------------------
2323
CREATE TABLE spatial_ref_sys (
2324
srid integer not null primary key,
2325
auth_name varchar(256),
2327
srtext varchar(2048),
2328
proj4text varchar(2048)
2331
-------------------------------------------------------------------
2332
-------------------------------------------------------------------
2333
CREATE TABLE geometry_columns (
2334
f_table_catalog varchar(256) not null,
2335
f_table_schema varchar(256) not null,
2336
f_table_name varchar(256) not null,
2337
f_geometry_column varchar(256) not null,
2338
coord_dimension integer not null,
2339
srid integer not null,
2340
type varchar(30) not null,
2341
#if USE_VERSION < 80
2346
CONSTRAINT geometry_columns_pk primary key (
2353
-----------------------------------------------------------------------
2354
-----------------------------------------------------------------------
2355
-----------------------------------------------------------------------
2356
CREATEFUNCTION rename_geometry_table_constraints() RETURNS text
2359
SELECT ''rename_geometry_table_constraint() is obsoleted''::text
2361
LANGUAGE 'SQL' _IMMUTABLE;
2363
-----------------------------------------------------------------------
2364
-----------------------------------------------------------------------
2366
-- o try to fix the schema of records with an invalid one
2369
-- o link records to system tables through attrelid and varattnum
2372
-- o delete all records for which no linking was possible
2375
-----------------------------------------------------------------------
2376
CREATEFUNCTION fix_geometry_columns() RETURNS text
2384
#if USE_VERSION >= 73
2385
foundschema integer;
2389
#if USE_VERSION >= 73
2390
-- Since 7.3 schema support has been added.
2391
-- Previous postgis versions used to put the database name in
2392
-- the schema column. This needs to be fixed, so we try to
2393
-- set the correct schema for each geometry_colums record
2394
-- looking at table, column, type and srid.
2395
UPDATE geometry_columns SET f_table_schema = n.nspname
2396
FROM pg_namespace n, pg_class c, pg_attribute a,
2397
pg_constraint sridcheck, pg_constraint typecheck
2398
WHERE ( f_table_schema is NULL
2399
OR f_table_schema = ''''
2400
OR f_table_schema NOT IN (
2401
SELECT nspname::varchar
2402
FROM pg_namespace nn, pg_class cc, pg_attribute aa
2403
WHERE cc.relnamespace = nn.oid
2404
AND cc.relname = f_table_name::name
2405
AND aa.attrelid = cc.oid
2406
AND aa.attname = f_geometry_column::name))
2407
AND f_table_name::name = c.relname
2408
AND c.oid = a.attrelid
2409
AND c.relnamespace = n.oid
2410
AND f_geometry_column::name = a.attname
2412
AND sridcheck.conrelid = c.oid
2413
AND sridcheck.consrc LIKE ''(srid(% = %)''
2414
AND sridcheck.consrc ~ textcat('' = '', srid::text)
2416
AND typecheck.conrelid = c.oid
2417
AND typecheck.consrc LIKE
2418
''((geometrytype(%) = ''''%''''::text) OR (% IS NULL))''
2419
AND typecheck.consrc ~ textcat('' = '''''', type::text)
2422
SELECT oid FROM geometry_columns gc
2423
WHERE c.relname::varchar = gc.f_table_name
2424
AND n.nspname::varchar = gc.f_table_schema
2425
AND a.attname::varchar = gc.f_geometry_column
2428
GET DIAGNOSTICS foundschema = ROW_COUNT;
2431
#if USE_VERSION >= 80
2432
-- no linkage to system table needed
2433
return ''fixed:''||foundschema::text;
2436
-- fix linking to system tables
2437
SELECT 0 INTO linked;
2439
SELECT gc.oid as gcrec,
2440
a.attrelid as attrelid, a.attnum as attnum
2441
FROM geometry_columns gc, pg_class c,
2442
#if USE_VERSION >= 73
2443
pg_namespace n, pg_attribute a
2447
WHERE ( gc.attrelid IS NULL OR gc.attrelid != a.attrelid
2448
OR gc.varattnum IS NULL OR gc.varattnum != a.attnum)
2449
#if USE_VERSION >= 73
2450
AND n.nspname = gc.f_table_schema::name
2451
AND c.relnamespace = n.oid
2453
AND c.relname = gc.f_table_name::name
2454
AND a.attname = f_geometry_column::name
2455
AND a.attrelid = c.oid
2457
UPDATE geometry_columns SET
2458
attrelid = mislinked.attrelid,
2459
varattnum = mislinked.attnum,
2461
WHERE geometry_columns.oid = mislinked.gcrec;
2462
SELECT linked+1 INTO linked;
2465
-- remove stale records
2466
DELETE FROM geometry_columns WHERE attrelid IS NULL;
2468
GET DIAGNOSTICS deleted = ROW_COUNT;
2471
#if USE_VERSION >= 73
2472
''fixed:'' || foundschema::text ||
2474
'' linked:'' || linked::text ||
2475
'' deleted:'' || deleted::text;
2481
LANGUAGE 'plpgsql' _VOLATILE;
2483
-----------------------------------------------------------------------
2484
-----------------------------------------------------------------------
2486
-----------------------------------------------------------------------
2487
CREATEFUNCTION probe_geometry_columns() RETURNS text AS
2496
SELECT count(*) INTO oldcount FROM geometry_columns;
2498
SELECT count(*) INTO probed
2499
FROM pg_class c, pg_attribute a, pg_type t,
2500
#if USE_VERSION >= 73
2502
pg_constraint sridcheck, pg_constraint typecheck
2504
pg_relcheck sridcheck, pg_relcheck typecheck
2507
WHERE t.typname = ''geometry''
2508
AND a.atttypid = t.oid
2509
AND a.attrelid = c.oid
2510
#if USE_VERSION >= 73
2511
AND c.relnamespace = n.oid
2512
AND sridcheck.connamespace = n.oid
2513
AND typecheck.connamespace = n.oid
2516
#if USE_VERSION >= 73
2517
AND sridcheck.conrelid = c.oid
2518
AND sridcheck.consrc LIKE ''(srid(''||a.attname||'') = %)''
2519
AND typecheck.conrelid = c.oid
2520
AND typecheck.consrc LIKE
2521
''((geometrytype(''||a.attname||'') = ''''%''''::text) OR (% IS NULL))''
2523
AND sridcheck.rcrelid = c.oid
2524
AND sridcheck.rcsrc LIKE ''(srid(''||a.attname||'') = %)''
2525
AND typecheck.rcrelid = c.oid
2526
AND typecheck.rcsrc LIKE
2527
''((geometrytype(''||a.attname||'') = ''''%''''::text) OR (% IS NULL))''
2531
INSERT INTO geometry_columns SELECT
2532
''''::varchar as f_table_catalogue,
2533
#if USE_VERSION >= 73
2534
n.nspname::varchar as f_table_schema,
2536
''''::varchar as f_table_schema,
2538
c.relname::varchar as f_table_name,
2539
a.attname::varchar as f_geometry_column,
2540
2 as coord_dimension,
2541
#if USE_VERSION >= 73
2542
trim(both '' =)'' from
2543
replace(replace(split_part(
2544
sridcheck.consrc, '' = '', 2), '')'', ''''), ''('', ''''))::integer AS srid,
2545
trim(both '' =)'''''' from substr(typecheck.consrc,
2546
strpos(typecheck.consrc, ''=''),
2547
strpos(typecheck.consrc, ''::'')-
2548
strpos(typecheck.consrc, ''='')
2551
trim(both '' =)'' from
2552
replace(replace(split_part(
2553
sridcheck.rcsrc, '' = '', 2), '')'', ''''), ''('', ''''))::integer AS srid,
2554
trim(both '' =)'''''' from substr(typecheck.rcsrc,
2555
strpos(typecheck.rcsrc, ''=''),
2556
strpos(typecheck.rcsrc, ''::'')-
2557
strpos(typecheck.rcsrc, ''='')
2561
#if USE_VERSION < 80
2563
a.attnum as varattnum,
2564
null::histogram2d as stats
2566
FROM pg_class c, pg_attribute a, pg_type t,
2567
#if USE_VERSION >= 73
2569
pg_constraint sridcheck, pg_constraint typecheck
2571
pg_relcheck sridcheck, pg_relcheck typecheck
2573
WHERE t.typname = ''geometry''
2574
AND a.atttypid = t.oid
2575
AND a.attrelid = c.oid
2576
#if USE_VERSION >= 73
2577
AND c.relnamespace = n.oid
2578
AND sridcheck.connamespace = n.oid
2579
AND typecheck.connamespace = n.oid
2580
AND sridcheck.conrelid = c.oid
2581
AND sridcheck.consrc LIKE ''(srid(''||a.attname||'') = %)''
2582
AND typecheck.conrelid = c.oid
2583
AND typecheck.consrc LIKE
2584
''((geometrytype(''||a.attname||'') = ''''%''''::text) OR (% IS NULL))''
2586
AND sridcheck.rcrelid = c.oid
2587
AND sridcheck.rcsrc LIKE ''(srid(''||a.attname||'') = %)''
2588
AND typecheck.rcrelid = c.oid
2589
AND typecheck.rcsrc LIKE
2590
''((geometrytype(''||a.attname||'') = ''''%''''::text) OR (% IS NULL))''
2594
SELECT oid FROM geometry_columns gc
2595
WHERE c.relname::varchar = gc.f_table_name
2596
#if USE_VERSION >= 73
2597
AND n.nspname::varchar = gc.f_table_schema
2599
AND a.attname::varchar = gc.f_geometry_column
2602
GET DIAGNOSTICS inserted = ROW_COUNT;
2604
IF oldcount > probed THEN
2605
stale = oldcount-probed;
2610
RETURN ''probed:''||probed::text||
2611
'' inserted:''||inserted::text||
2612
'' conflicts:''||(probed-inserted)::text||
2613
'' stale:''||stale::text;
2617
LANGUAGE 'plpgsql' _VOLATILE;
2619
-----------------------------------------------------------------------
2620
-----------------------------------------------------------------------
2624
-----------------------------------------------------------------------
2625
CREATEFUNCTION AddGeometryColumn(varchar,varchar,varchar,varchar,integer,varchar,integer)
2630
catalog_name alias for $1;
2631
schema_name alias for $2;
2632
table_name alias for $3;
2633
column_name alias for $4;
2634
new_srid alias for $5;
2635
new_type alias for $6;
2636
new_dim alias for $7;
2638
#if USE_VERSION >= 73
2646
IF ( not ( (new_type =''GEOMETRY'') or
2647
(new_type =''GEOMETRYCOLLECTION'') or
2648
(new_type =''POINT'') or
2649
(new_type =''MULTIPOINT'') or
2650
(new_type =''POLYGON'') or
2651
(new_type =''MULTIPOLYGON'') or
2652
(new_type =''LINESTRING'') or
2653
(new_type =''MULTILINESTRING'') or
2654
(new_type =''GEOMETRYCOLLECTIONM'') or
2655
(new_type =''POINTM'') or
2656
(new_type =''MULTIPOINTM'') or
2657
(new_type =''POLYGONM'') or
2658
(new_type =''MULTIPOLYGONM'') or
2659
(new_type =''LINESTRINGM'') or
2660
(new_type =''MULTILINESTRINGM'') or
2661
(new_type = ''CIRCULARSTRING'') or
2662
(new_type = ''CIRCULARSTRINGM'') or
2663
(new_type = ''COMPOUNDCURVE'') or
2664
(new_type = ''COMPOUNDCURVEM'') or
2665
(new_type = ''CURVEPOLYGON'') or
2666
(new_type = ''CURVEPOLYGONM'') or
2667
(new_type = ''MULTICURVE'') or
2668
(new_type = ''MULTICURVEM'') or
2669
(new_type = ''MULTISURFACE'') or
2670
(new_type = ''MULTISURFACEM'')) )
2672
RAISE EXCEPTION ''Invalid type name - valid ones are:
2673
GEOMETRY, GEOMETRYCOLLECTION, POINT,
2674
MULTIPOINT, POLYGON, MULTIPOLYGON,
2675
LINESTRING, MULTILINESTRING,
2676
CIRCULARSTRING, COMPOUNDCURVE,
2677
CURVEPOLYGON, MULTICURVE, MULTISURFACE,
2678
GEOMETRYCOLLECTIONM, POINTM,
2679
MULTIPOINTM, POLYGONM, MULTIPOLYGONM,
2680
LINESTRINGM, MULTILINESTRINGM
2681
CIRCULARSTRINGM, COMPOUNDCURVEM,
2682
CURVEPOLYGONM, MULTICURVEM or MULTISURFACEM'';
2686
IF ( (new_dim >4) or (new_dim <0) ) THEN
2687
RAISE EXCEPTION ''invalid dimension'';
2691
IF ( (new_type LIKE ''%M'') and (new_dim!=3) ) THEN
2693
RAISE EXCEPTION ''TypeM needs 3 dimensions'';
2697
#if USE_VERSION >= 73
2698
IF ( schema_name != '''' ) THEN
2700
FOR rec IN SELECT nspname FROM pg_namespace WHERE text(nspname) = schema_name LOOP
2704
if ( schema_ok <> ''t'' ) THEN
2705
RAISE EXCEPTION ''Invalid schema name'';
2707
real_schema = schema_name;
2711
SELECT current_schema() into real_schema;
2715
IF ( new_srid != -1 ) THEN
2716
SELECT SRID INTO sr FROM SPATIAL_REF_SYS WHERE SRID = new_srid;
2718
RAISE EXCEPTION ''AddGeometryColumns() - invalid SRID'';
2723
-- Add geometry column
2725
EXECUTE ''ALTER TABLE '' ||
2726
#if USE_VERSION >= 73
2727
quote_ident(real_schema) || ''.'' || quote_ident(table_name)
2729
quote_ident(table_name)
2731
|| '' ADD COLUMN '' || quote_ident(column_name) ||
2735
-- Delete stale record in geometry_column (if any)
2737
EXECUTE ''DELETE FROM geometry_columns WHERE
2738
f_table_catalog = '' || quote_literal('''') ||
2739
'' AND f_table_schema = '' ||
2740
#if USE_VERSION >= 73
2741
quote_literal(real_schema) ||
2743
quote_literal('''') ||
2745
'' AND f_table_name = '' || quote_literal(table_name) ||
2746
'' AND f_geometry_column = '' || quote_literal(column_name);
2749
-- Add record in geometry_column
2751
EXECUTE ''INSERT INTO geometry_columns VALUES ('' ||
2752
quote_literal('''') || '','' ||
2753
#if USE_VERSION >= 73
2754
quote_literal(real_schema) || '','' ||
2756
quote_literal('''') || '','' ||
2758
quote_literal(table_name) || '','' ||
2759
quote_literal(column_name) || '','' ||
2760
new_dim::text || '','' || new_srid::text || '','' ||
2761
quote_literal(new_type) || '')'';
2765
EXECUTE ''ALTER TABLE '' ||
2766
#if USE_VERSION >= 73
2767
quote_ident(real_schema) || ''.'' || quote_ident(table_name)
2769
quote_ident(table_name)
2771
|| '' ADD CONSTRAINT ''
2772
|| quote_ident(''enforce_srid_'' || column_name)
2773
|| '' CHECK (SRID('' || quote_ident(column_name) ||
2774
'') = '' || new_srid::text || '')'' ;
2776
EXECUTE ''ALTER TABLE '' ||
2777
#if USE_VERSION >= 73
2778
quote_ident(real_schema) || ''.'' || quote_ident(table_name)
2780
quote_ident(table_name)
2782
|| '' ADD CONSTRAINT ''
2783
|| quote_ident(''enforce_dims_'' || column_name)
2784
|| '' CHECK (ndims('' || quote_ident(column_name) ||
2785
'') = '' || new_dim::text || '')'' ;
2787
IF (not(new_type = ''GEOMETRY'')) THEN
2788
EXECUTE ''ALTER TABLE '' ||
2789
#if USE_VERSION >= 73
2790
quote_ident(real_schema) || ''.'' || quote_ident(table_name)
2792
quote_ident(table_name)
2794
|| '' ADD CONSTRAINT ''
2795
|| quote_ident(''enforce_geotype_'' || column_name)
2796
|| '' CHECK (geometrytype('' ||
2797
quote_ident(column_name) || '')='' ||
2798
quote_literal(new_type) || '' OR ('' ||
2799
quote_ident(column_name) || '') is null)'';
2803
#if USE_VERSION >= 73
2804
real_schema || ''.'' ||
2806
table_name || ''.'' || column_name ||
2807
'' SRID:'' || new_srid::text ||
2808
'' TYPE:'' || new_type ||
2809
'' DIMS:'' || new_dim::text || chr(10) || '' '';
2812
LANGUAGE 'plpgsql' _VOLATILE_STRICT; -- WITH (isstrict);
2814
----------------------------------------------------------------------------
2815
----------------------------------------------------------------------------
2818
----------------------------------------------------------------------------
2819
CREATEFUNCTION AddGeometryColumn(varchar,varchar,varchar,integer,varchar,integer) RETURNS text AS '
2823
SELECT AddGeometryColumn('''',$1,$2,$3,$4,$5,$6) into ret;
2827
LANGUAGE 'plpgsql' _STABLE_STRICT; -- WITH (isstrict);
2829
----------------------------------------------------------------------------
2830
----------------------------------------------------------------------------
2833
----------------------------------------------------------------------------
2834
CREATEFUNCTION AddGeometryColumn(varchar,varchar,integer,varchar,integer) RETURNS text AS '
2838
SELECT AddGeometryColumn('''','''',$1,$2,$3,$4,$5) into ret;
2842
LANGUAGE 'plpgsql' _VOLATILE_STRICT; -- WITH (isstrict);
2844
-----------------------------------------------------------------------
2845
-----------------------------------------------------------------------
2848
-----------------------------------------------------------------------
2849
CREATEFUNCTION DropGeometryColumn(varchar, varchar,varchar,varchar)
2854
catalog_name alias for $1;
2855
schema_name alias for $2;
2856
table_name alias for $3;
2857
column_name alias for $4;
2865
#if USE_VERSION >= 73
2866
-- Find, check or fix schema_name
2867
IF ( schema_name != '''' ) THEN
2870
FOR myrec IN SELECT nspname FROM pg_namespace WHERE text(nspname) = schema_name LOOP
2874
IF ( okay <> ''t'' ) THEN
2875
RAISE NOTICE ''Invalid schema name - using current_schema()'';
2876
SELECT current_schema() into real_schema;
2878
real_schema = schema_name;
2881
SELECT current_schema() into real_schema;
2884
real_schema = schema_name;
2887
-- Find out if the column is in the geometry_columns table
2889
FOR myrec IN SELECT * from geometry_columns where f_table_schema = text(real_schema) and f_table_name = table_name and f_geometry_column = column_name LOOP
2892
IF (okay <> ''t'') THEN
2893
RAISE EXCEPTION ''column not found in geometry_columns table'';
2897
-- Remove ref from geometry_columns table
2898
EXECUTE ''delete from geometry_columns where f_table_schema = '' ||
2899
quote_literal(real_schema) || '' and f_table_name = '' ||
2900
quote_literal(table_name) || '' and f_geometry_column = '' ||
2901
quote_literal(column_name);
2903
#if USE_VERSION < 73
2904
-- Remove not-null constraint to table column
2905
EXECUTE ''update pg_attribute set attnotnull = false from pg_class where pg_attribute.attrelid = pg_class.oid and pg_class.relname = '' || quote_literal(table_name) ||'' and pg_attribute.attname = '' || quote_literal(column_name);
2906
-- update the given table/column so that it it all NULLS
2907
EXECUTE ''update "''||table_name||''" set "''||column_name||''"= NULL'';
2908
-- add = NULL constraint to given table/column
2909
EXECUTE ''ALTER TABLE "''||table_name||''" ADD CHECK ("''||column_name||''" IS NULL)'';
2911
-- Remove table column
2912
EXECUTE ''ALTER TABLE '' || quote_ident(real_schema) || ''.'' ||
2913
quote_ident(table_name) || '' DROP COLUMN '' ||
2914
quote_ident(column_name);
2918
RETURN real_schema || ''.'' || table_name || ''.'' || column_name ||'' effectively removed.'';
2922
LANGUAGE 'plpgsql' _VOLATILE_STRICT; -- WITH (isstrict);
2924
-----------------------------------------------------------------------
2925
-----------------------------------------------------------------------
2928
-----------------------------------------------------------------------
2929
CREATEFUNCTION DropGeometryColumn(varchar,varchar,varchar)
2936
SELECT DropGeometryColumn('''',$1,$2,$3) into ret;
2940
LANGUAGE 'plpgsql' _VOLATILE_STRICT; -- WITH (isstrict);
2942
-----------------------------------------------------------------------
2943
-----------------------------------------------------------------------
2946
-----------------------------------------------------------------------
2947
CREATEFUNCTION DropGeometryColumn(varchar,varchar)
2954
SELECT DropGeometryColumn('''','''',$1,$2) into ret;
2958
LANGUAGE 'plpgsql' _VOLATILE_STRICT; -- WITH (isstrict);
2960
-----------------------------------------------------------------------
2961
-----------------------------------------------------------------------
2964
-----------------------------------------------------------------------
2965
CREATEFUNCTION DropGeometryTable(varchar, varchar,varchar)
2970
catalog_name alias for $1;
2971
schema_name alias for $2;
2972
table_name alias for $3;
2977
#if USE_VERSION >= 73
2978
IF ( schema_name = '''' ) THEN
2979
SELECT current_schema() into real_schema;
2981
real_schema = schema_name;
2985
-- Remove refs from geometry_columns table
2986
EXECUTE ''DELETE FROM geometry_columns WHERE '' ||
2987
#if USE_VERSION >= 73
2988
''f_table_schema = '' || quote_literal(real_schema) ||
2991
'' f_table_name = '' || quote_literal(table_name);
2994
EXECUTE ''DROP TABLE ''
2995
#if USE_VERSION >= 73
2996
|| quote_ident(real_schema) || ''.'' ||
2998
quote_ident(table_name);
3001
#if USE_VERSION >= 73
3002
real_schema || ''.'' ||
3004
table_name ||'' dropped.'';
3008
LANGUAGE 'plpgsql' _VOLATILE_STRICT; -- WITH (isstrict);
3010
-----------------------------------------------------------------------
3011
-----------------------------------------------------------------------
3014
-----------------------------------------------------------------------
3015
CREATEFUNCTION DropGeometryTable(varchar,varchar) RETURNS text AS
3016
'SELECT DropGeometryTable('''',$1,$2)'
3017
LANGUAGE 'sql' WITH (isstrict);
3019
-----------------------------------------------------------------------
3020
-----------------------------------------------------------------------
3023
-----------------------------------------------------------------------
3024
CREATEFUNCTION DropGeometryTable(varchar) RETURNS text AS
3025
'SELECT DropGeometryTable('''','''',$1)'
3026
LANGUAGE 'sql' _VOLATILE_STRICT; -- WITH (isstrict);
3028
-----------------------------------------------------------------------
3029
-----------------------------------------------------------------------
3032
-----------------------------------------------------------------------
3033
CREATEFUNCTION UpdateGeometrySRID(varchar,varchar,varchar,varchar,integer)
3038
catalog_name alias for $1;
3039
schema_name alias for $2;
3040
table_name alias for $3;
3041
column_name alias for $4;
3042
new_srid alias for $5;
3051
#if USE_VERSION >= 73
3052
-- Find, check or fix schema_name
3053
IF ( schema_name != '''' ) THEN
3056
FOR myrec IN SELECT nspname FROM pg_namespace WHERE text(nspname) = schema_name LOOP
3060
IF ( okay <> ''t'' ) THEN
3061
RAISE EXCEPTION ''Invalid schema name'';
3063
real_schema = schema_name;
3066
SELECT INTO real_schema current_schema()::text;
3070
-- Find out if the column is in the geometry_columns table
3072
FOR myrec IN SELECT * from geometry_columns where f_table_schema = text(real_schema) and f_table_name = table_name and f_geometry_column = column_name LOOP
3075
IF (okay <> ''t'') THEN
3076
RAISE EXCEPTION ''column not found in geometry_columns table'';
3080
-- Update ref from geometry_columns table
3081
EXECUTE ''UPDATE geometry_columns SET SRID = '' || new_srid::text ||
3082
'' where f_table_schema = '' ||
3083
quote_literal(real_schema) || '' and f_table_name = '' ||
3084
quote_literal(table_name) || '' and f_geometry_column = '' ||
3085
quote_literal(column_name);
3087
-- Make up constraint name
3088
cname = ''enforce_srid_'' || column_name;
3090
-- Drop enforce_srid constraint
3091
#if USE_VERSION < 73
3092
EXECUTE ''ALTER TABLE '' || quote_ident(table_name) ||
3094
EXECUTE ''ALTER TABLE '' || quote_ident(real_schema) ||
3095
''.'' || quote_ident(table_name) ||
3097
'' DROP constraint '' || quote_ident(cname);
3099
-- Update geometries SRID
3100
#if USE_VERSION < 73
3101
EXECUTE ''UPDATE '' || quote_ident(table_name) ||
3103
EXECUTE ''UPDATE '' || quote_ident(real_schema) ||
3104
''.'' || quote_ident(table_name) ||
3106
'' SET '' || quote_ident(column_name) ||
3107
'' = setSRID('' || quote_ident(column_name) ||
3108
'', '' || new_srid::text || '')'';
3110
-- Reset enforce_srid constraint
3111
#if USE_VERSION < 73
3112
EXECUTE ''ALTER TABLE '' || quote_ident(table_name) ||
3114
EXECUTE ''ALTER TABLE '' || quote_ident(real_schema) ||
3115
''.'' || quote_ident(table_name) ||
3117
'' ADD constraint '' || quote_ident(cname) ||
3118
'' CHECK (srid('' || quote_ident(column_name) ||
3119
'') = '' || new_srid::text || '')'';
3121
RETURN real_schema || ''.'' || table_name || ''.'' || column_name ||'' SRID changed to '' || new_srid::text;
3125
LANGUAGE 'plpgsql' _VOLATILE_STRICT; -- WITH (isstrict);
3127
-----------------------------------------------------------------------
3128
-----------------------------------------------------------------------
3129
CREATEFUNCTION UpdateGeometrySRID(varchar,varchar,varchar,integer)
3135
SELECT UpdateGeometrySRID('''',$1,$2,$3,$4) into ret;
3139
LANGUAGE 'plpgsql' _VOLATILE_STRICT; -- WITH (isstrict);
3141
-----------------------------------------------------------------------
3142
-----------------------------------------------------------------------
3143
CREATEFUNCTION UpdateGeometrySRID(varchar,varchar,integer)
3149
SELECT UpdateGeometrySRID('''','''',$1,$2,$3) into ret;
3153
LANGUAGE 'plpgsql' _VOLATILE_STRICT; -- WITH (isstrict);
3155
-----------------------------------------------------------------------
3156
-----------------------------------------------------------------------
3160
-----------------------------------------------------------------------
3161
#if USE_VERSION >= 80
3162
CREATEFUNCTION update_geometry_stats() RETURNS text
3163
AS ' SELECT ''update_geometry_stats() has been obsoleted. Statistics are automatically built running the ANALYZE command''::text' LANGUAGE 'sql';
3165
CREATEFUNCTION update_geometry_stats()
3174
UPDATE geometry_columns SET
3175
#if USE_VERSION >= 73
3176
stats = (build_histogram2d(create_histogram2d(
3177
find_extent(f_table_schema, f_table_name, f_geometry_column), 40), f_table_schema, f_table_name, f_geometry_column))
3178
FROM pg_class c, pg_attribute a, pg_namespace n
3179
WHERE n.nspname = f_table_schema::name
3180
AND c.relname = f_table_name::name
3181
AND c.relnamespace = n.oid
3183
stats = (build_histogram2d(create_histogram2d(
3184
find_extent(f_table_name, f_geometry_column),
3185
40), f_table_name, f_geometry_column))
3186
FROM pg_class c, pg_attribute a
3187
WHERE c.relname = f_table_name::name
3189
AND a.attname = f_geometry_column::name
3190
AND a.attrelid = c.oid
3191
AND geometry_columns.attrelid is not null;
3193
GET DIAGNOSTICS stated = ROW_COUNT;
3195
result = ''stats:'' || stated::text;
3200
LANGUAGE 'plpgsql' _VOLATILE_STRICT;
3203
-----------------------------------------------------------------------
3204
-----------------------------------------------------------------------
3208
-----------------------------------------------------------------------
3209
#if USE_VERSION >= 80
3210
CREATEFUNCTION update_geometry_stats(varchar,varchar) RETURNS text
3211
AS 'SELECT update_geometry_stats();' LANGUAGE 'sql' ;
3213
CREATEFUNCTION update_geometry_stats(varchar,varchar) RETURNS text
3217
tablename aliAS for $1;
3218
columnname aliAS for $2;
3223
EXECUTE ''UPDATE geometry_columns SET
3224
#if USE_VERSION >= 73
3225
stats = (build_histogram2d(create_histogram2d(
3226
find_extent(f_table_schema,
3228
f_geometry_column), 40),
3229
f_table_schema, f_table_name,
3231
FROM pg_class c, pg_attribute a, pg_namespace n
3232
WHERE n.nspname = f_table_schema::name
3233
AND c.relname = f_table_name::name
3234
AND a.attname = f_geometry_column::name
3235
AND c.relnamespace = n.oid
3236
AND a.attrelid = c.oid
3238
stats = (build_histogram2d(create_histogram2d(
3239
find_extent(f_table_name, f_geometry_column),
3240
40), f_table_name, f_geometry_column))
3241
FROM pg_class c, pg_attribute a
3242
WHERE c.relname = f_table_name::name
3243
AND a.attname = f_geometry_column::name
3244
AND a.attrelid = c.oid
3246
AND f_table_name = '' || quote_literal(tablename) || ''
3247
AND f_geometry_column = '' || quote_literal(columnname)
3248
|| '' AND geometry_columns.attrelid is not null'';
3250
GET DIAGNOSTICS stated = ROW_COUNT;
3252
result = ''stats:'' || stated::text;
3257
LANGUAGE 'plpgsql' _VOLATILE_STRICT;
3261
-----------------------------------------------------------------------
3262
-----------------------------------------------------------------------
3263
CREATEFUNCTION find_srid(varchar,varchar,varchar) RETURNS int4 AS
3270
RAISE EXCEPTION ''find_srid() - schema is NULL!'';
3273
RAISE EXCEPTION ''find_srid() - table name is NULL!'';
3276
RAISE EXCEPTION ''find_srid() - column name is NULL!'';
3280
IF ( schem = '''' and tabl LIKE ''%.%'' ) THEN
3281
schem = substr(tabl,1,strpos(tabl,''.'')-1);
3282
tabl = substr(tabl,length(schem)+2);
3284
schem = schem || ''%'';
3287
select SRID into sr from geometry_columns where f_table_schema like schem and f_table_name = tabl and f_geometry_column = $3;
3289
RAISE EXCEPTION ''find_srid() - couldnt find the corresponding SRID - is the geometry registered in the GEOMETRY_COLUMNS table? Is there an uppercase/lowercase missmatch?'';
3294
LANGUAGE 'plpgsql' _IMMUTABLE_STRICT; -- WITH (iscachable);
3297
---------------------------------------------------------------
3298
---------------------------------------------------------------
3300
CREATEFUNCTION get_proj4_from_srid(integer) RETURNS text AS
3303
RETURN proj4text::text FROM spatial_ref_sys WHERE srid= $1;
3306
LANGUAGE 'plpgsql' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
3310
CREATEFUNCTION transform_geometry(geometry,text,text,int)
3312
AS '@MODULE_FILENAME@','transform_geom'
3313
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3315
CREATEFUNCTION transform(geometry,integer)
3317
AS '@MODULE_FILENAME@','transform'
3318
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3320
CREATEFUNCTION ST_Transform(geometry,integer)
3322
AS '@MODULE_FILENAME@','transform'
3323
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3326
-----------------------------------------------------------------------
3327
-----------------------------------------------------------------------
3329
CREATEFUNCTION postgis_version() RETURNS text
3330
AS '@MODULE_FILENAME@'
3331
LANGUAGE 'C' _IMMUTABLE;
3333
CREATEFUNCTION postgis_proj_version() RETURNS text
3334
AS '@MODULE_FILENAME@'
3335
LANGUAGE 'C' _IMMUTABLE;
3339
CREATEFUNCTION postgis_scripts_installed() RETURNS text
3340
AS 'SELECT ''@POSTGIS_SCRIPTS_VERSION@''::text AS version'
3341
LANGUAGE 'sql' _IMMUTABLE;
3343
CREATEFUNCTION postgis_lib_version() RETURNS text
3344
AS '@MODULE_FILENAME@'
3345
LANGUAGE 'C' _IMMUTABLE; -- a new lib will require a new session
3347
CREATEFUNCTION postgis_scripts_released() RETURNS text
3348
AS '@MODULE_FILENAME@'
3349
LANGUAGE 'C' _IMMUTABLE;
3351
CREATEFUNCTION postgis_uses_stats() RETURNS bool
3352
AS '@MODULE_FILENAME@'
3353
LANGUAGE 'C' _IMMUTABLE;
3355
CREATEFUNCTION postgis_geos_version() RETURNS text
3356
AS '@MODULE_FILENAME@'
3357
LANGUAGE 'C' _IMMUTABLE;
3359
CREATEFUNCTION postgis_jts_version() RETURNS text
3360
AS '@MODULE_FILENAME@'
3361
LANGUAGE 'C' _IMMUTABLE;
3363
CREATEFUNCTION postgis_scripts_build_date() RETURNS text
3364
AS 'SELECT ''@POSTGIS_BUILD_DATE@''::text AS version'
3365
LANGUAGE 'sql' _IMMUTABLE;
3367
CREATEFUNCTION postgis_lib_build_date() RETURNS text
3368
AS '@MODULE_FILENAME@'
3369
LANGUAGE 'C' _IMMUTABLE;
3373
CREATEFUNCTION postgis_full_version() RETURNS text
3385
SELECT postgis_lib_version() INTO libver;
3386
SELECT postgis_proj_version() INTO projver;
3387
SELECT postgis_geos_version() INTO geosver;
3388
SELECT postgis_jts_version() INTO jtsver;
3389
SELECT postgis_uses_stats() INTO usestats;
3390
SELECT postgis_scripts_installed() INTO dbproc;
3391
SELECT postgis_scripts_released() INTO relproc;
3393
fullver = ''POSTGIS="'' || libver || ''"'';
3395
IF geosver IS NOT NULL THEN
3396
fullver = fullver || '' GEOS="'' || geosver || ''"'';
3399
IF jtsver IS NOT NULL THEN
3400
fullver = fullver || '' JTS="'' || jtsver || ''"'';
3403
IF projver IS NOT NULL THEN
3404
fullver = fullver || '' PROJ="'' || projver || ''"'';
3408
fullver = fullver || '' USE_STATS'';
3411
-- fullver = fullver || '' DBPROC="'' || dbproc || ''"'';
3412
-- fullver = fullver || '' RELPROC="'' || relproc || ''"'';
3414
IF dbproc != relproc THEN
3415
fullver = fullver || '' (procs from '' || dbproc || '' need upgrade)'';
3421
LANGUAGE 'plpgsql' _IMMUTABLE;
3423
---------------------------------------------------------------
3424
---------------------------------------------------------------
3426
CREATEFUNCTION box2d(geometry)
3428
AS '@MODULE_FILENAME@','LWGEOM_to_BOX2DFLOAT4'
3429
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3431
CREATEFUNCTION ST_box2d(geometry)
3433
AS '@MODULE_FILENAME@','LWGEOM_to_BOX2DFLOAT4'
3434
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3436
CREATEFUNCTION box3d(geometry)
3438
AS '@MODULE_FILENAME@','LWGEOM_to_BOX3D'
3439
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3441
CREATEFUNCTION ST_box3d(geometry)
3443
AS '@MODULE_FILENAME@','LWGEOM_to_BOX3D'
3444
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3446
CREATEFUNCTION box(geometry)
3448
AS '@MODULE_FILENAME@','LWGEOM_to_BOX'
3449
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3451
CREATEFUNCTION ST_box(geometry)
3453
AS '@MODULE_FILENAME@','LWGEOM_to_BOX'
3454
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3456
CREATEFUNCTION box2d(box3d)
3458
AS '@MODULE_FILENAME@','BOX3D_to_BOX2DFLOAT4'
3459
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3461
CREATEFUNCTION ST_box2d(box3d)
3463
AS '@MODULE_FILENAME@','BOX3D_to_BOX2DFLOAT4'
3464
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3466
CREATEFUNCTION box3d(box2d)
3468
AS '@MODULE_FILENAME@','BOX2DFLOAT4_to_BOX3D'
3469
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3471
CREATEFUNCTION ST_box3d(box2d)
3473
AS '@MODULE_FILENAME@','BOX2DFLOAT4_to_BOX3D'
3474
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3476
CREATEFUNCTION box(box3d)
3478
AS '@MODULE_FILENAME@','BOX3D_to_BOX'
3479
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3481
CREATEFUNCTION ST_box(box3d)
3483
AS '@MODULE_FILENAME@','BOX3D_to_BOX'
3484
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3486
CREATEFUNCTION text(geometry)
3488
AS '@MODULE_FILENAME@','LWGEOM_to_text'
3489
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3491
CREATEFUNCTION ST_text(geometry)
3493
AS '@MODULE_FILENAME@','LWGEOM_to_text'
3494
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3496
CREATEFUNCTION box3dtobox(box3d)
3499
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3501
CREATEFUNCTION geometry(box2d)
3503
AS '@MODULE_FILENAME@','BOX2DFLOAT4_to_LWGEOM'
3504
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3506
CREATEFUNCTION ST_geometry(box2d)
3508
AS '@MODULE_FILENAME@','BOX2DFLOAT4_to_LWGEOM'
3509
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3511
CREATEFUNCTION geometry(box3d)
3513
AS '@MODULE_FILENAME@','BOX3D_to_LWGEOM'
3514
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3516
CREATEFUNCTION ST_geometry(box3d)
3518
AS '@MODULE_FILENAME@','BOX3D_to_LWGEOM'
3519
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3521
CREATEFUNCTION geometry(text)
3523
AS '@MODULE_FILENAME@','parse_WKT_lwgeom'
3524
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3526
CREATEFUNCTION ST_geometry(text)
3528
AS '@MODULE_FILENAME@','parse_WKT_lwgeom'
3529
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3531
CREATEFUNCTION geometry(chip)
3533
AS '@MODULE_FILENAME@','CHIP_to_LWGEOM'
3534
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3536
CREATEFUNCTION ST_geometry(chip)
3538
AS '@MODULE_FILENAME@','CHIP_to_LWGEOM'
3539
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3541
CREATEFUNCTION geometry(bytea)
3543
AS '@MODULE_FILENAME@','LWGEOM_from_bytea'
3544
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3546
CREATEFUNCTION ST_geometry(bytea)
3548
AS '@MODULE_FILENAME@','LWGEOM_from_bytea'
3549
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3551
CREATEFUNCTION bytea(geometry)
3553
AS '@MODULE_FILENAME@','LWGEOM_to_bytea'
3554
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3556
CREATEFUNCTION ST_bytea(geometry)
3558
AS '@MODULE_FILENAME@','LWGEOM_to_bytea'
3559
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3561
CREATEFUNCTION text(bool)
3563
AS '@MODULE_FILENAME@','BOOL_to_text'
3564
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3566
CREATEFUNCTION ST_text(bool)
3568
AS '@MODULE_FILENAME@','BOOL_to_text'
3569
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3571
#if USE_VERSION >= 73
3572
CREATE CAST (geometry AS box2d) WITH FUNCTION ST_box2d(geometry) AS IMPLICIT;
3573
CREATE CAST (geometry AS box3d) WITH FUNCTION ST_box3d(geometry) AS IMPLICIT;
3574
CREATE CAST (geometry AS box) WITH FUNCTION ST_box(geometry) AS IMPLICIT;
3575
CREATE CAST (box3d AS box2d) WITH FUNCTION ST_box2d(box3d) AS IMPLICIT;
3576
CREATE CAST (box2d AS box3d) WITH FUNCTION ST_box3d(box2d) AS IMPLICIT;
3577
CREATE CAST (box2d AS geometry) WITH FUNCTION ST_geometry(box2d) AS IMPLICIT;
3578
CREATE CAST (box3d AS box) WITH FUNCTION ST_box(box3d) AS IMPLICIT;
3579
CREATE CAST (box3d AS geometry) WITH FUNCTION ST_geometry(box3d) AS IMPLICIT;
3580
CREATE CAST (text AS geometry) WITH FUNCTION ST_geometry(text) AS IMPLICIT;
3581
CREATE CAST (geometry AS text) WITH FUNCTION ST_text(geometry) AS IMPLICIT;
3582
CREATE CAST (chip AS geometry) WITH FUNCTION ST_geometry(chip) AS IMPLICIT;
3583
CREATE CAST (bytea AS geometry) WITH FUNCTION ST_geometry(bytea) AS IMPLICIT;
3584
CREATE CAST (geometry AS bytea) WITH FUNCTION ST_bytea(geometry) AS IMPLICIT;
3587
---------------------------------------------------------------
3588
---------------------------------------------------------------
3590
CREATEFUNCTION Simplify(geometry, float8)
3592
AS '@MODULE_FILENAME@', 'LWGEOM_simplify2d'
3593
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3595
CREATEFUNCTION ST_Simplify(geometry, float8)
3597
AS '@MODULE_FILENAME@', 'LWGEOM_simplify2d'
3598
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3600
CREATEFUNCTION SnapToGrid(geometry, float8, float8, float8, float8)
3602
AS '@MODULE_FILENAME@', 'LWGEOM_snaptogrid'
3603
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3605
CREATEFUNCTION ST_SnapToGrid(geometry, float8, float8, float8, float8)
3607
AS '@MODULE_FILENAME@', 'LWGEOM_snaptogrid'
3608
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3610
CREATEFUNCTION SnapToGrid(geometry, float8, float8)
3612
AS 'SELECT SnapToGrid($1, 0, 0, $2, $3)'
3613
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3615
CREATEFUNCTION ST_SnapToGrid(geometry, float8, float8)
3617
AS 'SELECT SnapToGrid($1, 0, 0, $2, $3)'
3618
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3620
CREATEFUNCTION SnapToGrid(geometry, float8)
3622
AS 'SELECT SnapToGrid($1, 0, 0, $2, $2)'
3623
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3625
CREATEFUNCTION ST_SnapToGrid(geometry, float8)
3627
AS 'SELECT SnapToGrid($1, 0, 0, $2, $2)'
3628
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3630
CREATEFUNCTION SnapToGrid(geometry, geometry, float8, float8, float8, float8)
3632
AS '@MODULE_FILENAME@', 'LWGEOM_snaptogrid_pointoff'
3633
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3635
CREATEFUNCTION ST_SnapToGrid(geometry, geometry, float8, float8, float8, float8)
3637
AS '@MODULE_FILENAME@', 'LWGEOM_snaptogrid_pointoff'
3638
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3640
CREATEFUNCTION Segmentize(geometry, float8)
3642
AS '@MODULE_FILENAME@', 'LWGEOM_segmentize2d'
3643
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3645
CREATEFUNCTION ST_Segmentize(geometry, float8)
3647
AS '@MODULE_FILENAME@', 'LWGEOM_segmentize2d'
3648
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3650
---------------------------------------------------------------
3651
---------------------------------------------------------------
3653
CREATEFUNCTION line_interpolate_point(geometry, float8)
3655
AS '@MODULE_FILENAME@', 'LWGEOM_line_interpolate_point'
3656
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3658
CREATEFUNCTION ST_line_interpolate_point(geometry, float8)
3660
AS '@MODULE_FILENAME@', 'LWGEOM_line_interpolate_point'
3661
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3663
CREATEFUNCTION line_substring(geometry, float8, float8)
3665
AS '@MODULE_FILENAME@', 'LWGEOM_line_substring'
3666
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3668
CREATEFUNCTION ST_line_substring(geometry, float8, float8)
3670
AS '@MODULE_FILENAME@', 'LWGEOM_line_substring'
3671
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3673
CREATEFUNCTION line_locate_point(geometry, geometry)
3675
AS '@MODULE_FILENAME@', 'LWGEOM_line_locate_point'
3676
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3678
CREATEFUNCTION ST_line_locate_point(geometry, geometry)
3680
AS '@MODULE_FILENAME@', 'LWGEOM_line_locate_point'
3681
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3683
CREATEFUNCTION locate_between_measures(geometry, float8, float8)
3685
AS '@MODULE_FILENAME@', 'LWGEOM_locate_between_m'
3686
LANGUAGE 'C' _IMMUTABLE_STRICT;
3688
CREATEFUNCTION ST_locate_between_measures(geometry, float8, float8)
3690
AS '@MODULE_FILENAME@', 'LWGEOM_locate_between_m'
3691
LANGUAGE 'C' _IMMUTABLE_STRICT;
3693
CREATEFUNCTION locate_along_measure(geometry, float8)
3695
AS 'SELECT locate_between_measures($1, $2, $2)'
3696
LANGUAGE 'sql' _IMMUTABLE_STRICT;
3698
CREATEFUNCTION ST_locate_along_measure(geometry, float8)
3700
AS 'SELECT locate_between_measures($1, $2, $2)'
3701
LANGUAGE 'sql' _IMMUTABLE_STRICT;
3703
---------------------------------------------------------------
3704
---------------------------------------------------------------
3706
CREATEFUNCTION intersection(geometry,geometry)
3708
AS '@MODULE_FILENAME@','intersection'
3709
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3711
CREATEFUNCTION ST_Intersection(geometry,geometry)
3713
AS '@MODULE_FILENAME@','intersection'
3714
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3716
CREATEFUNCTION buffer(geometry,float8)
3718
AS '@MODULE_FILENAME@','buffer'
3719
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3721
CREATEFUNCTION ST_Buffer(geometry,float8)
3723
AS '@MODULE_FILENAME@','buffer'
3724
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3726
CREATEFUNCTION buffer(geometry,float8,integer)
3728
AS '@MODULE_FILENAME@','buffer'
3729
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3731
CREATEFUNCTION ST_buffer(geometry,float8,integer)
3733
AS '@MODULE_FILENAME@','buffer'
3734
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3736
CREATEFUNCTION convexhull(geometry)
3738
AS '@MODULE_FILENAME@','convexhull'
3739
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3741
CREATEFUNCTION ST_ConvexHull(geometry)
3743
AS '@MODULE_FILENAME@','convexhull'
3744
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3746
#if GEOS_VERNUM >= 30
3747
CREATEFUNCTION ST_SimplifyPreserveTopology(geometry, float8)
3749
AS '@MODULE_FILENAME@','topologypreservesimplify'
3750
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3753
CREATEFUNCTION difference(geometry,geometry)
3755
AS '@MODULE_FILENAME@','difference'
3756
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3758
CREATEFUNCTION ST_Difference(geometry,geometry)
3760
AS '@MODULE_FILENAME@','difference'
3761
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3763
CREATEFUNCTION boundary(geometry)
3765
AS '@MODULE_FILENAME@','boundary'
3766
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3768
CREATEFUNCTION ST_Boundary(geometry)
3770
AS '@MODULE_FILENAME@','boundary'
3771
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3773
CREATEFUNCTION symdifference(geometry,geometry)
3775
AS '@MODULE_FILENAME@','symdifference'
3776
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3778
CREATEFUNCTION ST_SymDifference(geometry,geometry)
3780
AS '@MODULE_FILENAME@','symdifference'
3781
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3783
CREATEFUNCTION symmetricdifference(geometry,geometry)
3785
AS '@MODULE_FILENAME@','symdifference'
3786
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3788
CREATEFUNCTION ST_symmetricdifference(geometry,geometry)
3790
AS '@MODULE_FILENAME@','symdifference'
3791
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3793
CREATEFUNCTION GeomUnion(geometry,geometry)
3795
AS '@MODULE_FILENAME@','geomunion'
3796
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3798
CREATEFUNCTION ST_Union(geometry,geometry)
3800
AS '@MODULE_FILENAME@','geomunion'
3801
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3803
CREATE AGGREGATE MemGeomUnion (
3804
basetype = geometry,
3809
CREATE AGGREGATE ST_MemUnion (
3810
basetype = geometry,
3815
CREATEFUNCTION unite_garray (geometry[])
3817
AS '@MODULE_FILENAME@'
3818
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3820
CREATEFUNCTION ST_unite_garray (geometry[])
3822
AS '@MODULE_FILENAME@','unite_garray'
3823
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3825
CREATE AGGREGATE GeomUnion (
3827
basetype = geometry,
3829
finalfunc = ST_unite_garray
3832
CREATE AGGREGATE ST_Union (
3833
sfunc = ST_geom_accum,
3834
basetype = geometry,
3836
finalfunc = ST_unite_garray
3839
CREATEFUNCTION relate(geometry,geometry)
3841
AS '@MODULE_FILENAME@','relate_full'
3842
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3844
CREATEFUNCTION ST_relate(geometry,geometry)
3846
AS '@MODULE_FILENAME@','relate_full'
3847
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3849
CREATEFUNCTION relate(geometry,geometry,text)
3851
AS '@MODULE_FILENAME@','relate_pattern'
3852
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3854
CREATEFUNCTION ST_Relate(geometry,geometry,text)
3856
AS '@MODULE_FILENAME@','relate_pattern'
3857
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3859
CREATEFUNCTION disjoint(geometry,geometry)
3861
AS '@MODULE_FILENAME@'
3862
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3864
CREATEFUNCTION ST_Disjoint(geometry,geometry)
3866
AS '@MODULE_FILENAME@','disjoint'
3867
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3869
CREATEFUNCTION touches(geometry,geometry)
3871
AS '@MODULE_FILENAME@'
3872
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3874
CREATEFUNCTION _ST_Touches(geometry,geometry)
3876
AS '@MODULE_FILENAME@','touches'
3877
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3879
CREATEFUNCTION ST_Touches(geometry,geometry)
3881
AS 'SELECT $1 && $2 AND _ST_Touches($1,$2)'
3882
LANGUAGE 'SQL' _IMMUTABLE; -- WITH (iscachable);
3884
CREATEFUNCTION _ST_DWithin(geometry,geometry,float8)
3886
AS '@MODULE_FILENAME@', 'LWGEOM_dwithin'
3887
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3889
CREATEFUNCTION ST_DWithin(geometry, geometry, float8)
3891
AS 'SELECT $1 && ST_Expand($2,$3) AND $2 && ST_Expand($1,$3) AND _ST_DWithin($1, $2, $3)'
3892
LANGUAGE 'SQL' _IMMUTABLE; -- WITH (iscachable);
3894
CREATEFUNCTION intersects(geometry,geometry)
3896
AS '@MODULE_FILENAME@'
3897
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3899
CREATEFUNCTION _ST_Intersects(geometry,geometry)
3901
AS '@MODULE_FILENAME@','intersects'
3902
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3904
CREATEFUNCTION ST_Intersects(geometry,geometry)
3906
AS 'SELECT $1 && $2 AND _ST_Intersects($1,$2)'
3907
LANGUAGE 'SQL' _IMMUTABLE; -- WITH (iscachable);
3908
CREATEFUNCTION crosses(geometry,geometry)
3910
AS '@MODULE_FILENAME@'
3911
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3913
CREATEFUNCTION _ST_Crosses(geometry,geometry)
3915
AS '@MODULE_FILENAME@','crosses'
3916
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3918
CREATEFUNCTION ST_Crosses(geometry,geometry)
3920
AS 'SELECT $1 && $2 AND _ST_Crosses($1,$2)'
3921
LANGUAGE 'SQL' _IMMUTABLE; -- WITH (iscachable);
3923
CREATEFUNCTION within(geometry,geometry)
3925
AS '@MODULE_FILENAME@'
3926
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3928
CREATEFUNCTION _ST_Within(geometry,geometry)
3930
AS '@MODULE_FILENAME@','within'
3931
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3933
CREATEFUNCTION ST_Within(geometry,geometry)
3935
AS 'SELECT $1 && $2 AND _ST_Within($1,$2)'
3936
LANGUAGE 'SQL' _IMMUTABLE; -- WITH (iscachable);
3938
CREATEFUNCTION Contains(geometry,geometry)
3940
AS '@MODULE_FILENAME@'
3941
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3943
CREATEFUNCTION _ST_Contains(geometry,geometry)
3945
AS '@MODULE_FILENAME@','contains'
3946
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3948
CREATEFUNCTION ST_Contains(geometry,geometry)
3950
AS 'SELECT $1 && $2 AND _ST_Contains($1,$2)'
3951
LANGUAGE 'SQL' _IMMUTABLE; -- WITH (iscachable);
3953
#if GEOS_VERNUM >= 30
3954
CREATEFUNCTION _ST_CoveredBy(geometry,geometry)
3956
AS '@MODULE_FILENAME@', 'coveredby'
3957
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3959
CREATEFUNCTION ST_CoveredBy(geometry,geometry)
3961
AS 'SELECT $1 && $2 AND _ST_CoveredBy($1,$2)'
3962
LANGUAGE 'SQL' _IMMUTABLE; -- WITH(iscachable);
3964
CREATEFUNCTION _ST_Covers(geometry,geometry)
3966
AS '@MODULE_FILENAME@', 'covers'
3967
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3969
CREATEFUNCTION ST_Covers(geometry,geometry)
3971
AS 'SELECT $1 && $2 AND _ST_Covers($1,$2)'
3972
LANGUAGE 'SQL' _IMMUTABLE; -- WITH (iscachable);
3975
#if GEOS_VERNUM >= 31
3976
CREATEFUNCTION _ST_ContainsProperly(geometry,geometry)
3978
AS '@MODULE_FILENAME@','containsproperly'
3979
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3981
CREATEFUNCTION ST_ContainsProperly(geometry,geometry)
3983
AS 'SELECT $1 && $2 AND _ST_ContainsProperly($1,$2)'
3984
LANGUAGE 'SQL' _IMMUTABLE; -- WITH (iscachable);
3987
CREATEFUNCTION overlaps(geometry,geometry)
3989
AS '@MODULE_FILENAME@'
3990
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3992
CREATEFUNCTION _ST_Overlaps(geometry,geometry)
3994
AS '@MODULE_FILENAME@','overlaps'
3995
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
3997
CREATEFUNCTION ST_Overlaps(geometry,geometry)
3999
AS 'SELECT $1 && $2 AND _ST_Overlaps($1,$2)'
4000
LANGUAGE 'SQL' _IMMUTABLE; -- WITH (iscachable);
4002
CREATEFUNCTION IsValid(geometry)
4004
AS '@MODULE_FILENAME@', 'isvalid'
4005
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4007
CREATEFUNCTION ST_IsValid(geometry)
4009
AS '@MODULE_FILENAME@', 'isvalid'
4010
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4012
CREATEFUNCTION GEOSnoop(geometry)
4014
AS '@MODULE_FILENAME@', 'GEOSnoop'
4015
LANGUAGE 'C' _VOLATILE_STRICT; -- WITH (isstrict,iscachable);
4017
CREATEFUNCTION JTSnoop(geometry)
4019
AS '@MODULE_FILENAME@', 'JTSnoop'
4020
LANGUAGE 'C' _VOLATILE_STRICT; -- WITH (isstrict,iscachable);
4022
CREATEFUNCTION Centroid(geometry)
4024
AS '@MODULE_FILENAME@'
4025
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4027
CREATEFUNCTION ST_Centroid(geometry)
4029
AS '@MODULE_FILENAME@', 'centroid'
4030
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4032
CREATEFUNCTION IsRing(geometry)
4034
AS '@MODULE_FILENAME@'
4035
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4037
CREATEFUNCTION ST_IsRing(geometry)
4039
AS '@MODULE_FILENAME@', 'isring'
4040
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4042
CREATEFUNCTION PointOnSurface(geometry)
4044
AS '@MODULE_FILENAME@'
4045
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4047
CREATEFUNCTION ST_PointOnSurface(geometry)
4049
AS '@MODULE_FILENAME@', 'pointonsurface'
4050
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4052
CREATEFUNCTION IsSimple(geometry)
4054
AS '@MODULE_FILENAME@', 'issimple'
4055
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4057
CREATEFUNCTION ST_IsSimple(geometry)
4059
AS '@MODULE_FILENAME@', 'issimple'
4060
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4062
CREATEFUNCTION Equals(geometry,geometry)
4064
AS '@MODULE_FILENAME@','geomequals'
4065
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4067
CREATEFUNCTION ST_Equals(geometry,geometry)
4069
AS '@MODULE_FILENAME@','geomequals'
4070
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4073
-----------------------------------------------------------------------
4074
-----------------------------------------------------------------------
4075
CREATEFUNCTION AsSVG(geometry,int4,int4)
4077
AS '@MODULE_FILENAME@','assvg_geometry'
4078
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4080
CREATEFUNCTION ST_AsSVG(geometry,int4,int4)
4082
AS '@MODULE_FILENAME@','assvg_geometry'
4083
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4085
CREATEFUNCTION AsSVG(geometry,int4)
4087
AS '@MODULE_FILENAME@','assvg_geometry'
4088
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4090
CREATEFUNCTION ST_AsSVG(geometry,int4)
4092
AS '@MODULE_FILENAME@','assvg_geometry'
4093
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4095
CREATEFUNCTION AsSVG(geometry)
4097
AS '@MODULE_FILENAME@','assvg_geometry'
4098
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4100
CREATEFUNCTION ST_AsSVG(geometry)
4102
AS '@MODULE_FILENAME@','assvg_geometry'
4103
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4105
-----------------------------------------------------------------------
4106
-----------------------------------------------------------------------
4107
CREATEFUNCTION _ST_AsGML(int4, geometry, int4)
4109
AS '@MODULE_FILENAME@','LWGEOM_asGML'
4110
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4112
CREATEFUNCTION AsGML(geometry, int4)
4114
AS 'SELECT _ST_AsGML(2, $1, $2)'
4115
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4117
CREATEFUNCTION ST_AsGML(geometry, int4)
4119
AS 'SELECT _ST_AsGML(2, $1, $2)'
4120
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4122
CREATEFUNCTION AsGML(geometry)
4124
AS 'SELECT _ST_AsGML(2, $1, 15)'
4125
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4127
CREATEFUNCTION ST_AsGML(geometry)
4129
AS 'SELECT _ST_AsGML(2, $1, 15)'
4130
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4132
CREATEFUNCTION ST_AsGML(int4, geometry)
4134
AS 'SELECT _ST_AsGML($1, $2, 15)'
4135
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4137
CREATEFUNCTION ST_AsGML(int4, geometry, int4)
4139
AS 'SELECT _ST_AsGML($1, $2, $3)'
4140
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4142
-----------------------------------------------------------------------
4143
-----------------------------------------------------------------------
4146
CREATEFUNCTION _ST_AsKML(int4, geometry, int4)
4148
AS '@MODULE_FILENAME@','LWGEOM_asKML'
4149
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4151
CREATEFUNCTION AsKML(geometry, int4)
4153
AS 'SELECT _ST_AsKML(2, transform($1,4326), $2)'
4154
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4156
CREATEFUNCTION ST_AsKML(geometry, int4)
4158
AS 'SELECT _ST_AsKML(2, ST_Transform($1,4326), $2)'
4159
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4161
CREATEFUNCTION AsKML(geometry)
4163
AS 'SELECT _ST_AsKML(2, transform($1,4326), 15)'
4164
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4166
CREATEFUNCTION AsKML(int4, geometry, int4)
4168
AS 'SELECT _ST_AsKML($1, transform($2,4326), $3)'
4169
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4171
CREATEFUNCTION ST_AsKML(geometry)
4173
AS 'SELECT _ST_AsKML(2, ST_Transform($1,4326), 15)'
4174
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4176
CREATEFUNCTION ST_AsKML(int4, geometry)
4178
AS 'SELECT _ST_AsKML($1, ST_Transform($2,4326), 15)'
4179
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4181
CREATEFUNCTION ST_AsKML(int4, geometry, int4)
4183
AS 'SELECT _ST_AsKML($1, ST_Transform($2,4326), $3)'
4184
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4187
-----------------------------------------------------------------------
4188
-----------------------------------------------------------------------
4189
CREATEFUNCTION _ST_AsGeoJson(int4, geometry, int4, int4)
4191
AS '@MODULE_FILENAME@','LWGEOM_asGeoJson'
4192
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4194
CREATEFUNCTION ST_AsGeoJson(geometry, int4)
4196
AS 'SELECT _ST_AsGeoJson(1, $1, $2, 0)'
4197
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4199
CREATEFUNCTION ST_AsGeoJson(geometry)
4201
AS 'SELECT _ST_AsGeoJson(1, $1, 15, 0)'
4202
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4204
CREATEFUNCTION ST_AsGeoJson(int4, geometry)
4206
AS 'SELECT _ST_AsGeoJson($1, $2, 15, 0)'
4207
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4209
CREATEFUNCTION ST_AsGeoJson(int4, geometry, int4)
4211
AS 'SELECT _ST_AsGeoJson($1, $2, $3, 0)'
4212
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4214
CREATEFUNCTION ST_AsGeoJson(geometry, int4, int4)
4216
AS 'SELECT _ST_AsGeoJson(1, $1, $2, $3)'
4217
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4219
CREATEFUNCTION ST_AsGeoJson(int4, geometry, int4, int4)
4221
AS 'SELECT _ST_AsGeoJson($1, $2, $3, $4)'
4222
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4225
------------------------------------------------------------------------
4226
------------------------------------------------------------------------
4228
CREATEFUNCTION NumPoints(geometry)
4230
AS '@MODULE_FILENAME@', 'LWGEOM_numpoints_linestring'
4231
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4233
CREATEFUNCTION ST_NumPoints(geometry)
4235
AS '@MODULE_FILENAME@', 'LWGEOM_numpoints_linestring'
4236
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4238
CREATEFUNCTION NumGeometries(geometry)
4240
AS '@MODULE_FILENAME@', 'LWGEOM_numgeometries_collection'
4241
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4243
CREATEFUNCTION ST_NumGeometries(geometry)
4245
AS '@MODULE_FILENAME@', 'LWGEOM_numgeometries_collection'
4246
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4248
CREATEFUNCTION GeometryN(geometry,integer)
4250
AS '@MODULE_FILENAME@', 'LWGEOM_geometryn_collection'
4251
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4253
CREATEFUNCTION ST_GeometryN(geometry,integer)
4255
AS '@MODULE_FILENAME@', 'LWGEOM_geometryn_collection'
4256
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4258
CREATEFUNCTION Dimension(geometry)
4260
AS '@MODULE_FILENAME@', 'LWGEOM_dimension'
4261
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4263
CREATEFUNCTION ST_Dimension(geometry)
4265
AS '@MODULE_FILENAME@', 'LWGEOM_dimension'
4266
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4268
CREATEFUNCTION ExteriorRing(geometry)
4270
AS '@MODULE_FILENAME@','LWGEOM_exteriorring_polygon'
4271
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4273
CREATEFUNCTION ST_ExteriorRing(geometry)
4275
AS '@MODULE_FILENAME@','LWGEOM_exteriorring_polygon'
4276
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4278
CREATEFUNCTION NumInteriorRings(geometry)
4280
AS '@MODULE_FILENAME@','LWGEOM_numinteriorrings_polygon'
4281
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4283
CREATEFUNCTION ST_NumInteriorRings(geometry)
4285
AS '@MODULE_FILENAME@','LWGEOM_numinteriorrings_polygon'
4286
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4288
CREATEFUNCTION NumInteriorRing(geometry)
4290
AS '@MODULE_FILENAME@','LWGEOM_numinteriorrings_polygon'
4291
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4293
CREATEFUNCTION ST_NumInteriorRing(geometry)
4295
AS '@MODULE_FILENAME@','LWGEOM_numinteriorrings_polygon'
4296
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4298
CREATEFUNCTION InteriorRingN(geometry,integer)
4300
AS '@MODULE_FILENAME@','LWGEOM_interiorringn_polygon'
4301
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4303
CREATEFUNCTION ST_InteriorRingN(geometry,integer)
4305
AS '@MODULE_FILENAME@','LWGEOM_interiorringn_polygon'
4306
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4308
CREATEFUNCTION GeometryType(geometry)
4310
AS '@MODULE_FILENAME@', 'LWGEOM_getTYPE'
4311
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4313
CREATEFUNCTION ST_GeometryType(geometry)
4317
gtype text := geometrytype($1);
4319
IF (gtype IN (''POINT'', ''POINTM'')) THEN
4321
ELSIF (gtype IN (''LINESTRING'', ''LINESTRINGM'')) THEN
4322
gtype := ''LineString'';
4323
ELSIF (gtype IN (''POLYGON'', ''POLYGONM'')) THEN
4324
gtype := ''Polygon'';
4325
ELSIF (gtype IN (''MULTIPOINT'', ''MULTIPOINTM'')) THEN
4326
gtype := ''MultiPoint'';
4327
ELSIF (gtype IN (''MULTILINESTRING'', ''MULTILINESTRINGM'')) THEN
4328
gtype := ''MultiLineString'';
4329
ELSIF (gtype IN (''MULTIPOLYGON'', ''MULTIPOLYGONM'')) THEN
4330
gtype := ''MultiPolygon'';
4332
gtype := ''Geometry'';
4334
RETURN ''ST_'' || gtype;
4337
LANGUAGE 'plpgsql' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4339
CREATEFUNCTION PointN(geometry,integer)
4341
AS '@MODULE_FILENAME@','LWGEOM_pointn_linestring'
4342
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4344
CREATEFUNCTION ST_PointN(geometry,integer)
4346
AS '@MODULE_FILENAME@','LWGEOM_pointn_linestring'
4347
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4349
CREATEFUNCTION X(geometry)
4351
AS '@MODULE_FILENAME@','LWGEOM_x_point'
4352
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4354
CREATEFUNCTION ST_X(geometry)
4356
AS '@MODULE_FILENAME@','LWGEOM_x_point'
4357
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4359
CREATEFUNCTION Y(geometry)
4361
AS '@MODULE_FILENAME@','LWGEOM_y_point'
4362
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4364
CREATEFUNCTION ST_Y(geometry)
4366
AS '@MODULE_FILENAME@','LWGEOM_y_point'
4367
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4369
CREATEFUNCTION Z(geometry)
4371
AS '@MODULE_FILENAME@','LWGEOM_z_point'
4372
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4374
CREATEFUNCTION SE_Z(geometry)
4376
AS '@MODULE_FILENAME@','LWGEOM_z_point'
4377
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4379
CREATEFUNCTION ST_Z(geometry)
4381
AS '@MODULE_FILENAME@','LWGEOM_z_point'
4382
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4384
CREATEFUNCTION M(geometry)
4386
AS '@MODULE_FILENAME@','LWGEOM_m_point'
4387
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4389
CREATEFUNCTION ST_M(geometry)
4391
AS '@MODULE_FILENAME@','LWGEOM_m_point'
4392
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4394
CREATEFUNCTION StartPoint(geometry)
4396
AS '@MODULE_FILENAME@', 'LWGEOM_startpoint_linestring'
4397
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4399
CREATEFUNCTION ST_StartPoint(geometry)
4401
AS '@MODULE_FILENAME@', 'LWGEOM_startpoint_linestring'
4402
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4404
CREATEFUNCTION EndPoint(geometry)
4406
AS '@MODULE_FILENAME@', 'LWGEOM_endpoint_linestring'
4407
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4409
CREATEFUNCTION ST_EndPoint(geometry)
4411
AS '@MODULE_FILENAME@', 'LWGEOM_endpoint_linestring'
4412
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4414
CREATEFUNCTION IsClosed(geometry)
4416
AS '@MODULE_FILENAME@', 'LWGEOM_isclosed_linestring'
4417
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4419
CREATEFUNCTION ST_IsClosed(geometry)
4421
AS '@MODULE_FILENAME@', 'LWGEOM_isclosed_linestring'
4422
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4424
CREATEFUNCTION IsEmpty(geometry)
4426
AS '@MODULE_FILENAME@', 'LWGEOM_isempty'
4427
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4429
CREATEFUNCTION ST_IsEmpty(geometry)
4431
AS '@MODULE_FILENAME@', 'LWGEOM_isempty'
4432
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
4434
CREATEFUNCTION SRID(geometry)
4436
AS '@MODULE_FILENAME@','LWGEOM_getSRID'
4437
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4439
CREATEFUNCTION ST_SRID(geometry)
4441
AS '@MODULE_FILENAME@','LWGEOM_getSRID'
4442
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4444
CREATEFUNCTION SetSRID(geometry,int4)
4446
AS '@MODULE_FILENAME@','LWGEOM_setSRID'
4447
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4449
CREATEFUNCTION ST_SetSRID(geometry,int4)
4451
AS '@MODULE_FILENAME@','LWGEOM_setSRID'
4452
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4454
CREATEFUNCTION AsBinary(geometry)
4456
AS '@MODULE_FILENAME@','LWGEOM_asBinary'
4457
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4459
CREATEFUNCTION ST_AsBinary(geometry)
4461
AS '@MODULE_FILENAME@','LWGEOM_asBinary'
4462
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4464
CREATEFUNCTION AsBinary(geometry,text)
4466
AS '@MODULE_FILENAME@','LWGEOM_asBinary'
4467
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4469
CREATEFUNCTION ST_AsBinary(geometry,text)
4471
AS '@MODULE_FILENAME@','LWGEOM_asBinary'
4472
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4474
CREATEFUNCTION AsText(geometry)
4476
AS '@MODULE_FILENAME@','LWGEOM_asText'
4477
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4479
CREATEFUNCTION ST_AsText(geometry)
4481
AS '@MODULE_FILENAME@','LWGEOM_asText'
4482
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4484
CREATEFUNCTION GeometryFromText(text)
4486
AS '@MODULE_FILENAME@','LWGEOM_from_text'
4487
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4489
CREATEFUNCTION ST_GeometryFromText(text)
4491
AS '@MODULE_FILENAME@','LWGEOM_from_text'
4492
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4494
CREATEFUNCTION GeometryFromText(text, int4)
4496
AS '@MODULE_FILENAME@','LWGEOM_from_text'
4497
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4499
CREATEFUNCTION ST_GeometryFromText(text, int4)
4501
AS '@MODULE_FILENAME@','LWGEOM_from_text'
4502
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4504
CREATEFUNCTION GeomFromText(text)
4505
RETURNS geometry AS 'SELECT geometryfromtext($1)'
4506
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4508
CREATEFUNCTION ST_GeomFromText(text)
4509
RETURNS geometry AS 'SELECT geometryfromtext($1)'
4510
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4512
CREATEFUNCTION GeomFromText(text, int4)
4513
RETURNS geometry AS 'SELECT geometryfromtext($1, $2)'
4514
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4516
CREATEFUNCTION ST_GeomFromText(text, int4)
4517
RETURNS geometry AS 'SELECT geometryfromtext($1, $2)'
4518
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4520
CREATEFUNCTION PointFromText(text)
4523
SELECT CASE WHEN geometrytype(GeomFromText($1)) = ''POINT''
4524
THEN GeomFromText($1)
4527
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4529
CREATEFUNCTION ST_PointFromText(text)
4532
SELECT CASE WHEN geometrytype(GeomFromText($1)) = ''POINT''
4533
THEN GeomFromText($1)
4536
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4538
CREATEFUNCTION PointFromText(text, int4)
4541
SELECT CASE WHEN geometrytype(GeomFromText($1, $2)) = ''POINT''
4542
THEN GeomFromText($1,$2)
4545
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4547
CREATEFUNCTION ST_PointFromText(text, int4)
4550
SELECT CASE WHEN geometrytype(GeomFromText($1, $2)) = ''POINT''
4551
THEN GeomFromText($1, $2)
4554
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4556
CREATEFUNCTION LineFromText(text)
4559
SELECT CASE WHEN geometrytype(GeomFromText($1)) = ''LINESTRING''
4560
THEN GeomFromText($1)
4563
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4565
CREATEFUNCTION ST_LineFromText(text)
4568
SELECT CASE WHEN geometrytype(GeomFromText($1)) = ''LINESTRING''
4569
THEN GeomFromText($1)
4572
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4574
CREATEFUNCTION LineFromText(text, int4)
4577
SELECT CASE WHEN geometrytype(GeomFromText($1, $2)) = ''LINESTRING''
4578
THEN GeomFromText($1,$2)
4581
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4583
CREATEFUNCTION ST_LineFromText(text, int4)
4586
SELECT CASE WHEN geometrytype(GeomFromText($1, $2)) = ''LINESTRING''
4587
THEN GeomFromText($1,$2)
4590
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4592
CREATEFUNCTION LineStringFromText(text)
4594
AS 'SELECT LineFromText($1)'
4595
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4597
CREATEFUNCTION LineStringFromText(text, int4)
4599
AS 'SELECT LineFromText($1, $2)'
4600
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4602
CREATEFUNCTION PolyFromText(text)
4605
SELECT CASE WHEN geometrytype(GeomFromText($1)) = ''POLYGON''
4606
THEN GeomFromText($1)
4609
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4611
CREATEFUNCTION ST_PolyFromText(text)
4614
SELECT CASE WHEN geometrytype(GeomFromText($1)) = ''POLYGON''
4615
THEN GeomFromText($1)
4618
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4620
CREATEFUNCTION PolyFromText(text, int4)
4623
SELECT CASE WHEN geometrytype(GeomFromText($1, $2)) = ''POLYGON''
4624
THEN GeomFromText($1,$2)
4627
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4629
CREATEFUNCTION ST_PolyFromText(text, int4)
4632
SELECT CASE WHEN geometrytype(GeomFromText($1, $2)) = ''POLYGON''
4633
THEN GeomFromText($1, $2)
4636
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4638
CREATEFUNCTION PolygonFromText(text, int4)
4640
AS 'SELECT PolyFromText($1, $2)'
4641
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4643
CREATEFUNCTION ST_PolygonFromText(text, int4)
4645
AS 'SELECT PolyFromText($1, $2)'
4646
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4648
CREATEFUNCTION PolygonFromText(text)
4650
AS 'SELECT PolyFromText($1)'
4651
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4653
CREATEFUNCTION ST_PolygonFromText(text)
4655
AS 'SELECT PolyFromText($1)'
4656
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4658
CREATEFUNCTION MLineFromText(text, int4)
4662
WHEN geometrytype(GeomFromText($1, $2)) = ''MULTILINESTRING''
4663
THEN GeomFromText($1,$2)
4666
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4668
CREATEFUNCTION ST_MLineFromText(text, int4)
4672
WHEN geometrytype(GeomFromText($1, $2)) = ''MULTILINESTRING''
4673
THEN GeomFromText($1,$2)
4676
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4678
CREATEFUNCTION MLineFromText(text)
4681
SELECT CASE WHEN geometrytype(GeomFromText($1)) = ''MULTILINESTRING''
4682
THEN GeomFromText($1)
4685
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4687
CREATEFUNCTION ST_MLineFromText(text)
4690
SELECT CASE WHEN geometrytype(GeomFromText($1)) = ''MULTILINESTRING''
4691
THEN GeomFromText($1)
4694
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4696
CREATEFUNCTION MultiLineStringFromText(text)
4698
AS 'SELECT MLineFromText($1)'
4699
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4701
CREATEFUNCTION ST_MultiLineStringFromText(text)
4703
AS 'SELECT MLineFromText($1)'
4704
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4706
CREATEFUNCTION MultiLineStringFromText(text, int4)
4708
AS 'SELECT MLineFromText($1, $2)'
4709
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4711
CREATEFUNCTION ST_MultiLineStringFromText(text, int4)
4713
AS 'SELECT MLineFromText($1, $2)'
4714
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4716
CREATEFUNCTION MPointFromText(text, int4)
4719
SELECT CASE WHEN geometrytype(GeomFromText($1,$2)) = ''MULTIPOINT''
4720
THEN GeomFromText($1,$2)
4723
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4725
CREATEFUNCTION ST_MPointFromText(text, int4)
4728
SELECT CASE WHEN geometrytype(GeomFromText($1, $2)) = ''MULTIPOINT''
4729
THEN GeomFromText($1, $2)
4732
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4734
CREATEFUNCTION MPointFromText(text)
4737
SELECT CASE WHEN geometrytype(GeomFromText($1)) = ''MULTIPOINT''
4738
THEN GeomFromText($1)
4741
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4743
CREATEFUNCTION ST_MPointFromText(text)
4746
SELECT CASE WHEN geometrytype(GeomFromText($1)) = ''MULTIPOINT''
4747
THEN GeomFromText($1)
4750
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4752
CREATEFUNCTION MultiPointFromText(text, int4)
4754
AS 'SELECT MPointFromText($1, $2)'
4755
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4757
CREATEFUNCTION MultiPointFromText(text)
4759
AS 'SELECT MPointFromText($1)'
4760
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4762
CREATEFUNCTION ST_MultiPointFromText(text)
4764
AS 'SELECT MPointFromText($1)'
4765
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4767
CREATEFUNCTION MultiPointFromText(text)
4769
AS 'SELECT MPointFromText($1)'
4770
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4772
CREATEFUNCTION ST_MultiPointFromText(text)
4774
AS 'SELECT MPointFromText($1)'
4775
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4777
CREATEFUNCTION MPolyFromText(text, int4)
4780
SELECT CASE WHEN geometrytype(GeomFromText($1, $2)) = ''MULTIPOLYGON''
4781
THEN GeomFromText($1,$2)
4784
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4786
CREATEFUNCTION ST_MPolyFromText(text, int4)
4789
SELECT CASE WHEN geometrytype(GeomFromText($1, $2)) = ''MULTIPOLYGON''
4790
THEN GeomFromText($1,$2)
4793
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4795
CREATEFUNCTION MPolyFromText(text)
4798
SELECT CASE WHEN geometrytype(GeomFromText($1)) = ''MULTIPOLYGON''
4799
THEN GeomFromText($1)
4802
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4804
--Availability: 1.2.2
4805
CREATEFUNCTION ST_MPolyFromText(text)
4808
SELECT CASE WHEN geometrytype(GeomFromText($1)) = ''MULTIPOLYGON''
4809
THEN GeomFromText($1)
4812
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4814
CREATEFUNCTION MultiPolygonFromText(text, int4)
4816
AS 'SELECT MPolyFromText($1, $2)'
4817
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4819
CREATEFUNCTION ST_MultiPolygonFromText(text, int4)
4821
AS 'SELECT MPolyFromText($1, $2)'
4822
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4824
CREATEFUNCTION MultiPolygonFromText(text)
4826
AS 'SELECT MPolyFromText($1)'
4827
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4829
CREATEFUNCTION ST_MultiPolygonFromText(text)
4831
AS 'SELECT MPolyFromText($1)'
4832
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4834
CREATEFUNCTION GeomCollFromText(text, int4)
4838
WHEN geometrytype(GeomFromText($1, $2)) = ''GEOMETRYCOLLECTION''
4839
THEN GeomFromText($1,$2)
4842
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4844
CREATEFUNCTION ST_GeomCollFromText(text, int4)
4848
WHEN geometrytype(GeomFromText($1, $2)) = ''GEOMETRYCOLLECTION''
4849
THEN GeomFromText($1,$2)
4852
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4854
CREATEFUNCTION GeomCollFromText(text)
4858
WHEN geometrytype(GeomFromText($1)) = ''GEOMETRYCOLLECTION''
4859
THEN GeomFromText($1)
4862
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4864
CREATEFUNCTION ST_GeomCollFromText(text)
4868
WHEN geometrytype(GeomFromText($1)) = ''GEOMETRYCOLLECTION''
4869
THEN GeomFromText($1)
4872
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4874
CREATEFUNCTION GeomFromWKB(bytea)
4876
AS '@MODULE_FILENAME@','LWGEOM_from_WKB'
4877
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4879
CREATEFUNCTION ST_GeomFromWKB(bytea)
4881
AS '@MODULE_FILENAME@','LWGEOM_from_WKB'
4882
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4884
CREATEFUNCTION GeomFromWKB(bytea, int)
4886
AS 'SELECT setSRID(GeomFromWKB($1), $2)'
4887
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4889
CREATEFUNCTION ST_GeomFromWKB(bytea, int)
4891
AS 'SELECT setSRID(GeomFromWKB($1), $2)'
4892
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4894
CREATEFUNCTION PointFromWKB(bytea, int)
4897
SELECT CASE WHEN geometrytype(GeomFromWKB($1, $2)) = ''POINT''
4898
THEN GeomFromWKB($1, $2)
4901
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4903
CREATEFUNCTION ST_PointFromWKB(bytea, int)
4906
SELECT CASE WHEN geometrytype(GeomFromWKB($1, $2)) = ''POINT''
4907
THEN GeomFromWKB($1, $2)
4910
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4912
CREATEFUNCTION PointFromWKB(bytea)
4915
SELECT CASE WHEN geometrytype(GeomFromWKB($1)) = ''POINT''
4916
THEN GeomFromWKB($1)
4919
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4921
CREATEFUNCTION ST_PointFromWKB(bytea)
4924
SELECT CASE WHEN geometrytype(GeomFromWKB($1)) = ''POINT''
4925
THEN GeomFromWKB($1)
4928
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4930
CREATEFUNCTION LineFromWKB(bytea, int)
4933
SELECT CASE WHEN geometrytype(GeomFromWKB($1, $2)) = ''LINESTRING''
4934
THEN GeomFromWKB($1, $2)
4937
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4939
CREATEFUNCTION ST_LineFromWKB(bytea, int)
4942
SELECT CASE WHEN geometrytype(GeomFromWKB($1, $2)) = ''LINESTRING''
4943
THEN GeomFromWKB($1, $2)
4946
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4948
CREATEFUNCTION LineFromWKB(bytea)
4951
SELECT CASE WHEN geometrytype(GeomFromWKB($1)) = ''LINESTRING''
4952
THEN GeomFromWKB($1)
4955
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4957
CREATEFUNCTION ST_LineFromWKB(bytea)
4960
SELECT CASE WHEN geometrytype(GeomFromWKB($1)) = ''LINESTRING''
4961
THEN GeomFromWKB($1)
4964
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4966
CREATEFUNCTION LinestringFromWKB(bytea, int)
4969
SELECT CASE WHEN geometrytype(GeomFromWKB($1, $2)) = ''LINESTRING''
4970
THEN GeomFromWKB($1, $2)
4973
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4975
CREATEFUNCTION ST_LinestringFromWKB(bytea, int)
4978
SELECT CASE WHEN geometrytype(GeomFromWKB($1, $2)) = ''LINESTRING''
4979
THEN GeomFromWKB($1, $2)
4982
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4984
CREATEFUNCTION LinestringFromWKB(bytea)
4987
SELECT CASE WHEN geometrytype(GeomFromWKB($1)) = ''LINESTRING''
4988
THEN GeomFromWKB($1)
4991
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
4993
CREATEFUNCTION ST_LinestringFromWKB(bytea)
4996
SELECT CASE WHEN geometrytype(GeomFromWKB($1)) = ''LINESTRING''
4997
THEN GeomFromWKB($1)
5000
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5002
CREATEFUNCTION PolyFromWKB(bytea, int)
5005
SELECT CASE WHEN geometrytype(GeomFromWKB($1, $2)) = ''POLYGON''
5006
THEN GeomFromWKB($1, $2)
5009
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5011
CREATEFUNCTION ST_PolyFromWKB(bytea, int)
5014
SELECT CASE WHEN geometrytype(GeomFromWKB($1, $2)) = ''POLYGON''
5015
THEN GeomFromWKB($1, $2)
5018
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5020
CREATEFUNCTION PolyFromWKB(bytea)
5023
SELECT CASE WHEN geometrytype(GeomFromWKB($1)) = ''POLYGON''
5024
THEN GeomFromWKB($1)
5027
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5029
CREATEFUNCTION ST_PolyFromWKB(bytea)
5032
SELECT CASE WHEN geometrytype(GeomFromWKB($1)) = ''POLYGON''
5033
THEN GeomFromWKB($1)
5036
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5038
CREATEFUNCTION PolygonFromWKB(bytea, int)
5041
SELECT CASE WHEN geometrytype(GeomFromWKB($1,$2)) = ''POLYGON''
5042
THEN GeomFromWKB($1, $2)
5045
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5047
CREATEFUNCTION ST_PolygonFromWKB(bytea, int)
5050
SELECT CASE WHEN geometrytype(GeomFromWKB($1,$2)) = ''POLYGON''
5051
THEN GeomFromWKB($1, $2)
5054
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5056
CREATEFUNCTION PolygonFromWKB(bytea)
5059
SELECT CASE WHEN geometrytype(GeomFromWKB($1)) = ''POLYGON''
5060
THEN GeomFromWKB($1)
5063
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5065
CREATEFUNCTION ST_PolygonFromWKB(bytea)
5068
SELECT CASE WHEN geometrytype(GeomFromWKB($1)) = ''POLYGON''
5069
THEN GeomFromWKB($1)
5072
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5074
CREATEFUNCTION MPointFromWKB(bytea, int)
5077
SELECT CASE WHEN geometrytype(GeomFromWKB($1,$2)) = ''MULTIPOINT''
5078
THEN GeomFromWKB($1, $2)
5081
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5083
CREATEFUNCTION ST_MPointFromWKB(bytea, int)
5086
SELECT CASE WHEN geometrytype(GeomFromWKB($1, $2)) = ''MULTIPOINT''
5087
THEN GeomFromWKB($1, $2)
5090
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5092
CREATEFUNCTION MPointFromWKB(bytea)
5095
SELECT CASE WHEN geometrytype(GeomFromWKB($1)) = ''MULTIPOINT''
5096
THEN GeomFromWKB($1)
5099
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5101
CREATEFUNCTION ST_MPointFromWKB(bytea)
5104
SELECT CASE WHEN geometrytype(GeomFromWKB($1)) = ''MULTIPOINT''
5105
THEN GeomFromWKB($1)
5108
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5110
CREATEFUNCTION MultiPointFromWKB(bytea, int)
5113
SELECT CASE WHEN geometrytype(GeomFromWKB($1,$2)) = ''MULTIPOINT''
5114
THEN GeomFromWKB($1, $2)
5117
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5119
CREATEFUNCTION ST_MultiPointFromWKB(bytea, int)
5122
SELECT CASE WHEN geometrytype(GeomFromWKB($1,$2)) = ''MULTIPOINT''
5123
THEN GeomFromWKB($1, $2)
5126
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5128
CREATEFUNCTION MultiPointFromWKB(bytea)
5131
SELECT CASE WHEN geometrytype(GeomFromWKB($1)) = ''MULTIPOINT''
5132
THEN GeomFromWKB($1)
5135
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5137
CREATEFUNCTION ST_MultiPointFromWKB(bytea)
5140
SELECT CASE WHEN geometrytype(GeomFromWKB($1)) = ''MULTIPOINT''
5141
THEN GeomFromWKB($1)
5144
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5146
CREATEFUNCTION MultiLineFromWKB(bytea, int)
5149
SELECT CASE WHEN geometrytype(GeomFromWKB($1, $2)) = ''MULTILINESTRING''
5150
THEN GeomFromWKB($1, $2)
5153
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5155
CREATEFUNCTION MultiLineFromWKB(bytea, int)
5158
SELECT CASE WHEN geometrytype(GeomFromWKB($1, $2)) = ''MULTILINESTRING''
5159
THEN GeomFromWKB($1, $2)
5162
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5164
CREATEFUNCTION MultiLineFromWKB(bytea)
5167
SELECT CASE WHEN geometrytype(GeomFromWKB($1)) = ''MULTILINESTRING''
5168
THEN GeomFromWKB($1)
5171
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5173
CREATEFUNCTION ST_MultiLineFromWKB(bytea)
5176
SELECT CASE WHEN geometrytype(GeomFromWKB($1)) = ''MULTILINESTRING''
5177
THEN GeomFromWKB($1)
5180
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5182
CREATEFUNCTION MLineFromWKB(bytea, int)
5185
SELECT CASE WHEN geometrytype(GeomFromWKB($1, $2)) = ''MULTILINESTRING''
5186
THEN GeomFromWKB($1, $2)
5189
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5191
CREATEFUNCTION ST_MLineFromWKB(bytea, int)
5194
SELECT CASE WHEN geometrytype(GeomFromWKB($1, $2)) = ''MULTILINESTRING''
5195
THEN GeomFromWKB($1, $2)
5198
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5200
CREATEFUNCTION MLineFromWKB(bytea)
5203
SELECT CASE WHEN geometrytype(GeomFromWKB($1)) = ''MULTILINESTRING''
5204
THEN GeomFromWKB($1)
5207
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5209
CREATEFUNCTION ST_MLineFromWKB(bytea)
5212
SELECT CASE WHEN geometrytype(GeomFromWKB($1)) = ''MULTILINESTRING''
5213
THEN GeomFromWKB($1)
5216
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5218
CREATEFUNCTION MPolyFromWKB(bytea, int)
5221
SELECT CASE WHEN geometrytype(GeomFromWKB($1, $2)) = ''MULTIPOLYGON''
5222
THEN GeomFromWKB($1, $2)
5225
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5227
CREATEFUNCTION ST_MPolyFromWKB(bytea, int)
5230
SELECT CASE WHEN geometrytype(GeomFromWKB($1, $2)) = ''MULTIPOLYGON''
5231
THEN GeomFromWKB($1, $2)
5234
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5236
CREATEFUNCTION MPolyFromWKB(bytea)
5239
SELECT CASE WHEN geometrytype(GeomFromWKB($1)) = ''MULTIPOLYGON''
5240
THEN GeomFromWKB($1)
5243
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5245
CREATEFUNCTION ST_MPolyFromWKB(bytea)
5248
SELECT CASE WHEN geometrytype(GeomFromWKB($1)) = ''MULTIPOLYGON''
5249
THEN GeomFromWKB($1)
5252
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5254
CREATEFUNCTION MultiPolyFromWKB(bytea, int)
5257
SELECT CASE WHEN geometrytype(GeomFromWKB($1, $2)) = ''MULTIPOLYGON''
5258
THEN GeomFromWKB($1, $2)
5261
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5263
CREATEFUNCTION ST_MultiPolyFromWKB(bytea, int)
5266
SELECT CASE WHEN geometrytype(GeomFromWKB($1, $2)) = ''MULTIPOLYGON''
5267
THEN GeomFromWKB($1, $2)
5270
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5272
CREATEFUNCTION MultiPolyFromWKB(bytea)
5275
SELECT CASE WHEN geometrytype(GeomFromWKB($1)) = ''MULTIPOLYGON''
5276
THEN GeomFromWKB($1)
5279
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5281
CREATEFUNCTION ST_MultiPolyFromWKB(bytea)
5284
SELECT CASE WHEN geometrytype(GeomFromWKB($1)) = ''MULTIPOLYGON''
5285
THEN GeomFromWKB($1)
5288
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5290
CREATEFUNCTION GeomCollFromWKB(bytea, int)
5294
WHEN geometrytype(GeomFromWKB($1, $2)) = ''GEOMETRYCOLLECTION''
5295
THEN GeomFromWKB($1, $2)
5298
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5300
CREATEFUNCTION ST_GeomCollFromWKB(bytea, int)
5304
WHEN geometrytype(GeomFromWKB($1, $2)) = ''GEOMETRYCOLLECTION''
5305
THEN GeomFromWKB($1, $2)
5308
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5310
CREATEFUNCTION GeomCollFromWKB(bytea)
5314
WHEN geometrytype(GeomFromWKB($1)) = ''GEOMETRYCOLLECTION''
5315
THEN GeomFromWKB($1)
5318
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5320
CREATEFUNCTION ST_GeomCollFromWKB(bytea)
5324
WHEN geometrytype(GeomFromWKB($1)) = ''GEOMETRYCOLLECTION''
5325
THEN GeomFromWKB($1)
5328
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5335
CREATE OR REPLACE FUNCTION BdPolyFromText(text, integer)
5339
geomtext alias for $1;
5344
mline := MultiLineStringFromText(geomtext, srid);
5348
RAISE EXCEPTION ''Input is not a MultiLinestring'';
5351
geom := BuildArea(mline);
5353
IF GeometryType(geom) != ''POLYGON''
5355
RAISE EXCEPTION ''Input returns more then a single polygon, try using BdMPolyFromText instead'';
5361
LANGUAGE 'plpgsql' _IMMUTABLE_STRICT;
5363
CREATE OR REPLACE FUNCTION ST_BdPolyFromText(text, integer)
5367
geomtext alias for $1;
5372
mline := MultiLineStringFromText(geomtext, srid);
5376
RAISE EXCEPTION ''Input is not a MultiLinestring'';
5379
geom := BuildArea(mline);
5381
IF GeometryType(geom) != ''POLYGON''
5383
RAISE EXCEPTION ''Input returns more then a single polygon, try using BdMPolyFromText instead'';
5389
LANGUAGE 'plpgsql' _IMMUTABLE_STRICT;
5396
CREATEFUNCTION BdMPolyFromText(text, integer)
5400
geomtext alias for $1;
5405
mline := MultiLineStringFromText(geomtext, srid);
5409
RAISE EXCEPTION ''Input is not a MultiLinestring'';
5412
geom := multi(BuildArea(mline));
5417
LANGUAGE 'plpgsql' _IMMUTABLE_STRICT;
5419
CREATEFUNCTION ST_BdMPolyFromText(text, integer)
5423
geomtext alias for $1;
5428
mline := MultiLineStringFromText(geomtext, srid);
5432
RAISE EXCEPTION ''Input is not a MultiLinestring'';
5435
geom := multi(BuildArea(mline));
5440
LANGUAGE 'plpgsql' _IMMUTABLE_STRICT;
5442
#include "long_xact.sql.in"
5443
#include "sqlmm.sql.in"
5445
---------------------------------------------------------------
5446
---------------------------------------------------------------
5451
CREATEFUNCTION ST_CurveToLine(geometry, integer)
5453
AS '@MODULE_FILENAME@', 'LWGEOM_curve_segmentize'
5454
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5458
CREATEFUNCTION ST_CurveToLine(geometry)
5459
RETURNS geometry AS 'SELECT ST_CurveToLine($1, 32)'
5460
LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
5462
CREATEFUNCTION ST_HasArc(geometry)
5464
AS '@MODULE_FILENAME@', 'LWGEOM_has_arc'
5465
LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
5467
CREATEFUNCTION ST_LineToCurve(geometry)
5469
AS '@MODULE_FILENAME@', 'LWGEOM_line_desegmentize'
5470
LANGUAGE 'C' _IMMUTABLE_STRICT;
5471
---------------------------------------------------------------
5472
---------------------------------------------------------------