pgLatLon
changeset 40:f1a9a5de9a12 v0.8
Removed files for old version 0.7; Updated README, GNUmakefile, and control file to version 0.8
author | jbe |
---|---|
date | Fri Oct 21 12:56:11 2016 +0200 (2016-10-21) |
parents | 2890e859c8a8 |
children | a90c0d750405 |
files | GNUmakefile README.html README.mkd latlon--0.6--0.7.sql latlon--0.7.sql latlon.control |
line diff
1.1 --- a/GNUmakefile Fri Oct 21 12:51:37 2016 +0200 1.2 +++ b/GNUmakefile Fri Oct 21 12:56:11 2016 +0200 1.3 @@ -1,5 +1,5 @@ 1.4 EXTENSION = latlon 1.5 -DATA = latlon--0.6--0.7.sql latlon--0.7.sql latlon--0.7--0.8.sql latlon--0.8.sql 1.6 +DATA = latlon--0.7--0.8.sql latlon--0.8.sql 1.7 MODULES = latlon-v0007 1.8 1.9 PG_CONFIG = pg_config
2.1 --- a/README.html Fri Oct 21 12:51:37 2016 +0200 2.2 +++ b/README.html Fri Oct 21 12:56:11 2016 +0200 2.3 @@ -1,5 +1,5 @@ 2.4 -<html><head><title>pgLatLon v0.7 documentation</title></head><body> 2.5 -<h1>pgLatLon v0.7 documentation</h1> 2.6 +<html><head><title>pgLatLon v0.8 documentation</title></head><body> 2.7 +<h1>pgLatLon v0.8 documentation</h1> 2.8 2.9 <p>pgLatLon is a spatial database extension for the PostgreSQL object-relational 2.10 database management system providing geographic data types and spatial indexing
3.1 --- a/README.mkd Fri Oct 21 12:51:37 2016 +0200 3.2 +++ b/README.mkd Fri Oct 21 12:56:11 2016 +0200 3.3 @@ -1,4 +1,4 @@ 3.4 -pgLatLon v0.7 documentation 3.5 +pgLatLon v0.8 documentation 3.6 =========================== 3.7 3.8 pgLatLon is a spatial database extension for the PostgreSQL object-relational
4.1 --- a/latlon--0.6--0.7.sql Fri Oct 21 12:51:37 2016 +0200 4.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 4.3 @@ -1,431 +0,0 @@ 4.4 - 4.5 -CREATE OR REPLACE FUNCTION ekey_point_in_dummy(cstring) 4.6 - RETURNS ekey_point 4.7 - LANGUAGE C IMMUTABLE STRICT 4.8 - AS '$libdir/latlon-v0007', 'pgl_notimpl'; 4.9 - 4.10 -CREATE OR REPLACE FUNCTION ekey_point_out_dummy(ekey_point) 4.11 - RETURNS cstring 4.12 - LANGUAGE C IMMUTABLE STRICT 4.13 - AS '$libdir/latlon-v0007', 'pgl_notimpl'; 4.14 - 4.15 -CREATE OR REPLACE FUNCTION ekey_area_in_dummy(cstring) 4.16 - RETURNS ekey_area 4.17 - LANGUAGE C IMMUTABLE STRICT 4.18 - AS '$libdir/latlon-v0007', 'pgl_notimpl'; 4.19 - 4.20 -CREATE OR REPLACE FUNCTION ekey_area_out_dummy(ekey_area) 4.21 - RETURNS cstring 4.22 - LANGUAGE C IMMUTABLE STRICT 4.23 - AS '$libdir/latlon-v0007', 'pgl_notimpl'; 4.24 - 4.25 -CREATE OR REPLACE FUNCTION epoint_in(cstring) 4.26 - RETURNS epoint 4.27 - LANGUAGE C IMMUTABLE STRICT 4.28 - AS '$libdir/latlon-v0007', 'pgl_epoint_in'; 4.29 - 4.30 -CREATE OR REPLACE FUNCTION ebox_in(cstring) 4.31 - RETURNS ebox 4.32 - LANGUAGE C IMMUTABLE STRICT 4.33 - AS '$libdir/latlon-v0007', 'pgl_ebox_in'; 4.34 - 4.35 -CREATE OR REPLACE FUNCTION ecircle_in(cstring) 4.36 - RETURNS ecircle 4.37 - LANGUAGE C IMMUTABLE STRICT 4.38 - AS '$libdir/latlon-v0007', 'pgl_ecircle_in'; 4.39 - 4.40 -CREATE OR REPLACE FUNCTION ecluster_in(cstring) 4.41 - RETURNS ecluster 4.42 - LANGUAGE C IMMUTABLE STRICT 4.43 - AS '$libdir/latlon-v0007', 'pgl_ecluster_in'; 4.44 - 4.45 -CREATE OR REPLACE FUNCTION epoint_out(epoint) 4.46 - RETURNS cstring 4.47 - LANGUAGE C IMMUTABLE STRICT 4.48 - AS '$libdir/latlon-v0007', 'pgl_epoint_out'; 4.49 - 4.50 -CREATE OR REPLACE FUNCTION ebox_out(ebox) 4.51 - RETURNS cstring 4.52 - LANGUAGE C IMMUTABLE STRICT 4.53 - AS '$libdir/latlon-v0007', 'pgl_ebox_out'; 4.54 - 4.55 -CREATE OR REPLACE FUNCTION ecircle_out(ecircle) 4.56 - RETURNS cstring 4.57 - LANGUAGE C IMMUTABLE STRICT 4.58 - AS '$libdir/latlon-v0007', 'pgl_ecircle_out'; 4.59 - 4.60 -CREATE OR REPLACE FUNCTION ecluster_out(ecluster) 4.61 - RETURNS cstring 4.62 - LANGUAGE C IMMUTABLE STRICT 4.63 - AS '$libdir/latlon-v0007', 'pgl_ecluster_out'; 4.64 - 4.65 -CREATE OR REPLACE FUNCTION epoint_recv(internal) 4.66 - RETURNS epoint 4.67 - LANGUAGE C IMMUTABLE STRICT 4.68 - AS '$libdir/latlon-v0007', 'pgl_epoint_recv'; 4.69 - 4.70 -CREATE OR REPLACE FUNCTION ebox_recv(internal) 4.71 - RETURNS ebox 4.72 - LANGUAGE C IMMUTABLE STRICT 4.73 - AS '$libdir/latlon-v0007', 'pgl_ebox_recv'; 4.74 - 4.75 -CREATE OR REPLACE FUNCTION ecircle_recv(internal) 4.76 - RETURNS ecircle 4.77 - LANGUAGE C IMMUTABLE STRICT 4.78 - AS '$libdir/latlon-v0007', 'pgl_ecircle_recv'; 4.79 - 4.80 -CREATE OR REPLACE FUNCTION epoint_send(epoint) 4.81 - RETURNS bytea 4.82 - LANGUAGE C IMMUTABLE STRICT 4.83 - AS '$libdir/latlon-v0007', 'pgl_epoint_send'; 4.84 - 4.85 -CREATE OR REPLACE FUNCTION ebox_send(ebox) 4.86 - RETURNS bytea 4.87 - LANGUAGE C IMMUTABLE STRICT 4.88 - AS '$libdir/latlon-v0007', 'pgl_ebox_send'; 4.89 - 4.90 -CREATE OR REPLACE FUNCTION ecircle_send(ecircle) 4.91 - RETURNS bytea 4.92 - LANGUAGE C IMMUTABLE STRICT 4.93 - AS '$libdir/latlon-v0007', 'pgl_ecircle_send'; 4.94 - 4.95 -CREATE OR REPLACE FUNCTION epoint_btree_lt(epoint, epoint) 4.96 - RETURNS boolean 4.97 - LANGUAGE C IMMUTABLE STRICT 4.98 - AS '$libdir/latlon-v0007', 'pgl_btree_epoint_lt'; 4.99 - 4.100 -CREATE OR REPLACE FUNCTION epoint_btree_le(epoint, epoint) 4.101 - RETURNS boolean 4.102 - LANGUAGE C IMMUTABLE STRICT 4.103 - AS '$libdir/latlon-v0007', 'pgl_btree_epoint_le'; 4.104 - 4.105 -CREATE OR REPLACE FUNCTION epoint_btree_eq(epoint, epoint) 4.106 - RETURNS boolean 4.107 - LANGUAGE C IMMUTABLE STRICT 4.108 - AS '$libdir/latlon-v0007', 'pgl_btree_epoint_eq'; 4.109 - 4.110 -CREATE OR REPLACE FUNCTION epoint_btree_ne(epoint, epoint) 4.111 - RETURNS boolean 4.112 - LANGUAGE C IMMUTABLE STRICT 4.113 - AS '$libdir/latlon-v0007', 'pgl_btree_epoint_ne'; 4.114 - 4.115 -CREATE OR REPLACE FUNCTION epoint_btree_ge(epoint, epoint) 4.116 - RETURNS boolean 4.117 - LANGUAGE C IMMUTABLE STRICT 4.118 - AS '$libdir/latlon-v0007', 'pgl_btree_epoint_ge'; 4.119 - 4.120 -CREATE OR REPLACE FUNCTION epoint_btree_gt(epoint, epoint) 4.121 - RETURNS boolean 4.122 - LANGUAGE C IMMUTABLE STRICT 4.123 - AS '$libdir/latlon-v0007', 'pgl_btree_epoint_gt'; 4.124 - 4.125 -CREATE OR REPLACE FUNCTION epoint_btree_cmp(epoint, epoint) 4.126 - RETURNS int4 4.127 - LANGUAGE C IMMUTABLE STRICT 4.128 - AS '$libdir/latlon-v0007', 'pgl_btree_epoint_cmp'; 4.129 - 4.130 -CREATE OR REPLACE FUNCTION ebox_btree_lt(ebox, ebox) 4.131 - RETURNS boolean 4.132 - LANGUAGE C IMMUTABLE STRICT 4.133 - AS '$libdir/latlon-v0007', 'pgl_btree_ebox_lt'; 4.134 - 4.135 -CREATE OR REPLACE FUNCTION ebox_btree_le(ebox, ebox) 4.136 - RETURNS boolean 4.137 - LANGUAGE C IMMUTABLE STRICT 4.138 - AS '$libdir/latlon-v0007', 'pgl_btree_ebox_le'; 4.139 - 4.140 -CREATE OR REPLACE FUNCTION ebox_btree_eq(ebox, ebox) 4.141 - RETURNS boolean 4.142 - LANGUAGE C IMMUTABLE STRICT 4.143 - AS '$libdir/latlon-v0007', 'pgl_btree_ebox_eq'; 4.144 - 4.145 -CREATE OR REPLACE FUNCTION ebox_btree_ne(ebox, ebox) 4.146 - RETURNS boolean 4.147 - LANGUAGE C IMMUTABLE STRICT 4.148 - AS '$libdir/latlon-v0007', 'pgl_btree_ebox_ne'; 4.149 - 4.150 -CREATE OR REPLACE FUNCTION ebox_btree_ge(ebox, ebox) 4.151 - RETURNS boolean 4.152 - LANGUAGE C IMMUTABLE STRICT 4.153 - AS '$libdir/latlon-v0007', 'pgl_btree_ebox_ge'; 4.154 - 4.155 -CREATE OR REPLACE FUNCTION ebox_btree_gt(ebox, ebox) 4.156 - RETURNS boolean 4.157 - LANGUAGE C IMMUTABLE STRICT 4.158 - AS '$libdir/latlon-v0007', 'pgl_btree_ebox_gt'; 4.159 - 4.160 -CREATE OR REPLACE FUNCTION ebox_btree_cmp(ebox, ebox) 4.161 - RETURNS int4 4.162 - LANGUAGE C IMMUTABLE STRICT 4.163 - AS '$libdir/latlon-v0007', 'pgl_btree_ebox_cmp'; 4.164 - 4.165 -CREATE OR REPLACE FUNCTION ecircle_btree_lt(ecircle, ecircle) 4.166 - RETURNS boolean 4.167 - LANGUAGE C IMMUTABLE STRICT 4.168 - AS '$libdir/latlon-v0007', 'pgl_btree_ecircle_lt'; 4.169 - 4.170 -CREATE OR REPLACE FUNCTION ecircle_btree_le(ecircle, ecircle) 4.171 - RETURNS boolean 4.172 - LANGUAGE C IMMUTABLE STRICT 4.173 - AS '$libdir/latlon-v0007', 'pgl_btree_ecircle_le'; 4.174 - 4.175 -CREATE OR REPLACE FUNCTION ecircle_btree_eq(ecircle, ecircle) 4.176 - RETURNS boolean 4.177 - LANGUAGE C IMMUTABLE STRICT 4.178 - AS '$libdir/latlon-v0007', 'pgl_btree_ecircle_eq'; 4.179 - 4.180 -CREATE OR REPLACE FUNCTION ecircle_btree_ne(ecircle, ecircle) 4.181 - RETURNS boolean 4.182 - LANGUAGE C IMMUTABLE STRICT 4.183 - AS '$libdir/latlon-v0007', 'pgl_btree_ecircle_ne'; 4.184 - 4.185 -CREATE OR REPLACE FUNCTION ecircle_btree_ge(ecircle, ecircle) 4.186 - RETURNS boolean 4.187 - LANGUAGE C IMMUTABLE STRICT 4.188 - AS '$libdir/latlon-v0007', 'pgl_btree_ecircle_ge'; 4.189 - 4.190 -CREATE OR REPLACE FUNCTION ecircle_btree_gt(ecircle, ecircle) 4.191 - RETURNS boolean 4.192 - LANGUAGE C IMMUTABLE STRICT 4.193 - AS '$libdir/latlon-v0007', 'pgl_btree_ecircle_gt'; 4.194 - 4.195 -CREATE OR REPLACE FUNCTION ecircle_btree_cmp(ecircle, ecircle) 4.196 - RETURNS int4 4.197 - LANGUAGE C IMMUTABLE STRICT 4.198 - AS '$libdir/latlon-v0007', 'pgl_btree_ecircle_cmp'; 4.199 - 4.200 -CREATE OR REPLACE FUNCTION cast_epoint_to_ebox(epoint) 4.201 - RETURNS ebox 4.202 - LANGUAGE C IMMUTABLE STRICT 4.203 - AS '$libdir/latlon-v0007', 'pgl_epoint_to_ebox'; 4.204 - 4.205 -CREATE OR REPLACE FUNCTION cast_epoint_to_ecircle(epoint) 4.206 - RETURNS ecircle 4.207 - LANGUAGE C IMMUTABLE STRICT 4.208 - AS '$libdir/latlon-v0007', 'pgl_epoint_to_ecircle'; 4.209 - 4.210 -CREATE OR REPLACE FUNCTION cast_epoint_to_ecluster(epoint) 4.211 - RETURNS ecluster 4.212 - LANGUAGE C IMMUTABLE STRICT 4.213 - AS '$libdir/latlon-v0007', 'pgl_epoint_to_ecluster'; 4.214 - 4.215 -CREATE OR REPLACE FUNCTION cast_ebox_to_ecluster(ebox) 4.216 - RETURNS ecluster 4.217 - LANGUAGE C IMMUTABLE STRICT 4.218 - AS '$libdir/latlon-v0007', 'pgl_ebox_to_ecluster'; 4.219 - 4.220 -CREATE OR REPLACE FUNCTION epoint(float8, float8) 4.221 - RETURNS epoint 4.222 - LANGUAGE C IMMUTABLE STRICT 4.223 - AS '$libdir/latlon-v0007', 'pgl_create_epoint'; 4.224 - 4.225 -CREATE OR REPLACE FUNCTION empty_ebox() 4.226 - RETURNS ebox 4.227 - LANGUAGE C IMMUTABLE STRICT 4.228 - AS '$libdir/latlon-v0007', 'pgl_create_empty_ebox'; 4.229 - 4.230 -CREATE OR REPLACE FUNCTION ebox(float8, float8, float8, float8) 4.231 - RETURNS ebox 4.232 - LANGUAGE C IMMUTABLE STRICT 4.233 - AS '$libdir/latlon-v0007', 'pgl_create_ebox'; 4.234 - 4.235 -CREATE OR REPLACE FUNCTION ebox(epoint, epoint) 4.236 - RETURNS ebox 4.237 - LANGUAGE C IMMUTABLE STRICT 4.238 - AS '$libdir/latlon-v0007', 'pgl_create_ebox_from_epoints'; 4.239 - 4.240 -CREATE OR REPLACE FUNCTION ecircle(float8, float8, float8) 4.241 - RETURNS ecircle 4.242 - LANGUAGE C IMMUTABLE STRICT 4.243 - AS '$libdir/latlon-v0007', 'pgl_create_ecircle'; 4.244 - 4.245 -CREATE OR REPLACE FUNCTION ecircle(epoint, float8) 4.246 - RETURNS ecircle 4.247 - LANGUAGE C IMMUTABLE STRICT 4.248 - AS '$libdir/latlon-v0007', 'pgl_create_ecircle_from_epoint'; 4.249 - 4.250 -CREATE OR REPLACE FUNCTION latitude(epoint) 4.251 - RETURNS float8 4.252 - LANGUAGE C IMMUTABLE STRICT 4.253 - AS '$libdir/latlon-v0007', 'pgl_epoint_lat'; 4.254 - 4.255 -CREATE OR REPLACE FUNCTION longitude(epoint) 4.256 - RETURNS float8 4.257 - LANGUAGE C IMMUTABLE STRICT 4.258 - AS '$libdir/latlon-v0007', 'pgl_epoint_lon'; 4.259 - 4.260 -CREATE OR REPLACE FUNCTION min_latitude(ebox) 4.261 - RETURNS float8 4.262 - LANGUAGE C IMMUTABLE STRICT 4.263 - AS '$libdir/latlon-v0007', 'pgl_ebox_lat_min'; 4.264 - 4.265 -CREATE OR REPLACE FUNCTION max_latitude(ebox) 4.266 - RETURNS float8 4.267 - LANGUAGE C IMMUTABLE STRICT 4.268 - AS '$libdir/latlon-v0007', 'pgl_ebox_lat_max'; 4.269 - 4.270 -CREATE OR REPLACE FUNCTION min_longitude(ebox) 4.271 - RETURNS float8 4.272 - LANGUAGE C IMMUTABLE STRICT 4.273 - AS '$libdir/latlon-v0007', 'pgl_ebox_lon_min'; 4.274 - 4.275 -CREATE OR REPLACE FUNCTION max_longitude(ebox) 4.276 - RETURNS float8 4.277 - LANGUAGE C IMMUTABLE STRICT 4.278 - AS '$libdir/latlon-v0007', 'pgl_ebox_lon_max'; 4.279 - 4.280 -CREATE OR REPLACE FUNCTION center(ecircle) 4.281 - RETURNS epoint 4.282 - LANGUAGE C IMMUTABLE STRICT 4.283 - AS '$libdir/latlon-v0007', 'pgl_ecircle_center'; 4.284 - 4.285 -CREATE OR REPLACE FUNCTION radius(ecircle) 4.286 - RETURNS float8 4.287 - LANGUAGE C IMMUTABLE STRICT 4.288 - AS '$libdir/latlon-v0007', 'pgl_ecircle_radius'; 4.289 - 4.290 -CREATE OR REPLACE FUNCTION epoint_ebox_overlap_proc(epoint, ebox) 4.291 - RETURNS boolean 4.292 - LANGUAGE C IMMUTABLE STRICT 4.293 - AS '$libdir/latlon-v0007', 'pgl_epoint_ebox_overlap'; 4.294 - 4.295 -CREATE OR REPLACE FUNCTION epoint_ecircle_overlap_proc(epoint, ecircle) 4.296 - RETURNS boolean 4.297 - LANGUAGE C IMMUTABLE STRICT 4.298 - AS '$libdir/latlon-v0007', 'pgl_epoint_ecircle_overlap'; 4.299 - 4.300 -CREATE OR REPLACE FUNCTION epoint_ecluster_overlap_proc(epoint, ecluster) 4.301 - RETURNS boolean 4.302 - LANGUAGE C IMMUTABLE STRICT 4.303 - AS '$libdir/latlon-v0007', 'pgl_epoint_ecluster_overlap'; 4.304 - 4.305 -CREATE OR REPLACE FUNCTION epoint_ecluster_may_overlap_proc(epoint, ecluster) 4.306 - RETURNS boolean 4.307 - LANGUAGE C IMMUTABLE STRICT 4.308 - AS '$libdir/latlon-v0007', 'pgl_epoint_ecluster_may_overlap'; 4.309 - 4.310 -CREATE OR REPLACE FUNCTION ebox_overlap_proc(ebox, ebox) 4.311 - RETURNS boolean 4.312 - LANGUAGE C IMMUTABLE STRICT 4.313 - AS '$libdir/latlon-v0007', 'pgl_ebox_overlap'; 4.314 - 4.315 -CREATE OR REPLACE FUNCTION ebox_ecircle_may_overlap_proc(ebox, ecircle) 4.316 - RETURNS boolean 4.317 - LANGUAGE C IMMUTABLE STRICT 4.318 - AS '$libdir/latlon-v0007', 'pgl_ebox_ecircle_may_overlap'; 4.319 - 4.320 -CREATE OR REPLACE FUNCTION ebox_ecluster_may_overlap_proc(ebox, ecluster) 4.321 - RETURNS boolean 4.322 - LANGUAGE C IMMUTABLE STRICT 4.323 - AS '$libdir/latlon-v0007', 'pgl_ebox_ecluster_may_overlap'; 4.324 - 4.325 -CREATE OR REPLACE FUNCTION ecircle_overlap_proc(ecircle, ecircle) 4.326 - RETURNS boolean 4.327 - LANGUAGE C IMMUTABLE STRICT 4.328 - AS '$libdir/latlon-v0007', 'pgl_ecircle_overlap'; 4.329 - 4.330 -CREATE OR REPLACE FUNCTION ecircle_ecluster_overlap_proc(ecircle, ecluster) 4.331 - RETURNS boolean 4.332 - LANGUAGE C IMMUTABLE STRICT 4.333 - AS '$libdir/latlon-v0007', 'pgl_ecircle_ecluster_overlap'; 4.334 - 4.335 -CREATE OR REPLACE FUNCTION ecircle_ecluster_may_overlap_proc(ecircle, ecluster) 4.336 - RETURNS boolean 4.337 - LANGUAGE C IMMUTABLE STRICT 4.338 - AS '$libdir/latlon-v0007', 'pgl_ecircle_ecluster_may_overlap'; 4.339 - 4.340 -CREATE OR REPLACE FUNCTION ecluster_overlap_proc(ecluster, ecluster) 4.341 - RETURNS boolean 4.342 - LANGUAGE C IMMUTABLE STRICT 4.343 - AS '$libdir/latlon-v0007', 'pgl_ecluster_overlap'; 4.344 - 4.345 -CREATE OR REPLACE FUNCTION ecluster_may_overlap_proc(ecluster, ecluster) 4.346 - RETURNS boolean 4.347 - LANGUAGE C IMMUTABLE STRICT 4.348 - AS '$libdir/latlon-v0007', 'pgl_ecluster_may_overlap'; 4.349 - 4.350 -CREATE OR REPLACE FUNCTION ecluster_contains_proc(ecluster, ecluster) 4.351 - RETURNS boolean 4.352 - LANGUAGE C IMMUTABLE STRICT 4.353 - AS '$libdir/latlon-v0007', 'pgl_ecluster_contains'; 4.354 - 4.355 -CREATE OR REPLACE FUNCTION epoint_distance_proc(epoint, epoint) 4.356 - RETURNS float8 4.357 - LANGUAGE C IMMUTABLE STRICT 4.358 - AS '$libdir/latlon-v0007', 'pgl_epoint_distance'; 4.359 - 4.360 -CREATE OR REPLACE FUNCTION epoint_ecircle_distance_proc(epoint, ecircle) 4.361 - RETURNS float8 4.362 - LANGUAGE C IMMUTABLE STRICT 4.363 - AS '$libdir/latlon-v0007', 'pgl_epoint_ecircle_distance'; 4.364 - 4.365 -CREATE OR REPLACE FUNCTION epoint_ecluster_distance_proc(epoint, ecluster) 4.366 - RETURNS float8 4.367 - LANGUAGE C IMMUTABLE STRICT 4.368 - AS '$libdir/latlon-v0007', 'pgl_epoint_ecluster_distance'; 4.369 - 4.370 -CREATE OR REPLACE FUNCTION ecircle_distance_proc(ecircle, ecircle) 4.371 - RETURNS float8 4.372 - LANGUAGE C IMMUTABLE STRICT 4.373 - AS '$libdir/latlon-v0007', 'pgl_ecircle_distance'; 4.374 - 4.375 -CREATE OR REPLACE FUNCTION ecircle_ecluster_distance_proc(ecircle, ecluster) 4.376 - RETURNS float8 4.377 - LANGUAGE C IMMUTABLE STRICT 4.378 - AS '$libdir/latlon-v0007', 'pgl_ecircle_ecluster_distance'; 4.379 - 4.380 -CREATE OR REPLACE FUNCTION ecluster_distance_proc(ecluster, ecluster) 4.381 - RETURNS float8 4.382 - LANGUAGE C IMMUTABLE STRICT 4.383 - AS '$libdir/latlon-v0007', 'pgl_ecluster_distance'; 4.384 - 4.385 -CREATE OR REPLACE FUNCTION pgl_gist_consistent(internal, internal, smallint, oid, internal) 4.386 - RETURNS boolean 4.387 - LANGUAGE C STRICT 4.388 - AS '$libdir/latlon-v0007', 'pgl_gist_consistent'; 4.389 - 4.390 -CREATE OR REPLACE FUNCTION pgl_gist_union(internal, internal) 4.391 - RETURNS internal 4.392 - LANGUAGE C STRICT 4.393 - AS '$libdir/latlon-v0007', 'pgl_gist_union'; 4.394 - 4.395 -CREATE OR REPLACE FUNCTION pgl_gist_compress_epoint(internal) 4.396 - RETURNS internal 4.397 - LANGUAGE C STRICT 4.398 - AS '$libdir/latlon-v0007', 'pgl_gist_compress_epoint'; 4.399 - 4.400 -CREATE OR REPLACE FUNCTION pgl_gist_compress_ecircle(internal) 4.401 - RETURNS internal 4.402 - LANGUAGE C STRICT 4.403 - AS '$libdir/latlon-v0007', 'pgl_gist_compress_ecircle'; 4.404 - 4.405 -CREATE OR REPLACE FUNCTION pgl_gist_compress_ecluster(internal) 4.406 - RETURNS internal 4.407 - LANGUAGE C STRICT 4.408 - AS '$libdir/latlon-v0007', 'pgl_gist_compress_ecluster'; 4.409 - 4.410 -CREATE OR REPLACE FUNCTION pgl_gist_decompress(internal) 4.411 - RETURNS internal 4.412 - LANGUAGE C STRICT 4.413 - AS '$libdir/latlon-v0007', 'pgl_gist_decompress'; 4.414 - 4.415 -CREATE OR REPLACE FUNCTION pgl_gist_penalty(internal, internal, internal) 4.416 - RETURNS internal 4.417 - LANGUAGE C STRICT 4.418 - AS '$libdir/latlon-v0007', 'pgl_gist_penalty'; 4.419 - 4.420 -CREATE OR REPLACE FUNCTION pgl_gist_picksplit(internal, internal) 4.421 - RETURNS internal 4.422 - LANGUAGE C STRICT 4.423 - AS '$libdir/latlon-v0007', 'pgl_gist_picksplit'; 4.424 - 4.425 -CREATE OR REPLACE FUNCTION pgl_gist_same(internal, internal, internal) 4.426 - RETURNS internal 4.427 - LANGUAGE C STRICT 4.428 - AS '$libdir/latlon-v0007', 'pgl_gist_same'; 4.429 - 4.430 -CREATE OR REPLACE FUNCTION pgl_gist_distance(internal, internal, smallint, oid) 4.431 - RETURNS internal 4.432 - LANGUAGE C STRICT 4.433 - AS '$libdir/latlon-v0007', 'pgl_gist_distance'; 4.434 -
5.1 --- a/latlon--0.7.sql Fri Oct 21 12:51:37 2016 +0200 5.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 5.3 @@ -1,1647 +0,0 @@ 5.4 - 5.5 ----------------------------------------- 5.6 --- forward declarations (shell types) -- 5.7 ----------------------------------------- 5.8 - 5.9 -CREATE TYPE epoint; 5.10 -CREATE TYPE ebox; 5.11 -CREATE TYPE ecircle; 5.12 -CREATE TYPE ecluster; 5.13 - 5.14 - 5.15 ------------------------------------------------------------- 5.16 --- dummy input/output functions for dummy index key types -- 5.17 ------------------------------------------------------------- 5.18 - 5.19 -CREATE FUNCTION ekey_point_in_dummy(cstring) 5.20 - RETURNS ekey_point 5.21 - LANGUAGE C IMMUTABLE STRICT 5.22 - AS '$libdir/latlon-v0007', 'pgl_notimpl'; 5.23 - 5.24 -CREATE FUNCTION ekey_point_out_dummy(ekey_point) 5.25 - RETURNS cstring 5.26 - LANGUAGE C IMMUTABLE STRICT 5.27 - AS '$libdir/latlon-v0007', 'pgl_notimpl'; 5.28 - 5.29 -CREATE FUNCTION ekey_area_in_dummy(cstring) 5.30 - RETURNS ekey_area 5.31 - LANGUAGE C IMMUTABLE STRICT 5.32 - AS '$libdir/latlon-v0007', 'pgl_notimpl'; 5.33 - 5.34 -CREATE FUNCTION ekey_area_out_dummy(ekey_area) 5.35 - RETURNS cstring 5.36 - LANGUAGE C IMMUTABLE STRICT 5.37 - AS '$libdir/latlon-v0007', 'pgl_notimpl'; 5.38 - 5.39 - 5.40 --------------------------- 5.41 --- text input functions -- 5.42 --------------------------- 5.43 - 5.44 -CREATE FUNCTION epoint_in(cstring) 5.45 - RETURNS epoint 5.46 - LANGUAGE C IMMUTABLE STRICT 5.47 - AS '$libdir/latlon-v0007', 'pgl_epoint_in'; 5.48 - 5.49 -CREATE FUNCTION ebox_in(cstring) 5.50 - RETURNS ebox 5.51 - LANGUAGE C IMMUTABLE STRICT 5.52 - AS '$libdir/latlon-v0007', 'pgl_ebox_in'; 5.53 - 5.54 -CREATE FUNCTION ecircle_in(cstring) 5.55 - RETURNS ecircle 5.56 - LANGUAGE C IMMUTABLE STRICT 5.57 - AS '$libdir/latlon-v0007', 'pgl_ecircle_in'; 5.58 - 5.59 -CREATE FUNCTION ecluster_in(cstring) 5.60 - RETURNS ecluster 5.61 - LANGUAGE C IMMUTABLE STRICT 5.62 - AS '$libdir/latlon-v0007', 'pgl_ecluster_in'; 5.63 - 5.64 - 5.65 ---------------------------- 5.66 --- text output functions -- 5.67 ---------------------------- 5.68 - 5.69 -CREATE FUNCTION epoint_out(epoint) 5.70 - RETURNS cstring 5.71 - LANGUAGE C IMMUTABLE STRICT 5.72 - AS '$libdir/latlon-v0007', 'pgl_epoint_out'; 5.73 - 5.74 -CREATE FUNCTION ebox_out(ebox) 5.75 - RETURNS cstring 5.76 - LANGUAGE C IMMUTABLE STRICT 5.77 - AS '$libdir/latlon-v0007', 'pgl_ebox_out'; 5.78 - 5.79 -CREATE FUNCTION ecircle_out(ecircle) 5.80 - RETURNS cstring 5.81 - LANGUAGE C IMMUTABLE STRICT 5.82 - AS '$libdir/latlon-v0007', 'pgl_ecircle_out'; 5.83 - 5.84 -CREATE FUNCTION ecluster_out(ecluster) 5.85 - RETURNS cstring 5.86 - LANGUAGE C IMMUTABLE STRICT 5.87 - AS '$libdir/latlon-v0007', 'pgl_ecluster_out'; 5.88 - 5.89 - 5.90 --------------------------- 5.91 --- binary I/O functions -- 5.92 --------------------------- 5.93 - 5.94 -CREATE FUNCTION epoint_recv(internal) 5.95 - RETURNS epoint 5.96 - LANGUAGE C IMMUTABLE STRICT 5.97 - AS '$libdir/latlon-v0007', 'pgl_epoint_recv'; 5.98 - 5.99 -CREATE FUNCTION ebox_recv(internal) 5.100 - RETURNS ebox 5.101 - LANGUAGE C IMMUTABLE STRICT 5.102 - AS '$libdir/latlon-v0007', 'pgl_ebox_recv'; 5.103 - 5.104 -CREATE FUNCTION ecircle_recv(internal) 5.105 - RETURNS ecircle 5.106 - LANGUAGE C IMMUTABLE STRICT 5.107 - AS '$libdir/latlon-v0007', 'pgl_ecircle_recv'; 5.108 - 5.109 -CREATE FUNCTION epoint_send(epoint) 5.110 - RETURNS bytea 5.111 - LANGUAGE C IMMUTABLE STRICT 5.112 - AS '$libdir/latlon-v0007', 'pgl_epoint_send'; 5.113 - 5.114 -CREATE FUNCTION ebox_send(ebox) 5.115 - RETURNS bytea 5.116 - LANGUAGE C IMMUTABLE STRICT 5.117 - AS '$libdir/latlon-v0007', 'pgl_ebox_send'; 5.118 - 5.119 -CREATE FUNCTION ecircle_send(ecircle) 5.120 - RETURNS bytea 5.121 - LANGUAGE C IMMUTABLE STRICT 5.122 - AS '$libdir/latlon-v0007', 'pgl_ecircle_send'; 5.123 - 5.124 - 5.125 ------------------------------------------------ 5.126 --- type definitions of dummy index key types -- 5.127 ------------------------------------------------ 5.128 - 5.129 -CREATE TYPE ekey_point ( 5.130 - internallength = 8, 5.131 - input = ekey_point_in_dummy, 5.132 - output = ekey_point_out_dummy, 5.133 - alignment = char ); 5.134 - 5.135 -CREATE TYPE ekey_area ( 5.136 - internallength = 9, 5.137 - input = ekey_area_in_dummy, 5.138 - output = ekey_area_out_dummy, 5.139 - alignment = char ); 5.140 - 5.141 - 5.142 ------------------------------------------- 5.143 --- definitions of geographic data types -- 5.144 ------------------------------------------- 5.145 - 5.146 -CREATE TYPE epoint ( 5.147 - internallength = 16, 5.148 - input = epoint_in, 5.149 - output = epoint_out, 5.150 - receive = epoint_recv, 5.151 - send = epoint_send, 5.152 - alignment = double ); 5.153 - 5.154 -CREATE TYPE ebox ( 5.155 - internallength = 32, 5.156 - input = ebox_in, 5.157 - output = ebox_out, 5.158 - receive = ebox_recv, 5.159 - send = ebox_send, 5.160 - alignment = double ); 5.161 - 5.162 -CREATE TYPE ecircle ( 5.163 - internallength = 24, 5.164 - input = ecircle_in, 5.165 - output = ecircle_out, 5.166 - receive = ecircle_recv, 5.167 - send = ecircle_send, 5.168 - alignment = double ); 5.169 - 5.170 -CREATE TYPE ecluster ( 5.171 - internallength = VARIABLE, 5.172 - input = ecluster_in, 5.173 - output = ecluster_out, 5.174 - alignment = double, 5.175 - storage = external ); 5.176 - 5.177 - 5.178 --------------------- 5.179 --- B-tree support -- 5.180 --------------------- 5.181 - 5.182 --- begin of B-tree support for epoint 5.183 - 5.184 -CREATE FUNCTION epoint_btree_lt(epoint, epoint) 5.185 - RETURNS boolean 5.186 - LANGUAGE C IMMUTABLE STRICT 5.187 - AS '$libdir/latlon-v0007', 'pgl_btree_epoint_lt'; 5.188 - 5.189 -CREATE FUNCTION epoint_btree_le(epoint, epoint) 5.190 - RETURNS boolean 5.191 - LANGUAGE C IMMUTABLE STRICT 5.192 - AS '$libdir/latlon-v0007', 'pgl_btree_epoint_le'; 5.193 - 5.194 -CREATE FUNCTION epoint_btree_eq(epoint, epoint) 5.195 - RETURNS boolean 5.196 - LANGUAGE C IMMUTABLE STRICT 5.197 - AS '$libdir/latlon-v0007', 'pgl_btree_epoint_eq'; 5.198 - 5.199 -CREATE FUNCTION epoint_btree_ne(epoint, epoint) 5.200 - RETURNS boolean 5.201 - LANGUAGE C IMMUTABLE STRICT 5.202 - AS '$libdir/latlon-v0007', 'pgl_btree_epoint_ne'; 5.203 - 5.204 -CREATE FUNCTION epoint_btree_ge(epoint, epoint) 5.205 - RETURNS boolean 5.206 - LANGUAGE C IMMUTABLE STRICT 5.207 - AS '$libdir/latlon-v0007', 'pgl_btree_epoint_ge'; 5.208 - 5.209 -CREATE FUNCTION epoint_btree_gt(epoint, epoint) 5.210 - RETURNS boolean 5.211 - LANGUAGE C IMMUTABLE STRICT 5.212 - AS '$libdir/latlon-v0007', 'pgl_btree_epoint_gt'; 5.213 - 5.214 -CREATE OPERATOR <<< ( 5.215 - leftarg = epoint, 5.216 - rightarg = epoint, 5.217 - procedure = epoint_btree_lt, 5.218 - commutator = >>>, 5.219 - negator = >>>=, 5.220 - restrict = scalarltsel, 5.221 - join = scalarltjoinsel 5.222 -); 5.223 - 5.224 -CREATE OPERATOR <<<= ( 5.225 - leftarg = epoint, 5.226 - rightarg = epoint, 5.227 - procedure = epoint_btree_le, 5.228 - commutator = >>>=, 5.229 - negator = >>>, 5.230 - restrict = scalarltsel, 5.231 - join = scalarltjoinsel 5.232 -); 5.233 - 5.234 -CREATE OPERATOR = ( 5.235 - leftarg = epoint, 5.236 - rightarg = epoint, 5.237 - procedure = epoint_btree_eq, 5.238 - commutator = =, 5.239 - negator = <>, 5.240 - restrict = eqsel, 5.241 - join = eqjoinsel, 5.242 - merges 5.243 -); 5.244 - 5.245 -CREATE OPERATOR <> ( 5.246 - leftarg = epoint, 5.247 - rightarg = epoint, 5.248 - procedure = epoint_btree_eq, 5.249 - commutator = <>, 5.250 - negator = =, 5.251 - restrict = neqsel, 5.252 - join = neqjoinsel 5.253 -); 5.254 - 5.255 -CREATE OPERATOR >>>= ( 5.256 - leftarg = epoint, 5.257 - rightarg = epoint, 5.258 - procedure = epoint_btree_ge, 5.259 - commutator = <<<=, 5.260 - negator = <<<, 5.261 - restrict = scalargtsel, 5.262 - join = scalargtjoinsel 5.263 -); 5.264 - 5.265 -CREATE OPERATOR >>> ( 5.266 - leftarg = epoint, 5.267 - rightarg = epoint, 5.268 - procedure = epoint_btree_gt, 5.269 - commutator = <<<, 5.270 - negator = <<<=, 5.271 - restrict = scalargtsel, 5.272 - join = scalargtjoinsel 5.273 -); 5.274 - 5.275 -CREATE FUNCTION epoint_btree_cmp(epoint, epoint) 5.276 - RETURNS int4 5.277 - LANGUAGE C IMMUTABLE STRICT 5.278 - AS '$libdir/latlon-v0007', 'pgl_btree_epoint_cmp'; 5.279 - 5.280 -CREATE OPERATOR CLASS epoint_btree_ops 5.281 - DEFAULT FOR TYPE epoint USING btree AS 5.282 - OPERATOR 1 <<< , 5.283 - OPERATOR 2 <<<= , 5.284 - OPERATOR 3 = , 5.285 - OPERATOR 4 >>>= , 5.286 - OPERATOR 5 >>> , 5.287 - FUNCTION 1 epoint_btree_cmp(epoint, epoint); 5.288 - 5.289 --- end of B-tree support for epoint 5.290 - 5.291 --- begin of B-tree support for ebox 5.292 - 5.293 -CREATE FUNCTION ebox_btree_lt(ebox, ebox) 5.294 - RETURNS boolean 5.295 - LANGUAGE C IMMUTABLE STRICT 5.296 - AS '$libdir/latlon-v0007', 'pgl_btree_ebox_lt'; 5.297 - 5.298 -CREATE FUNCTION ebox_btree_le(ebox, ebox) 5.299 - RETURNS boolean 5.300 - LANGUAGE C IMMUTABLE STRICT 5.301 - AS '$libdir/latlon-v0007', 'pgl_btree_ebox_le'; 5.302 - 5.303 -CREATE FUNCTION ebox_btree_eq(ebox, ebox) 5.304 - RETURNS boolean 5.305 - LANGUAGE C IMMUTABLE STRICT 5.306 - AS '$libdir/latlon-v0007', 'pgl_btree_ebox_eq'; 5.307 - 5.308 -CREATE FUNCTION ebox_btree_ne(ebox, ebox) 5.309 - RETURNS boolean 5.310 - LANGUAGE C IMMUTABLE STRICT 5.311 - AS '$libdir/latlon-v0007', 'pgl_btree_ebox_ne'; 5.312 - 5.313 -CREATE FUNCTION ebox_btree_ge(ebox, ebox) 5.314 - RETURNS boolean 5.315 - LANGUAGE C IMMUTABLE STRICT 5.316 - AS '$libdir/latlon-v0007', 'pgl_btree_ebox_ge'; 5.317 - 5.318 -CREATE FUNCTION ebox_btree_gt(ebox, ebox) 5.319 - RETURNS boolean 5.320 - LANGUAGE C IMMUTABLE STRICT 5.321 - AS '$libdir/latlon-v0007', 'pgl_btree_ebox_gt'; 5.322 - 5.323 -CREATE OPERATOR <<< ( 5.324 - leftarg = ebox, 5.325 - rightarg = ebox, 5.326 - procedure = ebox_btree_lt, 5.327 - commutator = >>>, 5.328 - negator = >>>=, 5.329 - restrict = scalarltsel, 5.330 - join = scalarltjoinsel 5.331 -); 5.332 - 5.333 -CREATE OPERATOR <<<= ( 5.334 - leftarg = ebox, 5.335 - rightarg = ebox, 5.336 - procedure = ebox_btree_le, 5.337 - commutator = >>>=, 5.338 - negator = >>>, 5.339 - restrict = scalarltsel, 5.340 - join = scalarltjoinsel 5.341 -); 5.342 - 5.343 -CREATE OPERATOR = ( 5.344 - leftarg = ebox, 5.345 - rightarg = ebox, 5.346 - procedure = ebox_btree_eq, 5.347 - commutator = =, 5.348 - negator = <>, 5.349 - restrict = eqsel, 5.350 - join = eqjoinsel, 5.351 - merges 5.352 -); 5.353 - 5.354 -CREATE OPERATOR <> ( 5.355 - leftarg = ebox, 5.356 - rightarg = ebox, 5.357 - procedure = ebox_btree_eq, 5.358 - commutator = <>, 5.359 - negator = =, 5.360 - restrict = neqsel, 5.361 - join = neqjoinsel 5.362 -); 5.363 - 5.364 -CREATE OPERATOR >>>= ( 5.365 - leftarg = ebox, 5.366 - rightarg = ebox, 5.367 - procedure = ebox_btree_ge, 5.368 - commutator = <<<=, 5.369 - negator = <<<, 5.370 - restrict = scalargtsel, 5.371 - join = scalargtjoinsel 5.372 -); 5.373 - 5.374 -CREATE OPERATOR >>> ( 5.375 - leftarg = ebox, 5.376 - rightarg = ebox, 5.377 - procedure = ebox_btree_gt, 5.378 - commutator = <<<, 5.379 - negator = <<<=, 5.380 - restrict = scalargtsel, 5.381 - join = scalargtjoinsel 5.382 -); 5.383 - 5.384 -CREATE FUNCTION ebox_btree_cmp(ebox, ebox) 5.385 - RETURNS int4 5.386 - LANGUAGE C IMMUTABLE STRICT 5.387 - AS '$libdir/latlon-v0007', 'pgl_btree_ebox_cmp'; 5.388 - 5.389 -CREATE OPERATOR CLASS ebox_btree_ops 5.390 - DEFAULT FOR TYPE ebox USING btree AS 5.391 - OPERATOR 1 <<< , 5.392 - OPERATOR 2 <<<= , 5.393 - OPERATOR 3 = , 5.394 - OPERATOR 4 >>>= , 5.395 - OPERATOR 5 >>> , 5.396 - FUNCTION 1 ebox_btree_cmp(ebox, ebox); 5.397 - 5.398 --- end of B-tree support for ebox 5.399 - 5.400 --- begin of B-tree support for ecircle 5.401 - 5.402 -CREATE FUNCTION ecircle_btree_lt(ecircle, ecircle) 5.403 - RETURNS boolean 5.404 - LANGUAGE C IMMUTABLE STRICT 5.405 - AS '$libdir/latlon-v0007', 'pgl_btree_ecircle_lt'; 5.406 - 5.407 -CREATE FUNCTION ecircle_btree_le(ecircle, ecircle) 5.408 - RETURNS boolean 5.409 - LANGUAGE C IMMUTABLE STRICT 5.410 - AS '$libdir/latlon-v0007', 'pgl_btree_ecircle_le'; 5.411 - 5.412 -CREATE FUNCTION ecircle_btree_eq(ecircle, ecircle) 5.413 - RETURNS boolean 5.414 - LANGUAGE C IMMUTABLE STRICT 5.415 - AS '$libdir/latlon-v0007', 'pgl_btree_ecircle_eq'; 5.416 - 5.417 -CREATE FUNCTION ecircle_btree_ne(ecircle, ecircle) 5.418 - RETURNS boolean 5.419 - LANGUAGE C IMMUTABLE STRICT 5.420 - AS '$libdir/latlon-v0007', 'pgl_btree_ecircle_ne'; 5.421 - 5.422 -CREATE FUNCTION ecircle_btree_ge(ecircle, ecircle) 5.423 - RETURNS boolean 5.424 - LANGUAGE C IMMUTABLE STRICT 5.425 - AS '$libdir/latlon-v0007', 'pgl_btree_ecircle_ge'; 5.426 - 5.427 -CREATE FUNCTION ecircle_btree_gt(ecircle, ecircle) 5.428 - RETURNS boolean 5.429 - LANGUAGE C IMMUTABLE STRICT 5.430 - AS '$libdir/latlon-v0007', 'pgl_btree_ecircle_gt'; 5.431 - 5.432 -CREATE OPERATOR <<< ( 5.433 - leftarg = ecircle, 5.434 - rightarg = ecircle, 5.435 - procedure = ecircle_btree_lt, 5.436 - commutator = >>>, 5.437 - negator = >>>=, 5.438 - restrict = scalarltsel, 5.439 - join = scalarltjoinsel 5.440 -); 5.441 - 5.442 -CREATE OPERATOR <<<= ( 5.443 - leftarg = ecircle, 5.444 - rightarg = ecircle, 5.445 - procedure = ecircle_btree_le, 5.446 - commutator = >>>=, 5.447 - negator = >>>, 5.448 - restrict = scalarltsel, 5.449 - join = scalarltjoinsel 5.450 -); 5.451 - 5.452 -CREATE OPERATOR = ( 5.453 - leftarg = ecircle, 5.454 - rightarg = ecircle, 5.455 - procedure = ecircle_btree_eq, 5.456 - commutator = =, 5.457 - negator = <>, 5.458 - restrict = eqsel, 5.459 - join = eqjoinsel, 5.460 - merges 5.461 -); 5.462 - 5.463 -CREATE OPERATOR <> ( 5.464 - leftarg = ecircle, 5.465 - rightarg = ecircle, 5.466 - procedure = ecircle_btree_eq, 5.467 - commutator = <>, 5.468 - negator = =, 5.469 - restrict = neqsel, 5.470 - join = neqjoinsel 5.471 -); 5.472 - 5.473 -CREATE OPERATOR >>>= ( 5.474 - leftarg = ecircle, 5.475 - rightarg = ecircle, 5.476 - procedure = ecircle_btree_ge, 5.477 - commutator = <<<=, 5.478 - negator = <<<, 5.479 - restrict = scalargtsel, 5.480 - join = scalargtjoinsel 5.481 -); 5.482 - 5.483 -CREATE OPERATOR >>> ( 5.484 - leftarg = ecircle, 5.485 - rightarg = ecircle, 5.486 - procedure = ecircle_btree_gt, 5.487 - commutator = <<<, 5.488 - negator = <<<=, 5.489 - restrict = scalargtsel, 5.490 - join = scalargtjoinsel 5.491 -); 5.492 - 5.493 -CREATE FUNCTION ecircle_btree_cmp(ecircle, ecircle) 5.494 - RETURNS int4 5.495 - LANGUAGE C IMMUTABLE STRICT 5.496 - AS '$libdir/latlon-v0007', 'pgl_btree_ecircle_cmp'; 5.497 - 5.498 -CREATE OPERATOR CLASS ecircle_btree_ops 5.499 - DEFAULT FOR TYPE ecircle USING btree AS 5.500 - OPERATOR 1 <<< , 5.501 - OPERATOR 2 <<<= , 5.502 - OPERATOR 3 = , 5.503 - OPERATOR 4 >>>= , 5.504 - OPERATOR 5 >>> , 5.505 - FUNCTION 1 ecircle_btree_cmp(ecircle, ecircle); 5.506 - 5.507 --- end of B-tree support for ecircle 5.508 - 5.509 - 5.510 ----------------- 5.511 --- type casts -- 5.512 ----------------- 5.513 - 5.514 -CREATE FUNCTION cast_epoint_to_ebox(epoint) 5.515 - RETURNS ebox 5.516 - LANGUAGE C IMMUTABLE STRICT 5.517 - AS '$libdir/latlon-v0007', 'pgl_epoint_to_ebox'; 5.518 - 5.519 -CREATE CAST (epoint AS ebox) WITH FUNCTION cast_epoint_to_ebox(epoint); 5.520 - 5.521 -CREATE FUNCTION cast_epoint_to_ecircle(epoint) 5.522 - RETURNS ecircle 5.523 - LANGUAGE C IMMUTABLE STRICT 5.524 - AS '$libdir/latlon-v0007', 'pgl_epoint_to_ecircle'; 5.525 - 5.526 -CREATE CAST (epoint AS ecircle) WITH FUNCTION cast_epoint_to_ecircle(epoint); 5.527 - 5.528 -CREATE FUNCTION cast_epoint_to_ecluster(epoint) 5.529 - RETURNS ecluster 5.530 - LANGUAGE C IMMUTABLE STRICT 5.531 - AS '$libdir/latlon-v0007', 'pgl_epoint_to_ecluster'; 5.532 - 5.533 -CREATE CAST (epoint AS ecluster) WITH FUNCTION cast_epoint_to_ecluster(epoint); 5.534 - 5.535 -CREATE FUNCTION cast_ebox_to_ecluster(ebox) 5.536 - RETURNS ecluster 5.537 - LANGUAGE C IMMUTABLE STRICT 5.538 - AS '$libdir/latlon-v0007', 'pgl_ebox_to_ecluster'; 5.539 - 5.540 -CREATE CAST (ebox AS ecluster) WITH FUNCTION cast_ebox_to_ecluster(ebox); 5.541 - 5.542 - 5.543 ---------------------------- 5.544 --- constructor functions -- 5.545 ---------------------------- 5.546 - 5.547 -CREATE FUNCTION epoint(float8, float8) 5.548 - RETURNS epoint 5.549 - LANGUAGE C IMMUTABLE STRICT 5.550 - AS '$libdir/latlon-v0007', 'pgl_create_epoint'; 5.551 - 5.552 -CREATE FUNCTION epoint_latlon(float8, float8) 5.553 - RETURNS epoint 5.554 - LANGUAGE SQL IMMUTABLE STRICT AS $$ 5.555 - SELECT epoint($1, $2) 5.556 - $$; 5.557 - 5.558 -CREATE FUNCTION epoint_lonlat(float8, float8) 5.559 - RETURNS epoint 5.560 - LANGUAGE SQL IMMUTABLE STRICT AS $$ 5.561 - SELECT epoint($2, $1) 5.562 - $$; 5.563 - 5.564 -CREATE FUNCTION empty_ebox() 5.565 - RETURNS ebox 5.566 - LANGUAGE C IMMUTABLE STRICT 5.567 - AS '$libdir/latlon-v0007', 'pgl_create_empty_ebox'; 5.568 - 5.569 -CREATE FUNCTION ebox(float8, float8, float8, float8) 5.570 - RETURNS ebox 5.571 - LANGUAGE C IMMUTABLE STRICT 5.572 - AS '$libdir/latlon-v0007', 'pgl_create_ebox'; 5.573 - 5.574 -CREATE FUNCTION ebox(epoint, epoint) 5.575 - RETURNS ebox 5.576 - LANGUAGE C IMMUTABLE STRICT 5.577 - AS '$libdir/latlon-v0007', 'pgl_create_ebox_from_epoints'; 5.578 - 5.579 -CREATE FUNCTION ecircle(float8, float8, float8) 5.580 - RETURNS ecircle 5.581 - LANGUAGE C IMMUTABLE STRICT 5.582 - AS '$libdir/latlon-v0007', 'pgl_create_ecircle'; 5.583 - 5.584 -CREATE FUNCTION ecircle(epoint, float8) 5.585 - RETURNS ecircle 5.586 - LANGUAGE C IMMUTABLE STRICT 5.587 - AS '$libdir/latlon-v0007', 'pgl_create_ecircle_from_epoint'; 5.588 - 5.589 -CREATE FUNCTION ecluster_concat(ecluster[]) 5.590 - RETURNS ecluster 5.591 - LANGUAGE sql IMMUTABLE STRICT AS $$ 5.592 - SELECT array_to_string($1, ' ')::ecluster 5.593 - $$; 5.594 - 5.595 -CREATE FUNCTION ecluster_concat(ecluster, ecluster) 5.596 - RETURNS ecluster 5.597 - LANGUAGE sql IMMUTABLE STRICT AS $$ 5.598 - SELECT ($1::text || ' ' || $2::text)::ecluster 5.599 - $$; 5.600 - 5.601 -CREATE FUNCTION ecluster_create_multipoint(epoint[]) 5.602 - RETURNS ecluster 5.603 - LANGUAGE sql IMMUTABLE STRICT AS $$ 5.604 - SELECT 5.605 - array_to_string(array_agg('point (' || unnest || ')'), ' ')::ecluster 5.606 - FROM unnest($1) 5.607 - $$; 5.608 - 5.609 -CREATE FUNCTION ecluster_create_path(epoint[]) 5.610 - RETURNS ecluster 5.611 - LANGUAGE sql IMMUTABLE STRICT AS $$ 5.612 - SELECT CASE WHEN "str" = '' THEN 'empty'::ecluster ELSE 5.613 - ('path (' || array_to_string($1, ' ') || ')')::ecluster 5.614 - END 5.615 - FROM array_to_string($1, ' ') AS "str" 5.616 - $$; 5.617 - 5.618 -CREATE FUNCTION ecluster_create_outline(epoint[]) 5.619 - RETURNS ecluster 5.620 - LANGUAGE sql IMMUTABLE STRICT AS $$ 5.621 - SELECT CASE WHEN "str" = '' THEN 'empty'::ecluster ELSE 5.622 - ('outline (' || array_to_string($1, ' ') || ')')::ecluster 5.623 - END 5.624 - FROM array_to_string($1, ' ') AS "str" 5.625 - $$; 5.626 - 5.627 -CREATE FUNCTION ecluster_create_polygon(epoint[]) 5.628 - RETURNS ecluster 5.629 - LANGUAGE sql IMMUTABLE STRICT AS $$ 5.630 - SELECT CASE WHEN "str" = '' THEN 'empty'::ecluster ELSE 5.631 - ('polygon (' || array_to_string($1, ' ') || ')')::ecluster 5.632 - END 5.633 - FROM array_to_string($1, ' ') AS "str" 5.634 - $$; 5.635 - 5.636 - 5.637 ----------------------- 5.638 --- getter functions -- 5.639 ----------------------- 5.640 - 5.641 -CREATE FUNCTION latitude(epoint) 5.642 - RETURNS float8 5.643 - LANGUAGE C IMMUTABLE STRICT 5.644 - AS '$libdir/latlon-v0007', 'pgl_epoint_lat'; 5.645 - 5.646 -CREATE FUNCTION longitude(epoint) 5.647 - RETURNS float8 5.648 - LANGUAGE C IMMUTABLE STRICT 5.649 - AS '$libdir/latlon-v0007', 'pgl_epoint_lon'; 5.650 - 5.651 -CREATE FUNCTION min_latitude(ebox) 5.652 - RETURNS float8 5.653 - LANGUAGE C IMMUTABLE STRICT 5.654 - AS '$libdir/latlon-v0007', 'pgl_ebox_lat_min'; 5.655 - 5.656 -CREATE FUNCTION max_latitude(ebox) 5.657 - RETURNS float8 5.658 - LANGUAGE C IMMUTABLE STRICT 5.659 - AS '$libdir/latlon-v0007', 'pgl_ebox_lat_max'; 5.660 - 5.661 -CREATE FUNCTION min_longitude(ebox) 5.662 - RETURNS float8 5.663 - LANGUAGE C IMMUTABLE STRICT 5.664 - AS '$libdir/latlon-v0007', 'pgl_ebox_lon_min'; 5.665 - 5.666 -CREATE FUNCTION max_longitude(ebox) 5.667 - RETURNS float8 5.668 - LANGUAGE C IMMUTABLE STRICT 5.669 - AS '$libdir/latlon-v0007', 'pgl_ebox_lon_max'; 5.670 - 5.671 -CREATE FUNCTION center(ecircle) 5.672 - RETURNS epoint 5.673 - LANGUAGE C IMMUTABLE STRICT 5.674 - AS '$libdir/latlon-v0007', 'pgl_ecircle_center'; 5.675 - 5.676 -CREATE FUNCTION radius(ecircle) 5.677 - RETURNS float8 5.678 - LANGUAGE C IMMUTABLE STRICT 5.679 - AS '$libdir/latlon-v0007', 'pgl_ecircle_radius'; 5.680 - 5.681 -CREATE FUNCTION ecluster_extract_points(ecluster) 5.682 - RETURNS SETOF epoint 5.683 - LANGUAGE sql IMMUTABLE STRICT AS $$ 5.684 - SELECT "match"[2]::epoint 5.685 - FROM regexp_matches($1::text, e'(^| )point \\(([^)]+)\\)', 'g') AS "match" 5.686 - $$; 5.687 - 5.688 -CREATE FUNCTION ecluster_extract_paths(ecluster) 5.689 - RETURNS SETOF epoint[] 5.690 - LANGUAGE sql IMMUTABLE STRICT AS $$ 5.691 - SELECT ( 5.692 - SELECT array_agg("m2"[1]::epoint) 5.693 - FROM regexp_matches("m1"[2], e'[^ ]+ [^ ]+', 'g') AS "m2" 5.694 - ) 5.695 - FROM regexp_matches($1::text, e'(^| )path \\(([^)]+)\\)', 'g') AS "m1" 5.696 - $$; 5.697 - 5.698 -CREATE FUNCTION ecluster_extract_outlines(ecluster) 5.699 - RETURNS SETOF epoint[] 5.700 - LANGUAGE sql IMMUTABLE STRICT AS $$ 5.701 - SELECT ( 5.702 - SELECT array_agg("m2"[1]::epoint) 5.703 - FROM regexp_matches("m1"[2], e'[^ ]+ [^ ]+', 'g') AS "m2" 5.704 - ) 5.705 - FROM regexp_matches($1::text, e'(^| )outline \\(([^)]+)\\)', 'g') AS "m1" 5.706 - $$; 5.707 - 5.708 -CREATE FUNCTION ecluster_extract_polygons(ecluster) 5.709 - RETURNS SETOF epoint[] 5.710 - LANGUAGE sql IMMUTABLE STRICT AS $$ 5.711 - SELECT ( 5.712 - SELECT array_agg("m2"[1]::epoint) 5.713 - FROM regexp_matches("m1"[2], e'[^ ]+ [^ ]+', 'g') AS "m2" 5.714 - ) 5.715 - FROM regexp_matches($1::text, e'(^| )polygon \\(([^)]+)\\)', 'g') AS "m1" 5.716 - $$; 5.717 - 5.718 - 5.719 ---------------- 5.720 --- operators -- 5.721 ---------------- 5.722 - 5.723 -CREATE FUNCTION epoint_ebox_overlap_proc(epoint, ebox) 5.724 - RETURNS boolean 5.725 - LANGUAGE C IMMUTABLE STRICT 5.726 - AS '$libdir/latlon-v0007', 'pgl_epoint_ebox_overlap'; 5.727 - 5.728 -CREATE FUNCTION epoint_ecircle_overlap_proc(epoint, ecircle) 5.729 - RETURNS boolean 5.730 - LANGUAGE C IMMUTABLE STRICT 5.731 - AS '$libdir/latlon-v0007', 'pgl_epoint_ecircle_overlap'; 5.732 - 5.733 -CREATE FUNCTION epoint_ecluster_overlap_proc(epoint, ecluster) 5.734 - RETURNS boolean 5.735 - LANGUAGE C IMMUTABLE STRICT 5.736 - AS '$libdir/latlon-v0007', 'pgl_epoint_ecluster_overlap'; 5.737 - 5.738 -CREATE FUNCTION epoint_ecluster_may_overlap_proc(epoint, ecluster) 5.739 - RETURNS boolean 5.740 - LANGUAGE C IMMUTABLE STRICT 5.741 - AS '$libdir/latlon-v0007', 'pgl_epoint_ecluster_may_overlap'; 5.742 - 5.743 -CREATE FUNCTION ebox_overlap_proc(ebox, ebox) 5.744 - RETURNS boolean 5.745 - LANGUAGE C IMMUTABLE STRICT 5.746 - AS '$libdir/latlon-v0007', 'pgl_ebox_overlap'; 5.747 - 5.748 -CREATE FUNCTION ebox_ecircle_may_overlap_proc(ebox, ecircle) 5.749 - RETURNS boolean 5.750 - LANGUAGE C IMMUTABLE STRICT 5.751 - AS '$libdir/latlon-v0007', 'pgl_ebox_ecircle_may_overlap'; 5.752 - 5.753 -CREATE FUNCTION ebox_ecluster_may_overlap_proc(ebox, ecluster) 5.754 - RETURNS boolean 5.755 - LANGUAGE C IMMUTABLE STRICT 5.756 - AS '$libdir/latlon-v0007', 'pgl_ebox_ecluster_may_overlap'; 5.757 - 5.758 -CREATE FUNCTION ecircle_overlap_proc(ecircle, ecircle) 5.759 - RETURNS boolean 5.760 - LANGUAGE C IMMUTABLE STRICT 5.761 - AS '$libdir/latlon-v0007', 'pgl_ecircle_overlap'; 5.762 - 5.763 -CREATE FUNCTION ecircle_ecluster_overlap_proc(ecircle, ecluster) 5.764 - RETURNS boolean 5.765 - LANGUAGE C IMMUTABLE STRICT 5.766 - AS '$libdir/latlon-v0007', 'pgl_ecircle_ecluster_overlap'; 5.767 - 5.768 -CREATE FUNCTION ecircle_ecluster_may_overlap_proc(ecircle, ecluster) 5.769 - RETURNS boolean 5.770 - LANGUAGE C IMMUTABLE STRICT 5.771 - AS '$libdir/latlon-v0007', 'pgl_ecircle_ecluster_may_overlap'; 5.772 - 5.773 -CREATE FUNCTION ecluster_overlap_proc(ecluster, ecluster) 5.774 - RETURNS boolean 5.775 - LANGUAGE C IMMUTABLE STRICT 5.776 - AS '$libdir/latlon-v0007', 'pgl_ecluster_overlap'; 5.777 - 5.778 -CREATE FUNCTION ecluster_may_overlap_proc(ecluster, ecluster) 5.779 - RETURNS boolean 5.780 - LANGUAGE C IMMUTABLE STRICT 5.781 - AS '$libdir/latlon-v0007', 'pgl_ecluster_may_overlap'; 5.782 - 5.783 -CREATE FUNCTION ecluster_contains_proc(ecluster, ecluster) 5.784 - RETURNS boolean 5.785 - LANGUAGE C IMMUTABLE STRICT 5.786 - AS '$libdir/latlon-v0007', 'pgl_ecluster_contains'; 5.787 - 5.788 -CREATE FUNCTION epoint_distance_proc(epoint, epoint) 5.789 - RETURNS float8 5.790 - LANGUAGE C IMMUTABLE STRICT 5.791 - AS '$libdir/latlon-v0007', 'pgl_epoint_distance'; 5.792 - 5.793 -CREATE FUNCTION epoint_ecircle_distance_proc(epoint, ecircle) 5.794 - RETURNS float8 5.795 - LANGUAGE C IMMUTABLE STRICT 5.796 - AS '$libdir/latlon-v0007', 'pgl_epoint_ecircle_distance'; 5.797 - 5.798 -CREATE FUNCTION epoint_ecluster_distance_proc(epoint, ecluster) 5.799 - RETURNS float8 5.800 - LANGUAGE C IMMUTABLE STRICT 5.801 - AS '$libdir/latlon-v0007', 'pgl_epoint_ecluster_distance'; 5.802 - 5.803 -CREATE FUNCTION ecircle_distance_proc(ecircle, ecircle) 5.804 - RETURNS float8 5.805 - LANGUAGE C IMMUTABLE STRICT 5.806 - AS '$libdir/latlon-v0007', 'pgl_ecircle_distance'; 5.807 - 5.808 -CREATE FUNCTION ecircle_ecluster_distance_proc(ecircle, ecluster) 5.809 - RETURNS float8 5.810 - LANGUAGE C IMMUTABLE STRICT 5.811 - AS '$libdir/latlon-v0007', 'pgl_ecircle_ecluster_distance'; 5.812 - 5.813 -CREATE FUNCTION ecluster_distance_proc(ecluster, ecluster) 5.814 - RETURNS float8 5.815 - LANGUAGE C IMMUTABLE STRICT 5.816 - AS '$libdir/latlon-v0007', 'pgl_ecluster_distance'; 5.817 - 5.818 -CREATE OPERATOR && ( 5.819 - leftarg = epoint, 5.820 - rightarg = ebox, 5.821 - procedure = epoint_ebox_overlap_proc, 5.822 - commutator = &&, 5.823 - restrict = areasel, 5.824 - join = areajoinsel 5.825 -); 5.826 - 5.827 -CREATE FUNCTION epoint_ebox_overlap_commutator(ebox, epoint) 5.828 - RETURNS boolean 5.829 - LANGUAGE sql IMMUTABLE AS 'SELECT $2 && $1'; 5.830 - 5.831 -CREATE OPERATOR && ( 5.832 - leftarg = ebox, 5.833 - rightarg = epoint, 5.834 - procedure = epoint_ebox_overlap_commutator, 5.835 - commutator = &&, 5.836 - restrict = areasel, 5.837 - join = areajoinsel 5.838 -); 5.839 - 5.840 -CREATE OPERATOR && ( 5.841 - leftarg = epoint, 5.842 - rightarg = ecircle, 5.843 - procedure = epoint_ecircle_overlap_proc, 5.844 - commutator = &&, 5.845 - restrict = areasel, 5.846 - join = areajoinsel 5.847 -); 5.848 - 5.849 -CREATE FUNCTION epoint_ecircle_overlap_commutator(ecircle, epoint) 5.850 - RETURNS boolean 5.851 - LANGUAGE sql IMMUTABLE AS 'SELECT $2 && $1'; 5.852 - 5.853 -CREATE OPERATOR && ( 5.854 - leftarg = ecircle, 5.855 - rightarg = epoint, 5.856 - procedure = epoint_ecircle_overlap_commutator, 5.857 - commutator = &&, 5.858 - restrict = areasel, 5.859 - join = areajoinsel 5.860 -); 5.861 - 5.862 -CREATE OPERATOR && ( 5.863 - leftarg = epoint, 5.864 - rightarg = ecluster, 5.865 - procedure = epoint_ecluster_overlap_proc, 5.866 - commutator = &&, 5.867 - restrict = areasel, 5.868 - join = areajoinsel 5.869 -); 5.870 - 5.871 -CREATE FUNCTION epoint_ecluster_overlap_commutator(ecluster, epoint) 5.872 - RETURNS boolean 5.873 - LANGUAGE sql IMMUTABLE AS 'SELECT $2 && $1'; 5.874 - 5.875 -CREATE OPERATOR && ( 5.876 - leftarg = ecluster, 5.877 - rightarg = epoint, 5.878 - procedure = epoint_ecluster_overlap_commutator, 5.879 - commutator = &&, 5.880 - restrict = areasel, 5.881 - join = areajoinsel 5.882 -); 5.883 - 5.884 -CREATE OPERATOR && ( 5.885 - leftarg = ebox, 5.886 - rightarg = ebox, 5.887 - procedure = ebox_overlap_proc, 5.888 - commutator = &&, 5.889 - restrict = areasel, 5.890 - join = areajoinsel 5.891 -); 5.892 - 5.893 -CREATE OPERATOR && ( 5.894 - leftarg = ecircle, 5.895 - rightarg = ecircle, 5.896 - procedure = ecircle_overlap_proc, 5.897 - commutator = &&, 5.898 - restrict = areasel, 5.899 - join = areajoinsel 5.900 -); 5.901 - 5.902 -CREATE OPERATOR && ( 5.903 - leftarg = ecircle, 5.904 - rightarg = ecluster, 5.905 - procedure = ecircle_ecluster_overlap_proc, 5.906 - commutator = &&, 5.907 - restrict = areasel, 5.908 - join = areajoinsel 5.909 -); 5.910 - 5.911 -CREATE FUNCTION ecircle_ecluster_overlap_commutator(ecluster, ecircle) 5.912 - RETURNS boolean 5.913 - LANGUAGE sql IMMUTABLE AS 'SELECT $2 && $1'; 5.914 - 5.915 -CREATE OPERATOR && ( 5.916 - leftarg = ecluster, 5.917 - rightarg = ecircle, 5.918 - procedure = ecircle_ecluster_overlap_commutator, 5.919 - commutator = &&, 5.920 - restrict = areasel, 5.921 - join = areajoinsel 5.922 -); 5.923 - 5.924 -CREATE OPERATOR && ( 5.925 - leftarg = ecluster, 5.926 - rightarg = ecluster, 5.927 - procedure = ecluster_overlap_proc, 5.928 - commutator = &&, 5.929 - restrict = areasel, 5.930 - join = areajoinsel 5.931 -); 5.932 - 5.933 -CREATE FUNCTION ebox_ecircle_overlap_castwrap(ebox, ecircle) 5.934 - RETURNS boolean 5.935 - LANGUAGE sql IMMUTABLE AS 'SELECT $1::ecluster && $2'; 5.936 - 5.937 -CREATE OPERATOR && ( 5.938 - leftarg = ebox, 5.939 - rightarg = ecircle, 5.940 - procedure = ebox_ecircle_overlap_castwrap, 5.941 - commutator = &&, 5.942 - restrict = areasel, 5.943 - join = areajoinsel 5.944 -); 5.945 - 5.946 -CREATE FUNCTION ebox_ecircle_overlap_castwrap(ecircle, ebox) 5.947 - RETURNS boolean 5.948 - LANGUAGE sql IMMUTABLE AS 'SELECT $1 && $2::ecluster'; 5.949 - 5.950 -CREATE OPERATOR && ( 5.951 - leftarg = ecircle, 5.952 - rightarg = ebox, 5.953 - procedure = ebox_ecircle_overlap_castwrap, 5.954 - commutator = &&, 5.955 - restrict = areasel, 5.956 - join = areajoinsel 5.957 -); 5.958 - 5.959 -CREATE FUNCTION ebox_ecluster_overlap_castwrap(ebox, ecluster) 5.960 - RETURNS boolean 5.961 - LANGUAGE sql IMMUTABLE AS 'SELECT $1::ecluster && $2'; 5.962 - 5.963 -CREATE OPERATOR && ( 5.964 - leftarg = ebox, 5.965 - rightarg = ecluster, 5.966 - procedure = ebox_ecluster_overlap_castwrap, 5.967 - commutator = &&, 5.968 - restrict = areasel, 5.969 - join = areajoinsel 5.970 -); 5.971 - 5.972 -CREATE FUNCTION ebox_ecluster_overlap_castwrap(ecluster, ebox) 5.973 - RETURNS boolean 5.974 - LANGUAGE sql IMMUTABLE AS 'SELECT $1 && $2::ecluster'; 5.975 - 5.976 -CREATE OPERATOR && ( 5.977 - leftarg = ecluster, 5.978 - rightarg = ebox, 5.979 - procedure = ebox_ecluster_overlap_castwrap, 5.980 - commutator = &&, 5.981 - restrict = areasel, 5.982 - join = areajoinsel 5.983 -); 5.984 - 5.985 -CREATE OPERATOR &&+ ( 5.986 - leftarg = epoint, 5.987 - rightarg = ecluster, 5.988 - procedure = epoint_ecluster_may_overlap_proc, 5.989 - commutator = &&+, 5.990 - restrict = areasel, 5.991 - join = areajoinsel 5.992 -); 5.993 - 5.994 -CREATE FUNCTION epoint_ecluster_may_overlap_commutator(ecluster, epoint) 5.995 - RETURNS boolean 5.996 - LANGUAGE sql IMMUTABLE AS 'SELECT $2 &&+ $1'; 5.997 - 5.998 -CREATE OPERATOR &&+ ( 5.999 - leftarg = ecluster, 5.1000 - rightarg = epoint, 5.1001 - procedure = epoint_ecluster_may_overlap_commutator, 5.1002 - commutator = &&+, 5.1003 - restrict = areasel, 5.1004 - join = areajoinsel 5.1005 -); 5.1006 - 5.1007 -CREATE OPERATOR &&+ ( 5.1008 - leftarg = ebox, 5.1009 - rightarg = ecircle, 5.1010 - procedure = ebox_ecircle_may_overlap_proc, 5.1011 - commutator = &&+, 5.1012 - restrict = areasel, 5.1013 - join = areajoinsel 5.1014 -); 5.1015 - 5.1016 -CREATE FUNCTION ebox_ecircle_may_overlap_commutator(ecircle, ebox) 5.1017 - RETURNS boolean 5.1018 - LANGUAGE sql IMMUTABLE AS 'SELECT $2 &&+ $1'; 5.1019 - 5.1020 -CREATE OPERATOR &&+ ( 5.1021 - leftarg = ecircle, 5.1022 - rightarg = ebox, 5.1023 - procedure = ebox_ecircle_may_overlap_commutator, 5.1024 - commutator = &&+, 5.1025 - restrict = areasel, 5.1026 - join = areajoinsel 5.1027 -); 5.1028 - 5.1029 -CREATE OPERATOR &&+ ( 5.1030 - leftarg = ebox, 5.1031 - rightarg = ecluster, 5.1032 - procedure = ebox_ecluster_may_overlap_proc, 5.1033 - commutator = &&+, 5.1034 - restrict = areasel, 5.1035 - join = areajoinsel 5.1036 -); 5.1037 - 5.1038 -CREATE FUNCTION ebox_ecluster_may_overlap_commutator(ecluster, ebox) 5.1039 - RETURNS boolean 5.1040 - LANGUAGE sql IMMUTABLE AS 'SELECT $2 &&+ $1'; 5.1041 - 5.1042 -CREATE OPERATOR &&+ ( 5.1043 - leftarg = ecluster, 5.1044 - rightarg = ebox, 5.1045 - procedure = ebox_ecluster_may_overlap_commutator, 5.1046 - commutator = &&+, 5.1047 - restrict = areasel, 5.1048 - join = areajoinsel 5.1049 -); 5.1050 - 5.1051 -CREATE OPERATOR &&+ ( 5.1052 - leftarg = ecircle, 5.1053 - rightarg = ecluster, 5.1054 - procedure = ecircle_ecluster_may_overlap_proc, 5.1055 - commutator = &&+, 5.1056 - restrict = areasel, 5.1057 - join = areajoinsel 5.1058 -); 5.1059 - 5.1060 -CREATE FUNCTION ecircle_ecluster_may_overlap_commutator(ecluster, ecircle) 5.1061 - RETURNS boolean 5.1062 - LANGUAGE sql IMMUTABLE AS 'SELECT $2 &&+ $1'; 5.1063 - 5.1064 -CREATE OPERATOR &&+ ( 5.1065 - leftarg = ecluster, 5.1066 - rightarg = ecircle, 5.1067 - procedure = ecircle_ecluster_may_overlap_commutator, 5.1068 - commutator = &&+, 5.1069 - restrict = areasel, 5.1070 - join = areajoinsel 5.1071 -); 5.1072 - 5.1073 -CREATE OPERATOR &&+ ( 5.1074 - leftarg = ecluster, 5.1075 - rightarg = ecluster, 5.1076 - procedure = ecluster_may_overlap_proc, 5.1077 - commutator = &&+, 5.1078 - restrict = areasel, 5.1079 - join = areajoinsel 5.1080 -); 5.1081 - 5.1082 -CREATE OPERATOR @> ( 5.1083 - leftarg = ebox, 5.1084 - rightarg = epoint, 5.1085 - procedure = epoint_ebox_overlap_commutator, 5.1086 - commutator = <@, 5.1087 - restrict = areasel, 5.1088 - join = areajoinsel 5.1089 -); 5.1090 - 5.1091 -CREATE OPERATOR <@ ( 5.1092 - leftarg = epoint, 5.1093 - rightarg = ebox, 5.1094 - procedure = epoint_ebox_overlap_proc, 5.1095 - commutator = @>, 5.1096 - restrict = areasel, 5.1097 - join = areajoinsel 5.1098 -); 5.1099 - 5.1100 -CREATE OPERATOR @> ( 5.1101 - leftarg = ecluster, 5.1102 - rightarg = epoint, 5.1103 - procedure = epoint_ecluster_overlap_commutator, 5.1104 - commutator = <@, 5.1105 - restrict = areasel, 5.1106 - join = areajoinsel 5.1107 -); 5.1108 - 5.1109 -CREATE OPERATOR <@ ( 5.1110 - leftarg = epoint, 5.1111 - rightarg = ecluster, 5.1112 - procedure = epoint_ecluster_overlap_proc, 5.1113 - commutator = <@, 5.1114 - restrict = areasel, 5.1115 - join = areajoinsel 5.1116 -); 5.1117 - 5.1118 -CREATE OPERATOR @> ( 5.1119 - leftarg = ecluster, 5.1120 - rightarg = ecluster, 5.1121 - procedure = ecluster_contains_proc, 5.1122 - commutator = <@, 5.1123 - restrict = areasel, 5.1124 - join = areajoinsel 5.1125 -); 5.1126 - 5.1127 -CREATE FUNCTION ecluster_contains_commutator(ecluster, ecluster) 5.1128 - RETURNS boolean 5.1129 - LANGUAGE sql IMMUTABLE AS 'SELECT $2 @> $1'; 5.1130 - 5.1131 -CREATE OPERATOR <@ ( 5.1132 - leftarg = ecluster, 5.1133 - rightarg = ecluster, 5.1134 - procedure = ecluster_contains_commutator, 5.1135 - commutator = @>, 5.1136 - restrict = areasel, 5.1137 - join = areajoinsel 5.1138 -); 5.1139 - 5.1140 -CREATE FUNCTION ebox_contains_castwrap(ebox, ebox) 5.1141 - RETURNS boolean 5.1142 - LANGUAGE sql IMMUTABLE AS 'SELECT $1::ecluster @> $2::ecluster'; 5.1143 - 5.1144 -CREATE OPERATOR @> ( 5.1145 - leftarg = ebox, 5.1146 - rightarg = ebox, 5.1147 - procedure = ebox_contains_castwrap, 5.1148 - commutator = <@, 5.1149 - restrict = areasel, 5.1150 - join = areajoinsel 5.1151 -); 5.1152 - 5.1153 -CREATE FUNCTION ebox_contains_swapped_castwrap(ebox, ebox) 5.1154 - RETURNS boolean 5.1155 - LANGUAGE sql IMMUTABLE AS 'SELECT $2::ecluster @> $1::ecluster'; 5.1156 - 5.1157 -CREATE OPERATOR <@ ( 5.1158 - leftarg = ebox, 5.1159 - rightarg = ebox, 5.1160 - procedure = ebox_contains_swapped_castwrap, 5.1161 - commutator = @>, 5.1162 - restrict = areasel, 5.1163 - join = areajoinsel 5.1164 -); 5.1165 - 5.1166 -CREATE FUNCTION ebox_ecluster_contains_castwrap(ebox, ecluster) 5.1167 - RETURNS boolean 5.1168 - LANGUAGE sql IMMUTABLE AS 'SELECT $1::ecluster @> $2'; 5.1169 - 5.1170 -CREATE OPERATOR @> ( 5.1171 - leftarg = ebox, 5.1172 - rightarg = ecluster, 5.1173 - procedure = ebox_ecluster_contains_castwrap, 5.1174 - commutator = <@, 5.1175 - restrict = areasel, 5.1176 - join = areajoinsel 5.1177 -); 5.1178 - 5.1179 -CREATE FUNCTION ebox_ecluster_contains_castwrap(ecluster, ebox) 5.1180 - RETURNS boolean 5.1181 - LANGUAGE sql IMMUTABLE AS 'SELECT $2::ecluster @> $1'; 5.1182 - 5.1183 -CREATE OPERATOR <@ ( 5.1184 - leftarg = ecluster, 5.1185 - rightarg = ebox, 5.1186 - procedure = ebox_ecluster_contains_castwrap, 5.1187 - commutator = @>, 5.1188 - restrict = areasel, 5.1189 - join = areajoinsel 5.1190 -); 5.1191 - 5.1192 -CREATE FUNCTION ecluster_ebox_contains_castwrap(ecluster, ebox) 5.1193 - RETURNS boolean 5.1194 - LANGUAGE sql IMMUTABLE AS 'SELECT $1 @> $2::ecluster'; 5.1195 - 5.1196 -CREATE OPERATOR @> ( 5.1197 - leftarg = ecluster, 5.1198 - rightarg = ebox, 5.1199 - procedure = ecluster_ebox_contains_castwrap, 5.1200 - commutator = <@, 5.1201 - restrict = areasel, 5.1202 - join = areajoinsel 5.1203 -); 5.1204 - 5.1205 -CREATE FUNCTION ecluster_ebox_contains_castwrap(ebox, ecluster) 5.1206 - RETURNS boolean 5.1207 - LANGUAGE sql IMMUTABLE AS 'SELECT $2 @> $1::ecluster'; 5.1208 - 5.1209 -CREATE OPERATOR <@ ( 5.1210 - leftarg = ebox, 5.1211 - rightarg = ecluster, 5.1212 - procedure = ecluster_ebox_contains_castwrap, 5.1213 - commutator = @>, 5.1214 - restrict = areasel, 5.1215 - join = areajoinsel 5.1216 -); 5.1217 - 5.1218 -CREATE OPERATOR <-> ( 5.1219 - leftarg = epoint, 5.1220 - rightarg = epoint, 5.1221 - procedure = epoint_distance_proc, 5.1222 - commutator = <-> 5.1223 -); 5.1224 - 5.1225 -CREATE OPERATOR <-> ( 5.1226 - leftarg = epoint, 5.1227 - rightarg = ecircle, 5.1228 - procedure = epoint_ecircle_distance_proc, 5.1229 - commutator = <-> 5.1230 -); 5.1231 - 5.1232 -CREATE FUNCTION epoint_ecircle_distance_commutator(ecircle, epoint) 5.1233 - RETURNS float8 5.1234 - LANGUAGE sql IMMUTABLE AS 'SELECT $2 <-> $1'; 5.1235 - 5.1236 -CREATE OPERATOR <-> ( 5.1237 - leftarg = ecircle, 5.1238 - rightarg = epoint, 5.1239 - procedure = epoint_ecircle_distance_commutator, 5.1240 - commutator = <-> 5.1241 -); 5.1242 - 5.1243 -CREATE OPERATOR <-> ( 5.1244 - leftarg = epoint, 5.1245 - rightarg = ecluster, 5.1246 - procedure = epoint_ecluster_distance_proc, 5.1247 - commutator = <-> 5.1248 -); 5.1249 - 5.1250 -CREATE FUNCTION epoint_ecluster_distance_commutator(ecluster, epoint) 5.1251 - RETURNS float8 5.1252 - LANGUAGE sql IMMUTABLE AS 'SELECT $2 <-> $1'; 5.1253 - 5.1254 -CREATE OPERATOR <-> ( 5.1255 - leftarg = ecluster, 5.1256 - rightarg = epoint, 5.1257 - procedure = epoint_ecluster_distance_commutator, 5.1258 - commutator = <-> 5.1259 -); 5.1260 - 5.1261 -CREATE OPERATOR <-> ( 5.1262 - leftarg = ecircle, 5.1263 - rightarg = ecircle, 5.1264 - procedure = ecircle_distance_proc, 5.1265 - commutator = <-> 5.1266 -); 5.1267 - 5.1268 -CREATE OPERATOR <-> ( 5.1269 - leftarg = ecircle, 5.1270 - rightarg = ecluster, 5.1271 - procedure = ecircle_ecluster_distance_proc, 5.1272 - commutator = <-> 5.1273 -); 5.1274 - 5.1275 -CREATE FUNCTION ecircle_ecluster_distance_commutator(ecluster, ecircle) 5.1276 - RETURNS float8 5.1277 - LANGUAGE sql IMMUTABLE AS 'SELECT $2 <-> $1'; 5.1278 - 5.1279 -CREATE OPERATOR <-> ( 5.1280 - leftarg = ecluster, 5.1281 - rightarg = ecircle, 5.1282 - procedure = ecircle_ecluster_distance_commutator, 5.1283 - commutator = <-> 5.1284 -); 5.1285 - 5.1286 -CREATE OPERATOR <-> ( 5.1287 - leftarg = ecluster, 5.1288 - rightarg = ecluster, 5.1289 - procedure = ecluster_distance_proc, 5.1290 - commutator = <-> 5.1291 -); 5.1292 - 5.1293 -CREATE FUNCTION epoint_ebox_distance_castwrap(epoint, ebox) 5.1294 - RETURNS float8 5.1295 - LANGUAGE sql IMMUTABLE AS 'SELECT $1 <-> $2::ecluster'; 5.1296 - 5.1297 -CREATE OPERATOR <-> ( 5.1298 - leftarg = epoint, 5.1299 - rightarg = ebox, 5.1300 - procedure = epoint_ebox_distance_castwrap, 5.1301 - commutator = <-> 5.1302 -); 5.1303 - 5.1304 -CREATE FUNCTION epoint_ebox_distance_castwrap(ebox, epoint) 5.1305 - RETURNS float8 5.1306 - LANGUAGE sql IMMUTABLE AS 'SELECT $1::ecluster <-> $2'; 5.1307 - 5.1308 -CREATE OPERATOR <-> ( 5.1309 - leftarg = ebox, 5.1310 - rightarg = epoint, 5.1311 - procedure = epoint_ebox_distance_castwrap, 5.1312 - commutator = <-> 5.1313 -); 5.1314 - 5.1315 -CREATE FUNCTION ebox_distance_castwrap(ebox, ebox) 5.1316 - RETURNS float8 5.1317 - LANGUAGE sql IMMUTABLE AS 'SELECT $1::ecluster <-> $2::ecluster'; 5.1318 - 5.1319 -CREATE OPERATOR <-> ( 5.1320 - leftarg = ebox, 5.1321 - rightarg = ebox, 5.1322 - procedure = ebox_distance_castwrap, 5.1323 - commutator = <-> 5.1324 -); 5.1325 - 5.1326 -CREATE FUNCTION ebox_ecircle_distance_castwrap(ebox, ecircle) 5.1327 - RETURNS float8 5.1328 - LANGUAGE sql IMMUTABLE AS 'SELECT $1::ecluster <-> $2'; 5.1329 - 5.1330 -CREATE OPERATOR <-> ( 5.1331 - leftarg = ebox, 5.1332 - rightarg = ecircle, 5.1333 - procedure = ebox_ecircle_distance_castwrap, 5.1334 - commutator = <-> 5.1335 -); 5.1336 - 5.1337 -CREATE FUNCTION ebox_ecircle_distance_castwrap(ecircle, ebox) 5.1338 - RETURNS float8 5.1339 - LANGUAGE sql IMMUTABLE AS 'SELECT $1 <-> $2::ecluster'; 5.1340 - 5.1341 -CREATE OPERATOR <-> ( 5.1342 - leftarg = ecircle, 5.1343 - rightarg = ebox, 5.1344 - procedure = ebox_ecircle_distance_castwrap, 5.1345 - commutator = <-> 5.1346 -); 5.1347 - 5.1348 -CREATE FUNCTION ebox_ecluster_distance_castwrap(ebox, ecluster) 5.1349 - RETURNS float8 5.1350 - LANGUAGE sql IMMUTABLE AS 'SELECT $1::ecluster <-> $2'; 5.1351 - 5.1352 -CREATE OPERATOR <-> ( 5.1353 - leftarg = ebox, 5.1354 - rightarg = ecluster, 5.1355 - procedure = ebox_ecluster_distance_castwrap, 5.1356 - commutator = <-> 5.1357 -); 5.1358 - 5.1359 -CREATE FUNCTION ebox_ecluster_distance_castwrap(ecluster, ebox) 5.1360 - RETURNS float8 5.1361 - LANGUAGE sql IMMUTABLE AS 'SELECT $1 <-> $2::ecluster'; 5.1362 - 5.1363 -CREATE OPERATOR <-> ( 5.1364 - leftarg = ecluster, 5.1365 - rightarg = ebox, 5.1366 - procedure = ebox_ecluster_distance_castwrap, 5.1367 - commutator = <-> 5.1368 -); 5.1369 - 5.1370 - 5.1371 ----------------- 5.1372 --- GiST index -- 5.1373 ----------------- 5.1374 - 5.1375 -CREATE FUNCTION pgl_gist_consistent(internal, internal, smallint, oid, internal) 5.1376 - RETURNS boolean 5.1377 - LANGUAGE C STRICT 5.1378 - AS '$libdir/latlon-v0007', 'pgl_gist_consistent'; 5.1379 - 5.1380 -CREATE FUNCTION pgl_gist_union(internal, internal) 5.1381 - RETURNS internal 5.1382 - LANGUAGE C STRICT 5.1383 - AS '$libdir/latlon-v0007', 'pgl_gist_union'; 5.1384 - 5.1385 -CREATE FUNCTION pgl_gist_compress_epoint(internal) 5.1386 - RETURNS internal 5.1387 - LANGUAGE C STRICT 5.1388 - AS '$libdir/latlon-v0007', 'pgl_gist_compress_epoint'; 5.1389 - 5.1390 -CREATE FUNCTION pgl_gist_compress_ecircle(internal) 5.1391 - RETURNS internal 5.1392 - LANGUAGE C STRICT 5.1393 - AS '$libdir/latlon-v0007', 'pgl_gist_compress_ecircle'; 5.1394 - 5.1395 -CREATE FUNCTION pgl_gist_compress_ecluster(internal) 5.1396 - RETURNS internal 5.1397 - LANGUAGE C STRICT 5.1398 - AS '$libdir/latlon-v0007', 'pgl_gist_compress_ecluster'; 5.1399 - 5.1400 -CREATE FUNCTION pgl_gist_decompress(internal) 5.1401 - RETURNS internal 5.1402 - LANGUAGE C STRICT 5.1403 - AS '$libdir/latlon-v0007', 'pgl_gist_decompress'; 5.1404 - 5.1405 -CREATE FUNCTION pgl_gist_penalty(internal, internal, internal) 5.1406 - RETURNS internal 5.1407 - LANGUAGE C STRICT 5.1408 - AS '$libdir/latlon-v0007', 'pgl_gist_penalty'; 5.1409 - 5.1410 -CREATE FUNCTION pgl_gist_picksplit(internal, internal) 5.1411 - RETURNS internal 5.1412 - LANGUAGE C STRICT 5.1413 - AS '$libdir/latlon-v0007', 'pgl_gist_picksplit'; 5.1414 - 5.1415 -CREATE FUNCTION pgl_gist_same(internal, internal, internal) 5.1416 - RETURNS internal 5.1417 - LANGUAGE C STRICT 5.1418 - AS '$libdir/latlon-v0007', 'pgl_gist_same'; 5.1419 - 5.1420 -CREATE FUNCTION pgl_gist_distance(internal, internal, smallint, oid) 5.1421 - RETURNS internal 5.1422 - LANGUAGE C STRICT 5.1423 - AS '$libdir/latlon-v0007', 'pgl_gist_distance'; 5.1424 - 5.1425 -CREATE OPERATOR CLASS epoint_ops 5.1426 - DEFAULT FOR TYPE epoint USING gist AS 5.1427 - OPERATOR 11 = , 5.1428 - OPERATOR 22 && (epoint, ebox), 5.1429 - OPERATOR 222 <@ (epoint, ebox), 5.1430 - OPERATOR 23 && (epoint, ecircle), 5.1431 - OPERATOR 24 && (epoint, ecluster), 5.1432 - OPERATOR 124 &&+ (epoint, ecluster), 5.1433 - OPERATOR 224 <@ (epoint, ecluster), 5.1434 - OPERATOR 31 <-> (epoint, epoint) FOR ORDER BY float_ops, 5.1435 - OPERATOR 32 <-> (epoint, ebox) FOR ORDER BY float_ops, 5.1436 - OPERATOR 33 <-> (epoint, ecircle) FOR ORDER BY float_ops, 5.1437 - OPERATOR 34 <-> (epoint, ecluster) FOR ORDER BY float_ops, 5.1438 - FUNCTION 1 pgl_gist_consistent(internal, internal, smallint, oid, internal), 5.1439 - FUNCTION 2 pgl_gist_union(internal, internal), 5.1440 - FUNCTION 3 pgl_gist_compress_epoint(internal), 5.1441 - FUNCTION 4 pgl_gist_decompress(internal), 5.1442 - FUNCTION 5 pgl_gist_penalty(internal, internal, internal), 5.1443 - FUNCTION 6 pgl_gist_picksplit(internal, internal), 5.1444 - FUNCTION 7 pgl_gist_same(internal, internal, internal), 5.1445 - FUNCTION 8 pgl_gist_distance(internal, internal, smallint, oid), 5.1446 - STORAGE ekey_point; 5.1447 - 5.1448 -CREATE OPERATOR CLASS ecircle_ops 5.1449 - DEFAULT FOR TYPE ecircle USING gist AS 5.1450 - OPERATOR 13 = , 5.1451 - OPERATOR 21 && (ecircle, epoint), 5.1452 - OPERATOR 22 && (ecircle, ebox), 5.1453 - OPERATOR 122 &&+ (ecircle, ebox), 5.1454 - OPERATOR 23 && (ecircle, ecircle), 5.1455 - OPERATOR 24 && (ecircle, ecluster), 5.1456 - OPERATOR 124 &&+ (ecircle, ecluster), 5.1457 - OPERATOR 31 <-> (ecircle, epoint) FOR ORDER BY float_ops, 5.1458 - OPERATOR 32 <-> (ecircle, ebox) FOR ORDER BY float_ops, 5.1459 - OPERATOR 33 <-> (ecircle, ecircle) FOR ORDER BY float_ops, 5.1460 - OPERATOR 34 <-> (ecircle, ecluster) FOR ORDER BY float_ops, 5.1461 - FUNCTION 1 pgl_gist_consistent(internal, internal, smallint, oid, internal), 5.1462 - FUNCTION 2 pgl_gist_union(internal, internal), 5.1463 - FUNCTION 3 pgl_gist_compress_ecircle(internal), 5.1464 - FUNCTION 4 pgl_gist_decompress(internal), 5.1465 - FUNCTION 5 pgl_gist_penalty(internal, internal, internal), 5.1466 - FUNCTION 6 pgl_gist_picksplit(internal, internal), 5.1467 - FUNCTION 7 pgl_gist_same(internal, internal, internal), 5.1468 - FUNCTION 8 pgl_gist_distance(internal, internal, smallint, oid), 5.1469 - STORAGE ekey_area; 5.1470 - 5.1471 -CREATE OPERATOR CLASS ecluster_ops 5.1472 - DEFAULT FOR TYPE ecluster USING gist AS 5.1473 - OPERATOR 21 && (ecluster, epoint), 5.1474 - OPERATOR 121 &&+ (ecluster, epoint), 5.1475 - OPERATOR 221 @> (ecluster, epoint), 5.1476 - OPERATOR 22 && (ecluster, ebox), 5.1477 - OPERATOR 122 &&+ (ecluster, ebox), 5.1478 - OPERATOR 222 @> (ecluster, ebox), 5.1479 - OPERATOR 322 <@ (ecluster, ebox), 5.1480 - OPERATOR 23 && (ecluster, ecircle), 5.1481 - OPERATOR 123 &&+ (ecluster, ecircle), 5.1482 - OPERATOR 24 && (ecluster, ecluster), 5.1483 - OPERATOR 124 &&+ (ecluster, ecluster), 5.1484 - OPERATOR 224 @> (ecluster, ecluster), 5.1485 - OPERATOR 324 <@ (ecluster, ecluster), 5.1486 - OPERATOR 31 <-> (ecluster, epoint) FOR ORDER BY float_ops, 5.1487 - OPERATOR 32 <-> (ecluster, ebox) FOR ORDER BY float_ops, 5.1488 - OPERATOR 33 <-> (ecluster, ecircle) FOR ORDER BY float_ops, 5.1489 - OPERATOR 34 <-> (ecluster, ecluster) FOR ORDER BY float_ops, 5.1490 - FUNCTION 1 pgl_gist_consistent(internal, internal, smallint, oid, internal), 5.1491 - FUNCTION 2 pgl_gist_union(internal, internal), 5.1492 - FUNCTION 3 pgl_gist_compress_ecluster(internal), 5.1493 - FUNCTION 4 pgl_gist_decompress(internal), 5.1494 - FUNCTION 5 pgl_gist_penalty(internal, internal, internal), 5.1495 - FUNCTION 6 pgl_gist_picksplit(internal, internal), 5.1496 - FUNCTION 7 pgl_gist_same(internal, internal, internal), 5.1497 - FUNCTION 8 pgl_gist_distance(internal, internal, smallint, oid), 5.1498 - STORAGE ekey_area; 5.1499 - 5.1500 - 5.1501 ---------------------- 5.1502 --- alias functions -- 5.1503 ---------------------- 5.1504 - 5.1505 -CREATE FUNCTION distance(epoint, epoint) 5.1506 - RETURNS float8 5.1507 - LANGUAGE sql IMMUTABLE AS 'SELECT $1 <-> $2'; 5.1508 - 5.1509 -CREATE FUNCTION distance(ecluster, epoint) 5.1510 - RETURNS float8 5.1511 - LANGUAGE sql IMMUTABLE AS 'SELECT $1 <-> $2'; 5.1512 - 5.1513 -CREATE FUNCTION distance_within(epoint, epoint, float8) 5.1514 - RETURNS boolean 5.1515 - LANGUAGE sql IMMUTABLE AS 'SELECT $1 && ecircle($2, $3)'; 5.1516 - 5.1517 -CREATE FUNCTION distance_within(ecluster, epoint, float8) 5.1518 - RETURNS boolean 5.1519 - LANGUAGE sql IMMUTABLE AS 'SELECT $1 && ecircle($2, $3)'; 5.1520 - 5.1521 - 5.1522 --------------------------------- 5.1523 --- other data storage formats -- 5.1524 --------------------------------- 5.1525 - 5.1526 -CREATE FUNCTION coords_to_epoint(float8, float8, text = 'epoint_lonlat') 5.1527 - RETURNS epoint 5.1528 - LANGUAGE plpgsql IMMUTABLE STRICT AS $$ 5.1529 - DECLARE 5.1530 - "result" epoint; 5.1531 - BEGIN 5.1532 - IF $3 = 'epoint_lonlat' THEN 5.1533 - -- avoid dynamic command execution for better performance 5.1534 - RETURN epoint($2, $1); 5.1535 - END IF; 5.1536 - IF $3 = 'epoint' OR $3 = 'epoint_latlon' THEN 5.1537 - -- avoid dynamic command execution for better performance 5.1538 - RETURN epoint($1, $2); 5.1539 - END IF; 5.1540 - EXECUTE 'SELECT ' || $3 || '($1, $2)' INTO STRICT "result" USING $1, $2; 5.1541 - RETURN "result"; 5.1542 - END; 5.1543 - $$; 5.1544 - 5.1545 -CREATE FUNCTION GeoJSON_to_epoint(jsonb, text = 'epoint_lonlat') 5.1546 - RETURNS epoint 5.1547 - LANGUAGE sql IMMUTABLE STRICT AS $$ 5.1548 - SELECT CASE 5.1549 - WHEN $1->>'type' = 'Point' THEN 5.1550 - coords_to_epoint( 5.1551 - ($1->'coordinates'->>1)::float8, 5.1552 - ($1->'coordinates'->>0)::float8, 5.1553 - $2 5.1554 - ) 5.1555 - WHEN $1->>'type' = 'Feature' THEN 5.1556 - GeoJSON_to_epoint($1->'geometry', $2) 5.1557 - ELSE 5.1558 - NULL 5.1559 - END 5.1560 - $$; 5.1561 - 5.1562 -CREATE FUNCTION GeoJSON_to_ecluster(jsonb, text = 'epoint_lonlat') 5.1563 - RETURNS ecluster 5.1564 - LANGUAGE sql IMMUTABLE STRICT AS $$ 5.1565 - SELECT CASE $1->>'type' 5.1566 - WHEN 'Point' THEN 5.1567 - coords_to_epoint( 5.1568 - ($1->'coordinates'->>1)::float8, 5.1569 - ($1->'coordinates'->>0)::float8, 5.1570 - $2 5.1571 - )::ecluster 5.1572 - WHEN 'MultiPoint' THEN 5.1573 - ( SELECT ecluster_create_multipoint(array_agg( 5.1574 - coords_to_epoint( 5.1575 - ("coord"->>1)::float8, 5.1576 - ("coord"->>0)::float8, 5.1577 - $2 5.1578 - ) 5.1579 - )) 5.1580 - FROM jsonb_array_elements($1->'coordinates') AS "coord" 5.1581 - ) 5.1582 - WHEN 'LineString' THEN 5.1583 - ( SELECT ecluster_create_path(array_agg( 5.1584 - coords_to_epoint( 5.1585 - ("coord"->>1)::float8, 5.1586 - ("coord"->>0)::float8, 5.1587 - $2 5.1588 - ) 5.1589 - )) 5.1590 - FROM jsonb_array_elements($1->'coordinates') AS "coord" 5.1591 - ) 5.1592 - WHEN 'MultiLineString' THEN 5.1593 - ( SELECT ecluster_concat(array_agg( 5.1594 - ( SELECT ecluster_create_path(array_agg( 5.1595 - coords_to_epoint( 5.1596 - ("coord"->>1)::float8, 5.1597 - ("coord"->>0)::float8, 5.1598 - $2 5.1599 - ) 5.1600 - )) 5.1601 - FROM jsonb_array_elements("coord_array") AS "coord" 5.1602 - ) 5.1603 - )) 5.1604 - FROM jsonb_array_elements($1->'coordinates') AS "coord_array" 5.1605 - ) 5.1606 - WHEN 'Polygon' THEN 5.1607 - ( SELECT ecluster_concat(array_agg( 5.1608 - ( SELECT ecluster_create_polygon(array_agg( 5.1609 - coords_to_epoint( 5.1610 - ("coord"->>1)::float8, 5.1611 - ("coord"->>0)::float8, 5.1612 - $2 5.1613 - ) 5.1614 - )) 5.1615 - FROM jsonb_array_elements("coord_array") AS "coord" 5.1616 - ) 5.1617 - )) 5.1618 - FROM jsonb_array_elements($1->'coordinates') AS "coord_array" 5.1619 - ) 5.1620 - WHEN 'MultiPolygon' THEN 5.1621 - ( SELECT ecluster_concat(array_agg( 5.1622 - ( SELECT ecluster_concat(array_agg( 5.1623 - ( SELECT ecluster_create_polygon(array_agg( 5.1624 - coords_to_epoint( 5.1625 - ("coord"->>1)::float8, 5.1626 - ("coord"->>0)::float8, 5.1627 - $2 5.1628 - ) 5.1629 - )) 5.1630 - FROM jsonb_array_elements("coord_array") AS "coord" 5.1631 - ) 5.1632 - )) 5.1633 - FROM jsonb_array_elements("coord_array_array") AS "coord_array" 5.1634 - ) 5.1635 - )) 5.1636 - FROM jsonb_array_elements($1->'coordinates') AS "coord_array_array" 5.1637 - ) 5.1638 - WHEN 'Feature' THEN 5.1639 - GeoJSON_to_ecluster($1->'geometry', $2) 5.1640 - WHEN 'FeatureCollection' THEN 5.1641 - ( SELECT ecluster_concat(array_agg( 5.1642 - GeoJSON_to_ecluster("feature", $2) 5.1643 - )) 5.1644 - FROM jsonb_array_elements($1->'features') AS "feature" 5.1645 - ) 5.1646 - ELSE 5.1647 - NULL 5.1648 - END 5.1649 - $$; 5.1650 -