pgLatLon

view latlon--0.3--0.4.sql @ 20:8a8d6dc44337

Changed/fixed behavior of "contains" operator regarding perimeters; Added "contains" operator for ebox type; Minor changes in README
author jbe
date Mon Sep 12 18:00:52 2016 +0200 (2016-09-12)
parents e319679cefbd
children
line source
2 CREATE OR REPLACE FUNCTION ekey_point_in_dummy(cstring)
3 RETURNS ekey_point
4 LANGUAGE C IMMUTABLE STRICT
5 AS '$libdir/latlon-v0004', 'pgl_notimpl';
7 CREATE OR REPLACE FUNCTION ekey_point_out_dummy(ekey_point)
8 RETURNS cstring
9 LANGUAGE C IMMUTABLE STRICT
10 AS '$libdir/latlon-v0004', 'pgl_notimpl';
12 CREATE OR REPLACE FUNCTION ekey_area_in_dummy(cstring)
13 RETURNS ekey_area
14 LANGUAGE C IMMUTABLE STRICT
15 AS '$libdir/latlon-v0004', 'pgl_notimpl';
17 CREATE OR REPLACE FUNCTION ekey_area_out_dummy(ekey_area)
18 RETURNS cstring
19 LANGUAGE C IMMUTABLE STRICT
20 AS '$libdir/latlon-v0004', 'pgl_notimpl';
22 CREATE OR REPLACE FUNCTION epoint_in(cstring)
23 RETURNS epoint
24 LANGUAGE C IMMUTABLE STRICT
25 AS '$libdir/latlon-v0004', 'pgl_epoint_in';
27 CREATE OR REPLACE FUNCTION ebox_in(cstring)
28 RETURNS ebox
29 LANGUAGE C IMMUTABLE STRICT
30 AS '$libdir/latlon-v0004', 'pgl_ebox_in';
32 CREATE OR REPLACE FUNCTION ecircle_in(cstring)
33 RETURNS ecircle
34 LANGUAGE C IMMUTABLE STRICT
35 AS '$libdir/latlon-v0004', 'pgl_ecircle_in';
37 CREATE OR REPLACE FUNCTION ecluster_in(cstring)
38 RETURNS ecluster
39 LANGUAGE C IMMUTABLE STRICT
40 AS '$libdir/latlon-v0004', 'pgl_ecluster_in';
42 CREATE OR REPLACE FUNCTION epoint_out(epoint)
43 RETURNS cstring
44 LANGUAGE C IMMUTABLE STRICT
45 AS '$libdir/latlon-v0004', 'pgl_epoint_out';
47 CREATE OR REPLACE FUNCTION ebox_out(ebox)
48 RETURNS cstring
49 LANGUAGE C IMMUTABLE STRICT
50 AS '$libdir/latlon-v0004', 'pgl_ebox_out';
52 CREATE OR REPLACE FUNCTION ecircle_out(ecircle)
53 RETURNS cstring
54 LANGUAGE C IMMUTABLE STRICT
55 AS '$libdir/latlon-v0004', 'pgl_ecircle_out';
57 CREATE OR REPLACE FUNCTION ecluster_out(ecluster)
58 RETURNS cstring
59 LANGUAGE C IMMUTABLE STRICT
60 AS '$libdir/latlon-v0004', 'pgl_ecluster_out';
62 CREATE OR REPLACE FUNCTION epoint_recv(internal)
63 RETURNS epoint
64 LANGUAGE C IMMUTABLE STRICT
65 AS '$libdir/latlon-v0004', 'pgl_epoint_recv';
67 CREATE OR REPLACE FUNCTION ebox_recv(internal)
68 RETURNS ebox
69 LANGUAGE C IMMUTABLE STRICT
70 AS '$libdir/latlon-v0004', 'pgl_ebox_recv';
72 CREATE OR REPLACE FUNCTION ecircle_recv(internal)
73 RETURNS ecircle
74 LANGUAGE C IMMUTABLE STRICT
75 AS '$libdir/latlon-v0004', 'pgl_ecircle_recv';
77 CREATE OR REPLACE FUNCTION epoint_send(epoint)
78 RETURNS bytea
79 LANGUAGE C IMMUTABLE STRICT
80 AS '$libdir/latlon-v0004', 'pgl_epoint_send';
82 CREATE OR REPLACE FUNCTION ebox_send(ebox)
83 RETURNS bytea
84 LANGUAGE C IMMUTABLE STRICT
85 AS '$libdir/latlon-v0004', 'pgl_ebox_send';
87 CREATE OR REPLACE FUNCTION ecircle_send(ecircle)
88 RETURNS bytea
89 LANGUAGE C IMMUTABLE STRICT
90 AS '$libdir/latlon-v0004', 'pgl_ecircle_send';
92 CREATE OR REPLACE FUNCTION epoint_btree_lt(epoint, epoint)
93 RETURNS boolean
94 LANGUAGE C IMMUTABLE STRICT
95 AS '$libdir/latlon-v0004', 'pgl_btree_epoint_lt';
97 CREATE OR REPLACE FUNCTION epoint_btree_le(epoint, epoint)
98 RETURNS boolean
99 LANGUAGE C IMMUTABLE STRICT
100 AS '$libdir/latlon-v0004', 'pgl_btree_epoint_le';
102 CREATE OR REPLACE FUNCTION epoint_btree_eq(epoint, epoint)
103 RETURNS boolean
104 LANGUAGE C IMMUTABLE STRICT
105 AS '$libdir/latlon-v0004', 'pgl_btree_epoint_eq';
107 CREATE OR REPLACE FUNCTION epoint_btree_ne(epoint, epoint)
108 RETURNS boolean
109 LANGUAGE C IMMUTABLE STRICT
110 AS '$libdir/latlon-v0004', 'pgl_btree_epoint_ne';
112 CREATE OR REPLACE FUNCTION epoint_btree_ge(epoint, epoint)
113 RETURNS boolean
114 LANGUAGE C IMMUTABLE STRICT
115 AS '$libdir/latlon-v0004', 'pgl_btree_epoint_ge';
117 CREATE OR REPLACE FUNCTION epoint_btree_gt(epoint, epoint)
118 RETURNS boolean
119 LANGUAGE C IMMUTABLE STRICT
120 AS '$libdir/latlon-v0004', 'pgl_btree_epoint_gt';
122 CREATE OR REPLACE FUNCTION epoint_btree_cmp(epoint, epoint)
123 RETURNS int4
124 LANGUAGE C IMMUTABLE STRICT
125 AS '$libdir/latlon-v0004', 'pgl_btree_epoint_cmp';
127 CREATE OR REPLACE FUNCTION ebox_btree_lt(ebox, ebox)
128 RETURNS boolean
129 LANGUAGE C IMMUTABLE STRICT
130 AS '$libdir/latlon-v0004', 'pgl_btree_ebox_lt';
132 CREATE OR REPLACE FUNCTION ebox_btree_le(ebox, ebox)
133 RETURNS boolean
134 LANGUAGE C IMMUTABLE STRICT
135 AS '$libdir/latlon-v0004', 'pgl_btree_ebox_le';
137 CREATE OR REPLACE FUNCTION ebox_btree_eq(ebox, ebox)
138 RETURNS boolean
139 LANGUAGE C IMMUTABLE STRICT
140 AS '$libdir/latlon-v0004', 'pgl_btree_ebox_eq';
142 CREATE OR REPLACE FUNCTION ebox_btree_ne(ebox, ebox)
143 RETURNS boolean
144 LANGUAGE C IMMUTABLE STRICT
145 AS '$libdir/latlon-v0004', 'pgl_btree_ebox_ne';
147 CREATE OR REPLACE FUNCTION ebox_btree_ge(ebox, ebox)
148 RETURNS boolean
149 LANGUAGE C IMMUTABLE STRICT
150 AS '$libdir/latlon-v0004', 'pgl_btree_ebox_ge';
152 CREATE OR REPLACE FUNCTION ebox_btree_gt(ebox, ebox)
153 RETURNS boolean
154 LANGUAGE C IMMUTABLE STRICT
155 AS '$libdir/latlon-v0004', 'pgl_btree_ebox_gt';
157 CREATE OR REPLACE FUNCTION ebox_btree_cmp(ebox, ebox)
158 RETURNS int4
159 LANGUAGE C IMMUTABLE STRICT
160 AS '$libdir/latlon-v0004', 'pgl_btree_ebox_cmp';
162 CREATE OR REPLACE FUNCTION ecircle_btree_lt(ecircle, ecircle)
163 RETURNS boolean
164 LANGUAGE C IMMUTABLE STRICT
165 AS '$libdir/latlon-v0004', 'pgl_btree_ecircle_lt';
167 CREATE OR REPLACE FUNCTION ecircle_btree_le(ecircle, ecircle)
168 RETURNS boolean
169 LANGUAGE C IMMUTABLE STRICT
170 AS '$libdir/latlon-v0004', 'pgl_btree_ecircle_le';
172 CREATE OR REPLACE FUNCTION ecircle_btree_eq(ecircle, ecircle)
173 RETURNS boolean
174 LANGUAGE C IMMUTABLE STRICT
175 AS '$libdir/latlon-v0004', 'pgl_btree_ecircle_eq';
177 CREATE OR REPLACE FUNCTION ecircle_btree_ne(ecircle, ecircle)
178 RETURNS boolean
179 LANGUAGE C IMMUTABLE STRICT
180 AS '$libdir/latlon-v0004', 'pgl_btree_ecircle_ne';
182 CREATE OR REPLACE FUNCTION ecircle_btree_ge(ecircle, ecircle)
183 RETURNS boolean
184 LANGUAGE C IMMUTABLE STRICT
185 AS '$libdir/latlon-v0004', 'pgl_btree_ecircle_ge';
187 CREATE OR REPLACE FUNCTION ecircle_btree_gt(ecircle, ecircle)
188 RETURNS boolean
189 LANGUAGE C IMMUTABLE STRICT
190 AS '$libdir/latlon-v0004', 'pgl_btree_ecircle_gt';
192 CREATE OR REPLACE FUNCTION ecircle_btree_cmp(ecircle, ecircle)
193 RETURNS int4
194 LANGUAGE C IMMUTABLE STRICT
195 AS '$libdir/latlon-v0004', 'pgl_btree_ecircle_cmp';
197 CREATE OR REPLACE FUNCTION cast_epoint_to_ebox(epoint)
198 RETURNS ebox
199 LANGUAGE C IMMUTABLE STRICT
200 AS '$libdir/latlon-v0004', 'pgl_epoint_to_ebox';
202 CREATE OR REPLACE FUNCTION cast_epoint_to_ecircle(epoint)
203 RETURNS ecircle
204 LANGUAGE C IMMUTABLE STRICT
205 AS '$libdir/latlon-v0004', 'pgl_epoint_to_ecircle';
207 CREATE OR REPLACE FUNCTION cast_epoint_to_ecluster(epoint)
208 RETURNS ecluster
209 LANGUAGE C IMMUTABLE STRICT
210 AS '$libdir/latlon-v0004', 'pgl_epoint_to_ecluster';
212 CREATE OR REPLACE FUNCTION cast_ebox_to_ecluster(ebox)
213 RETURNS ecluster
214 LANGUAGE C IMMUTABLE STRICT
215 AS '$libdir/latlon-v0004', 'pgl_ebox_to_ecluster';
217 CREATE OR REPLACE FUNCTION epoint(float8, float8)
218 RETURNS epoint
219 LANGUAGE C IMMUTABLE STRICT
220 AS '$libdir/latlon-v0004', 'pgl_create_epoint';
222 CREATE OR REPLACE FUNCTION empty_ebox()
223 RETURNS ebox
224 LANGUAGE C IMMUTABLE STRICT
225 AS '$libdir/latlon-v0004', 'pgl_create_empty_ebox';
227 CREATE OR REPLACE FUNCTION ebox(float8, float8, float8, float8)
228 RETURNS ebox
229 LANGUAGE C IMMUTABLE STRICT
230 AS '$libdir/latlon-v0004', 'pgl_create_ebox';
232 CREATE OR REPLACE FUNCTION ebox(epoint, epoint)
233 RETURNS ebox
234 LANGUAGE C IMMUTABLE STRICT
235 AS '$libdir/latlon-v0004', 'pgl_create_ebox_from_epoints';
237 CREATE OR REPLACE FUNCTION ecircle(float8, float8, float8)
238 RETURNS ecircle
239 LANGUAGE C IMMUTABLE STRICT
240 AS '$libdir/latlon-v0004', 'pgl_create_ecircle';
242 CREATE OR REPLACE FUNCTION ecircle(epoint, float8)
243 RETURNS ecircle
244 LANGUAGE C IMMUTABLE STRICT
245 AS '$libdir/latlon-v0004', 'pgl_create_ecircle_from_epoint';
247 CREATE OR REPLACE FUNCTION latitude(epoint)
248 RETURNS float8
249 LANGUAGE C IMMUTABLE STRICT
250 AS '$libdir/latlon-v0004', 'pgl_epoint_lat';
252 CREATE OR REPLACE FUNCTION longitude(epoint)
253 RETURNS float8
254 LANGUAGE C IMMUTABLE STRICT
255 AS '$libdir/latlon-v0004', 'pgl_epoint_lon';
257 CREATE OR REPLACE FUNCTION min_latitude(ebox)
258 RETURNS float8
259 LANGUAGE C IMMUTABLE STRICT
260 AS '$libdir/latlon-v0004', 'pgl_ebox_lat_min';
262 CREATE OR REPLACE FUNCTION max_latitude(ebox)
263 RETURNS float8
264 LANGUAGE C IMMUTABLE STRICT
265 AS '$libdir/latlon-v0004', 'pgl_ebox_lat_max';
267 CREATE OR REPLACE FUNCTION min_longitude(ebox)
268 RETURNS float8
269 LANGUAGE C IMMUTABLE STRICT
270 AS '$libdir/latlon-v0004', 'pgl_ebox_lon_min';
272 CREATE OR REPLACE FUNCTION max_longitude(ebox)
273 RETURNS float8
274 LANGUAGE C IMMUTABLE STRICT
275 AS '$libdir/latlon-v0004', 'pgl_ebox_lon_max';
277 CREATE OR REPLACE FUNCTION center(ecircle)
278 RETURNS epoint
279 LANGUAGE C IMMUTABLE STRICT
280 AS '$libdir/latlon-v0004', 'pgl_ecircle_center';
282 CREATE OR REPLACE FUNCTION radius(ecircle)
283 RETURNS float8
284 LANGUAGE C IMMUTABLE STRICT
285 AS '$libdir/latlon-v0004', 'pgl_ecircle_radius';
287 CREATE OR REPLACE FUNCTION epoint_ebox_overlap_proc(epoint, ebox)
288 RETURNS boolean
289 LANGUAGE C IMMUTABLE STRICT
290 AS '$libdir/latlon-v0004', 'pgl_epoint_ebox_overlap';
292 CREATE OR REPLACE FUNCTION epoint_ecircle_overlap_proc(epoint, ecircle)
293 RETURNS boolean
294 LANGUAGE C IMMUTABLE STRICT
295 AS '$libdir/latlon-v0004', 'pgl_epoint_ecircle_overlap';
297 CREATE OR REPLACE FUNCTION epoint_ecluster_overlap_proc(epoint, ecluster)
298 RETURNS boolean
299 LANGUAGE C IMMUTABLE STRICT
300 AS '$libdir/latlon-v0004', 'pgl_epoint_ecluster_overlap';
302 CREATE OR REPLACE FUNCTION epoint_ecluster_may_overlap_proc(epoint, ecluster)
303 RETURNS boolean
304 LANGUAGE C IMMUTABLE STRICT
305 AS '$libdir/latlon-v0004', 'pgl_epoint_ecluster_may_overlap';
307 CREATE OR REPLACE FUNCTION ebox_overlap_proc(ebox, ebox)
308 RETURNS boolean
309 LANGUAGE C IMMUTABLE STRICT
310 AS '$libdir/latlon-v0004', 'pgl_ebox_overlap';
312 CREATE OR REPLACE FUNCTION ebox_ecircle_may_overlap_proc(ebox, ecircle)
313 RETURNS boolean
314 LANGUAGE C IMMUTABLE STRICT
315 AS '$libdir/latlon-v0004', 'pgl_ebox_ecircle_may_overlap';
317 CREATE OR REPLACE FUNCTION ebox_ecluster_may_overlap_proc(ebox, ecluster)
318 RETURNS boolean
319 LANGUAGE C IMMUTABLE STRICT
320 AS '$libdir/latlon-v0004', 'pgl_ebox_ecluster_may_overlap';
322 CREATE OR REPLACE FUNCTION ecircle_overlap_proc(ecircle, ecircle)
323 RETURNS boolean
324 LANGUAGE C IMMUTABLE STRICT
325 AS '$libdir/latlon-v0004', 'pgl_ecircle_overlap';
327 CREATE OR REPLACE FUNCTION ecircle_ecluster_overlap_proc(ecircle, ecluster)
328 RETURNS boolean
329 LANGUAGE C IMMUTABLE STRICT
330 AS '$libdir/latlon-v0004', 'pgl_ecircle_ecluster_overlap';
332 CREATE OR REPLACE FUNCTION ecircle_ecluster_may_overlap_proc(ecircle, ecluster)
333 RETURNS boolean
334 LANGUAGE C IMMUTABLE STRICT
335 AS '$libdir/latlon-v0004', 'pgl_ecircle_ecluster_may_overlap';
337 CREATE FUNCTION ecluster_overlap_proc(ecluster, ecluster)
338 RETURNS boolean
339 LANGUAGE C IMMUTABLE STRICT
340 AS '$libdir/latlon-v0004', 'pgl_ecluster_overlap';
342 CREATE OR REPLACE FUNCTION ecluster_may_overlap_proc(ecluster, ecluster)
343 RETURNS boolean
344 LANGUAGE C IMMUTABLE STRICT
345 AS '$libdir/latlon-v0004', 'pgl_ecluster_may_overlap';
347 CREATE FUNCTION ecluster_contains_proc(ecluster, ecluster)
348 RETURNS boolean
349 LANGUAGE C IMMUTABLE STRICT
350 AS '$libdir/latlon-v0004', 'pgl_ecluster_contains';
352 CREATE OR REPLACE FUNCTION epoint_distance_proc(epoint, epoint)
353 RETURNS float8
354 LANGUAGE C IMMUTABLE STRICT
355 AS '$libdir/latlon-v0004', 'pgl_epoint_distance';
357 CREATE OR REPLACE FUNCTION epoint_ecircle_distance_proc(epoint, ecircle)
358 RETURNS float8
359 LANGUAGE C IMMUTABLE STRICT
360 AS '$libdir/latlon-v0004', 'pgl_epoint_ecircle_distance';
362 CREATE OR REPLACE FUNCTION epoint_ecluster_distance_proc(epoint, ecluster)
363 RETURNS float8
364 LANGUAGE C IMMUTABLE STRICT
365 AS '$libdir/latlon-v0004', 'pgl_epoint_ecluster_distance';
367 CREATE OR REPLACE FUNCTION ecircle_distance_proc(ecircle, ecircle)
368 RETURNS float8
369 LANGUAGE C IMMUTABLE STRICT
370 AS '$libdir/latlon-v0004', 'pgl_ecircle_distance';
372 CREATE OR REPLACE FUNCTION ecircle_ecluster_distance_proc(ecircle, ecluster)
373 RETURNS float8
374 LANGUAGE C IMMUTABLE STRICT
375 AS '$libdir/latlon-v0004', 'pgl_ecircle_ecluster_distance';
377 CREATE FUNCTION ecluster_distance_proc(ecluster, ecluster)
378 RETURNS float8
379 LANGUAGE C IMMUTABLE STRICT
380 AS '$libdir/latlon-v0004', 'pgl_ecluster_distance';
382 CREATE OPERATOR && (
383 leftarg = ecluster,
384 rightarg = ecluster,
385 procedure = ecluster_overlap_proc,
386 commutator = &&,
387 restrict = areasel,
388 join = areajoinsel
389 );
391 CREATE FUNCTION ebox_ecircle_overlap_castwrap(ebox, ecircle)
392 RETURNS boolean
393 LANGUAGE sql IMMUTABLE AS 'SELECT $1::ecluster && $2';
395 CREATE OPERATOR && (
396 leftarg = ebox,
397 rightarg = ecircle,
398 procedure = ebox_ecircle_overlap_castwrap,
399 commutator = &&,
400 restrict = areasel,
401 join = areajoinsel
402 );
404 CREATE FUNCTION ebox_ecircle_overlap_castwrap(ecircle, ebox)
405 RETURNS boolean
406 LANGUAGE sql IMMUTABLE AS 'SELECT $1 && $2::ecluster';
408 CREATE OPERATOR && (
409 leftarg = ecircle,
410 rightarg = ebox,
411 procedure = ebox_ecircle_overlap_castwrap,
412 commutator = &&,
413 restrict = areasel,
414 join = areajoinsel
415 );
417 CREATE FUNCTION ebox_ecluster_overlap_castwrap(ebox, ecluster)
418 RETURNS boolean
419 LANGUAGE sql IMMUTABLE AS 'SELECT $1::ecluster && $2';
421 CREATE OPERATOR && (
422 leftarg = ebox,
423 rightarg = ecluster,
424 procedure = ebox_ecluster_overlap_castwrap,
425 commutator = &&,
426 restrict = areasel,
427 join = areajoinsel
428 );
430 CREATE FUNCTION ebox_ecluster_overlap_castwrap(ecluster, ebox)
431 RETURNS boolean
432 LANGUAGE sql IMMUTABLE AS 'SELECT $1 && $2::ecluster';
434 CREATE OPERATOR && (
435 leftarg = ecluster,
436 rightarg = ebox,
437 procedure = ebox_ecluster_overlap_castwrap,
438 commutator = &&,
439 restrict = areasel,
440 join = areajoinsel
441 );
444 CREATE OPERATOR @> (
445 leftarg = ebox,
446 rightarg = epoint,
447 procedure = epoint_ebox_overlap_commutator,
448 commutator = <@,
449 restrict = areasel,
450 join = areajoinsel
451 );
453 CREATE OPERATOR <@ (
454 leftarg = epoint,
455 rightarg = ebox,
456 procedure = epoint_ebox_overlap_proc,
457 commutator = @>,
458 restrict = areasel,
459 join = areajoinsel
460 );
462 CREATE OPERATOR @> (
463 leftarg = ecluster,
464 rightarg = epoint,
465 procedure = epoint_ecluster_overlap_commutator,
466 commutator = <@,
467 restrict = areasel,
468 join = areajoinsel
469 );
471 CREATE OPERATOR <@ (
472 leftarg = epoint,
473 rightarg = ecluster,
474 procedure = epoint_ecluster_overlap_proc,
475 commutator = <@,
476 restrict = areasel,
477 join = areajoinsel
478 );
480 CREATE OPERATOR @> (
481 leftarg = ecluster,
482 rightarg = ecluster,
483 procedure = ecluster_contains_proc,
484 commutator = <@,
485 restrict = areasel,
486 join = areajoinsel
487 );
489 CREATE FUNCTION ecluster_contains_commutator(ecluster, ecluster)
490 RETURNS boolean
491 LANGUAGE sql IMMUTABLE AS 'SELECT $2 @> $1';
493 CREATE OPERATOR <@ (
494 leftarg = ecluster,
495 rightarg = ecluster,
496 procedure = ecluster_contains_commutator,
497 commutator = @>,
498 restrict = areasel,
499 join = areajoinsel
500 );
502 CREATE FUNCTION ebox_ecluster_contains_castwrap(ebox, ecluster)
503 RETURNS boolean
504 LANGUAGE sql IMMUTABLE AS 'SELECT $1::ecluster @> $2';
506 CREATE OPERATOR @> (
507 leftarg = ebox,
508 rightarg = ecluster,
509 procedure = ebox_ecluster_contains_castwrap,
510 commutator = <@,
511 restrict = areasel,
512 join = areajoinsel
513 );
515 CREATE FUNCTION ebox_ecluster_contains_castwrap(ecluster, ebox)
516 RETURNS boolean
517 LANGUAGE sql IMMUTABLE AS 'SELECT $2::ecluster @> $1';
519 CREATE OPERATOR <@ (
520 leftarg = ecluster,
521 rightarg = ebox,
522 procedure = ebox_ecluster_contains_castwrap,
523 commutator = @>,
524 restrict = areasel,
525 join = areajoinsel
526 );
528 CREATE FUNCTION ecluster_ebox_contains_castwrap(ecluster, ebox)
529 RETURNS boolean
530 LANGUAGE sql IMMUTABLE AS 'SELECT $1 @> $2::ecluster';
532 CREATE OPERATOR @> (
533 leftarg = ecluster,
534 rightarg = ebox,
535 procedure = ecluster_ebox_contains_castwrap,
536 commutator = <@,
537 restrict = areasel,
538 join = areajoinsel
539 );
541 CREATE FUNCTION ecluster_ebox_contains_castwrap(ebox, ecluster)
542 RETURNS boolean
543 LANGUAGE sql IMMUTABLE AS 'SELECT $2 @> $1::ecluster';
545 CREATE OPERATOR <@ (
546 leftarg = ebox,
547 rightarg = ecluster,
548 procedure = ecluster_ebox_contains_castwrap,
549 commutator = @>,
550 restrict = areasel,
551 join = areajoinsel
552 );
555 CREATE OPERATOR <-> (
556 leftarg = ecluster,
557 rightarg = ecluster,
558 procedure = ecluster_distance_proc,
559 commutator = <->
560 );
562 CREATE FUNCTION epoint_ebox_distance_castwrap(epoint, ebox)
563 RETURNS float8
564 LANGUAGE sql IMMUTABLE AS 'SELECT $1 <-> $2::ecluster';
566 CREATE OPERATOR <-> (
567 leftarg = epoint,
568 rightarg = ebox,
569 procedure = epoint_ebox_distance_castwrap,
570 commutator = <->
571 );
573 CREATE FUNCTION epoint_ebox_distance_castwrap(ebox, epoint)
574 RETURNS float8
575 LANGUAGE sql IMMUTABLE AS 'SELECT $1::ecluster <-> $2';
577 CREATE OPERATOR <-> (
578 leftarg = ebox,
579 rightarg = epoint,
580 procedure = epoint_ebox_distance_castwrap,
581 commutator = <->
582 );
584 CREATE FUNCTION ebox_distance_castwrap(ebox, ebox)
585 RETURNS float8
586 LANGUAGE sql IMMUTABLE AS 'SELECT $1::ecluster <-> $2::ecluster';
588 CREATE OPERATOR <-> (
589 leftarg = ebox,
590 rightarg = ebox,
591 procedure = ebox_distance_castwrap,
592 commutator = <->
593 );
595 CREATE FUNCTION ebox_ecircle_distance_castwrap(ebox, ecircle)
596 RETURNS float8
597 LANGUAGE sql IMMUTABLE AS 'SELECT $1::ecluster <-> $2';
599 CREATE OPERATOR <-> (
600 leftarg = ebox,
601 rightarg = ecircle,
602 procedure = ebox_ecircle_distance_castwrap,
603 commutator = <->
604 );
606 CREATE FUNCTION ebox_ecircle_distance_castwrap(ecircle, ebox)
607 RETURNS float8
608 LANGUAGE sql IMMUTABLE AS 'SELECT $1 <-> $2::ecluster';
610 CREATE OPERATOR <-> (
611 leftarg = ecircle,
612 rightarg = ebox,
613 procedure = ebox_ecircle_distance_castwrap,
614 commutator = <->
615 );
617 CREATE FUNCTION ebox_ecluster_distance_castwrap(ebox, ecluster)
618 RETURNS float8
619 LANGUAGE sql IMMUTABLE AS 'SELECT $1::ecluster <-> $2';
621 CREATE OPERATOR <-> (
622 leftarg = ebox,
623 rightarg = ecluster,
624 procedure = ebox_ecluster_distance_castwrap,
625 commutator = <->
626 );
628 CREATE FUNCTION ebox_ecluster_distance_castwrap(ecluster, ebox)
629 RETURNS float8
630 LANGUAGE sql IMMUTABLE AS 'SELECT $1 <-> $2::ecluster';
632 CREATE OPERATOR <-> (
633 leftarg = ecluster,
634 rightarg = ebox,
635 procedure = ebox_ecluster_distance_castwrap,
636 commutator = <->
637 );
639 DROP OPERATOR CLASS epoint_ops USING gist;
640 DROP OPERATOR CLASS ecircle_ops USING gist;
641 DROP OPERATOR CLASS ecluster_ops USING gist;
643 CREATE OR REPLACE FUNCTION pgl_gist_consistent(internal, internal, smallint, oid, internal)
644 RETURNS boolean
645 LANGUAGE C STRICT
646 AS '$libdir/latlon-v0004', 'pgl_gist_consistent';
648 CREATE OR REPLACE FUNCTION pgl_gist_union(internal, internal)
649 RETURNS internal
650 LANGUAGE C STRICT
651 AS '$libdir/latlon-v0004', 'pgl_gist_union';
653 CREATE OR REPLACE FUNCTION pgl_gist_compress_epoint(internal)
654 RETURNS internal
655 LANGUAGE C STRICT
656 AS '$libdir/latlon-v0004', 'pgl_gist_compress_epoint';
658 CREATE OR REPLACE FUNCTION pgl_gist_compress_ecircle(internal)
659 RETURNS internal
660 LANGUAGE C STRICT
661 AS '$libdir/latlon-v0004', 'pgl_gist_compress_ecircle';
663 CREATE OR REPLACE FUNCTION pgl_gist_compress_ecluster(internal)
664 RETURNS internal
665 LANGUAGE C STRICT
666 AS '$libdir/latlon-v0004', 'pgl_gist_compress_ecluster';
668 CREATE OR REPLACE FUNCTION pgl_gist_decompress(internal)
669 RETURNS internal
670 LANGUAGE C STRICT
671 AS '$libdir/latlon-v0004', 'pgl_gist_decompress';
673 CREATE OR REPLACE FUNCTION pgl_gist_penalty(internal, internal, internal)
674 RETURNS internal
675 LANGUAGE C STRICT
676 AS '$libdir/latlon-v0004', 'pgl_gist_penalty';
678 CREATE OR REPLACE FUNCTION pgl_gist_picksplit(internal, internal)
679 RETURNS internal
680 LANGUAGE C STRICT
681 AS '$libdir/latlon-v0004', 'pgl_gist_picksplit';
683 CREATE OR REPLACE FUNCTION pgl_gist_same(internal, internal, internal)
684 RETURNS internal
685 LANGUAGE C STRICT
686 AS '$libdir/latlon-v0004', 'pgl_gist_same';
688 CREATE OR REPLACE FUNCTION pgl_gist_distance(internal, internal, smallint, oid)
689 RETURNS internal
690 LANGUAGE C STRICT
691 AS '$libdir/latlon-v0004', 'pgl_gist_distance';
693 CREATE OPERATOR CLASS epoint_ops
694 DEFAULT FOR TYPE epoint USING gist AS
695 OPERATOR 11 = ,
696 OPERATOR 22 && (epoint, ebox),
697 OPERATOR 222 <@ (epoint, ebox),
698 OPERATOR 23 && (epoint, ecircle),
699 OPERATOR 24 && (epoint, ecluster),
700 OPERATOR 124 &&+ (epoint, ecluster),
701 OPERATOR 224 <@ (epoint, ecluster),
702 OPERATOR 31 <-> (epoint, epoint) FOR ORDER BY float_ops,
703 OPERATOR 32 <-> (epoint, ebox) FOR ORDER BY float_ops,
704 OPERATOR 33 <-> (epoint, ecircle) FOR ORDER BY float_ops,
705 OPERATOR 34 <-> (epoint, ecluster) FOR ORDER BY float_ops,
706 FUNCTION 1 pgl_gist_consistent(internal, internal, smallint, oid, internal),
707 FUNCTION 2 pgl_gist_union(internal, internal),
708 FUNCTION 3 pgl_gist_compress_epoint(internal),
709 FUNCTION 4 pgl_gist_decompress(internal),
710 FUNCTION 5 pgl_gist_penalty(internal, internal, internal),
711 FUNCTION 6 pgl_gist_picksplit(internal, internal),
712 FUNCTION 7 pgl_gist_same(internal, internal, internal),
713 FUNCTION 8 pgl_gist_distance(internal, internal, smallint, oid),
714 STORAGE ekey_point;
716 CREATE OPERATOR CLASS ecircle_ops
717 DEFAULT FOR TYPE ecircle USING gist AS
718 OPERATOR 13 = ,
719 OPERATOR 21 && (ecircle, epoint),
720 OPERATOR 22 && (ecircle, ebox),
721 OPERATOR 122 &&+ (ecircle, ebox),
722 OPERATOR 23 && (ecircle, ecircle),
723 OPERATOR 24 && (ecircle, ecluster),
724 OPERATOR 124 &&+ (ecircle, ecluster),
725 OPERATOR 31 <-> (ecircle, epoint) FOR ORDER BY float_ops,
726 OPERATOR 32 <-> (ecircle, ebox) FOR ORDER BY float_ops,
727 OPERATOR 33 <-> (ecircle, ecircle) FOR ORDER BY float_ops,
728 OPERATOR 34 <-> (ecircle, ecluster) FOR ORDER BY float_ops,
729 FUNCTION 1 pgl_gist_consistent(internal, internal, smallint, oid, internal),
730 FUNCTION 2 pgl_gist_union(internal, internal),
731 FUNCTION 3 pgl_gist_compress_ecircle(internal),
732 FUNCTION 4 pgl_gist_decompress(internal),
733 FUNCTION 5 pgl_gist_penalty(internal, internal, internal),
734 FUNCTION 6 pgl_gist_picksplit(internal, internal),
735 FUNCTION 7 pgl_gist_same(internal, internal, internal),
736 FUNCTION 8 pgl_gist_distance(internal, internal, smallint, oid),
737 STORAGE ekey_area;
739 CREATE OPERATOR CLASS ecluster_ops
740 DEFAULT FOR TYPE ecluster USING gist AS
741 OPERATOR 21 && (ecluster, epoint),
742 OPERATOR 121 &&+ (ecluster, epoint),
743 OPERATOR 221 @> (ecluster, epoint),
744 OPERATOR 22 && (ecluster, ebox),
745 OPERATOR 122 &&+ (ecluster, ebox),
746 OPERATOR 222 @> (ecluster, ebox),
747 OPERATOR 322 <@ (ecluster, ebox),
748 OPERATOR 23 && (ecluster, ecircle),
749 OPERATOR 123 &&+ (ecluster, ecircle),
750 OPERATOR 24 && (ecluster, ecluster),
751 OPERATOR 124 &&+ (ecluster, ecluster),
752 OPERATOR 224 @> (ecluster, ecluster),
753 OPERATOR 324 <@ (ecluster, ecluster),
754 OPERATOR 31 <-> (ecluster, epoint) FOR ORDER BY float_ops,
755 OPERATOR 32 <-> (ecluster, ebox) FOR ORDER BY float_ops,
756 OPERATOR 33 <-> (ecluster, ecircle) FOR ORDER BY float_ops,
757 OPERATOR 34 <-> (ecluster, ecluster) FOR ORDER BY float_ops,
758 FUNCTION 1 pgl_gist_consistent(internal, internal, smallint, oid, internal),
759 FUNCTION 2 pgl_gist_union(internal, internal),
760 FUNCTION 3 pgl_gist_compress_ecluster(internal),
761 FUNCTION 4 pgl_gist_decompress(internal),
762 FUNCTION 5 pgl_gist_penalty(internal, internal, internal),
763 FUNCTION 6 pgl_gist_picksplit(internal, internal),
764 FUNCTION 7 pgl_gist_same(internal, internal, internal),
765 FUNCTION 8 pgl_gist_distance(internal, internal, smallint, oid),
766 STORAGE ekey_area;

Impressum / About Us