pgLatLon
diff latlon--0.2--0.3.sql @ 12:b4ec52e7e888
Add update script for updating from version 0.2 to 0.3
author | jbe |
---|---|
date | Fri Sep 02 14:27:31 2016 +0200 (2016-09-02) |
parents | |
children |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/latlon--0.2--0.3.sql Fri Sep 02 14:27:31 2016 +0200 1.3 @@ -0,0 +1,575 @@ 1.4 + 1.5 +CREATE OR REPLACE FUNCTION ekey_point_in_dummy(cstring) 1.6 + RETURNS ekey_point 1.7 + LANGUAGE C IMMUTABLE STRICT 1.8 + AS '$libdir/latlon-v0003', 'pgl_notimpl'; 1.9 + 1.10 +CREATE OR REPLACE FUNCTION ekey_point_out_dummy(ekey_point) 1.11 + RETURNS cstring 1.12 + LANGUAGE C IMMUTABLE STRICT 1.13 + AS '$libdir/latlon-v0003', 'pgl_notimpl'; 1.14 + 1.15 +CREATE OR REPLACE FUNCTION ekey_area_in_dummy(cstring) 1.16 + RETURNS ekey_area 1.17 + LANGUAGE C IMMUTABLE STRICT 1.18 + AS '$libdir/latlon-v0003', 'pgl_notimpl'; 1.19 + 1.20 +CREATE OR REPLACE FUNCTION ekey_area_out_dummy(ekey_area) 1.21 + RETURNS cstring 1.22 + LANGUAGE C IMMUTABLE STRICT 1.23 + AS '$libdir/latlon-v0003', 'pgl_notimpl'; 1.24 + 1.25 +CREATE OR REPLACE FUNCTION epoint_in(cstring) 1.26 + RETURNS epoint 1.27 + LANGUAGE C IMMUTABLE STRICT 1.28 + AS '$libdir/latlon-v0003', 'pgl_epoint_in'; 1.29 + 1.30 +CREATE OR REPLACE FUNCTION ebox_in(cstring) 1.31 + RETURNS ebox 1.32 + LANGUAGE C IMMUTABLE STRICT 1.33 + AS '$libdir/latlon-v0003', 'pgl_ebox_in'; 1.34 + 1.35 +CREATE OR REPLACE FUNCTION ecircle_in(cstring) 1.36 + RETURNS ecircle 1.37 + LANGUAGE C IMMUTABLE STRICT 1.38 + AS '$libdir/latlon-v0003', 'pgl_ecircle_in'; 1.39 + 1.40 +CREATE OR REPLACE FUNCTION ecluster_in(cstring) 1.41 + RETURNS ecluster 1.42 + LANGUAGE C IMMUTABLE STRICT 1.43 + AS '$libdir/latlon-v0003', 'pgl_ecluster_in'; 1.44 + 1.45 +CREATE OR REPLACE FUNCTION epoint_out(epoint) 1.46 + RETURNS cstring 1.47 + LANGUAGE C IMMUTABLE STRICT 1.48 + AS '$libdir/latlon-v0003', 'pgl_epoint_out'; 1.49 + 1.50 +CREATE OR REPLACE FUNCTION ebox_out(ebox) 1.51 + RETURNS cstring 1.52 + LANGUAGE C IMMUTABLE STRICT 1.53 + AS '$libdir/latlon-v0003', 'pgl_ebox_out'; 1.54 + 1.55 +CREATE OR REPLACE FUNCTION ecircle_out(ecircle) 1.56 + RETURNS cstring 1.57 + LANGUAGE C IMMUTABLE STRICT 1.58 + AS '$libdir/latlon-v0003', 'pgl_ecircle_out'; 1.59 + 1.60 +CREATE OR REPLACE FUNCTION ecluster_out(ecluster) 1.61 + RETURNS cstring 1.62 + LANGUAGE C IMMUTABLE STRICT 1.63 + AS '$libdir/latlon-v0003', 'pgl_ecluster_out'; 1.64 + 1.65 +CREATE OR REPLACE FUNCTION epoint_recv(internal) 1.66 + RETURNS epoint 1.67 + LANGUAGE C IMMUTABLE STRICT 1.68 + AS '$libdir/latlon-v0003', 'pgl_epoint_recv'; 1.69 + 1.70 +CREATE OR REPLACE FUNCTION ebox_recv(internal) 1.71 + RETURNS ebox 1.72 + LANGUAGE C IMMUTABLE STRICT 1.73 + AS '$libdir/latlon-v0003', 'pgl_ebox_recv'; 1.74 + 1.75 +CREATE OR REPLACE FUNCTION ecircle_recv(internal) 1.76 + RETURNS ecircle 1.77 + LANGUAGE C IMMUTABLE STRICT 1.78 + AS '$libdir/latlon-v0003', 'pgl_ecircle_recv'; 1.79 + 1.80 +CREATE OR REPLACE FUNCTION epoint_send(epoint) 1.81 + RETURNS bytea 1.82 + LANGUAGE C IMMUTABLE STRICT 1.83 + AS '$libdir/latlon-v0003', 'pgl_epoint_send'; 1.84 + 1.85 +CREATE OR REPLACE FUNCTION ebox_send(ebox) 1.86 + RETURNS bytea 1.87 + LANGUAGE C IMMUTABLE STRICT 1.88 + AS '$libdir/latlon-v0003', 'pgl_ebox_send'; 1.89 + 1.90 +CREATE OR REPLACE FUNCTION ecircle_send(ecircle) 1.91 + RETURNS bytea 1.92 + LANGUAGE C IMMUTABLE STRICT 1.93 + AS '$libdir/latlon-v0003', 'pgl_ecircle_send'; 1.94 + 1.95 +CREATE OR REPLACE FUNCTION epoint_btree_lt(epoint, epoint) 1.96 + RETURNS boolean 1.97 + LANGUAGE C IMMUTABLE STRICT 1.98 + AS '$libdir/latlon-v0003', 'pgl_btree_epoint_lt'; 1.99 + 1.100 +CREATE OR REPLACE FUNCTION epoint_btree_le(epoint, epoint) 1.101 + RETURNS boolean 1.102 + LANGUAGE C IMMUTABLE STRICT 1.103 + AS '$libdir/latlon-v0003', 'pgl_btree_epoint_le'; 1.104 + 1.105 +CREATE OR REPLACE FUNCTION epoint_btree_eq(epoint, epoint) 1.106 + RETURNS boolean 1.107 + LANGUAGE C IMMUTABLE STRICT 1.108 + AS '$libdir/latlon-v0003', 'pgl_btree_epoint_eq'; 1.109 + 1.110 +CREATE OR REPLACE FUNCTION epoint_btree_ne(epoint, epoint) 1.111 + RETURNS boolean 1.112 + LANGUAGE C IMMUTABLE STRICT 1.113 + AS '$libdir/latlon-v0003', 'pgl_btree_epoint_ne'; 1.114 + 1.115 +CREATE OR REPLACE FUNCTION epoint_btree_ge(epoint, epoint) 1.116 + RETURNS boolean 1.117 + LANGUAGE C IMMUTABLE STRICT 1.118 + AS '$libdir/latlon-v0003', 'pgl_btree_epoint_ge'; 1.119 + 1.120 +CREATE OR REPLACE FUNCTION epoint_btree_gt(epoint, epoint) 1.121 + RETURNS boolean 1.122 + LANGUAGE C IMMUTABLE STRICT 1.123 + AS '$libdir/latlon-v0003', 'pgl_btree_epoint_gt'; 1.124 + 1.125 +CREATE OR REPLACE FUNCTION epoint_btree_cmp(epoint, epoint) 1.126 + RETURNS int4 1.127 + LANGUAGE C IMMUTABLE STRICT 1.128 + AS '$libdir/latlon-v0003', 'pgl_btree_epoint_cmp'; 1.129 + 1.130 +CREATE OR REPLACE FUNCTION ebox_btree_lt(ebox, ebox) 1.131 + RETURNS boolean 1.132 + LANGUAGE C IMMUTABLE STRICT 1.133 + AS '$libdir/latlon-v0003', 'pgl_btree_ebox_lt'; 1.134 + 1.135 +CREATE OR REPLACE FUNCTION ebox_btree_le(ebox, ebox) 1.136 + RETURNS boolean 1.137 + LANGUAGE C IMMUTABLE STRICT 1.138 + AS '$libdir/latlon-v0003', 'pgl_btree_ebox_le'; 1.139 + 1.140 +CREATE OR REPLACE FUNCTION ebox_btree_eq(ebox, ebox) 1.141 + RETURNS boolean 1.142 + LANGUAGE C IMMUTABLE STRICT 1.143 + AS '$libdir/latlon-v0003', 'pgl_btree_ebox_eq'; 1.144 + 1.145 +CREATE OR REPLACE FUNCTION ebox_btree_ne(ebox, ebox) 1.146 + RETURNS boolean 1.147 + LANGUAGE C IMMUTABLE STRICT 1.148 + AS '$libdir/latlon-v0003', 'pgl_btree_ebox_ne'; 1.149 + 1.150 +CREATE OR REPLACE FUNCTION ebox_btree_ge(ebox, ebox) 1.151 + RETURNS boolean 1.152 + LANGUAGE C IMMUTABLE STRICT 1.153 + AS '$libdir/latlon-v0003', 'pgl_btree_ebox_ge'; 1.154 + 1.155 +CREATE OR REPLACE FUNCTION ebox_btree_gt(ebox, ebox) 1.156 + RETURNS boolean 1.157 + LANGUAGE C IMMUTABLE STRICT 1.158 + AS '$libdir/latlon-v0003', 'pgl_btree_ebox_gt'; 1.159 + 1.160 +CREATE OR REPLACE FUNCTION ebox_btree_cmp(ebox, ebox) 1.161 + RETURNS int4 1.162 + LANGUAGE C IMMUTABLE STRICT 1.163 + AS '$libdir/latlon-v0003', 'pgl_btree_ebox_cmp'; 1.164 + 1.165 +CREATE OR REPLACE FUNCTION ecircle_btree_lt(ecircle, ecircle) 1.166 + RETURNS boolean 1.167 + LANGUAGE C IMMUTABLE STRICT 1.168 + AS '$libdir/latlon-v0003', 'pgl_btree_ecircle_lt'; 1.169 + 1.170 +CREATE OR REPLACE FUNCTION ecircle_btree_le(ecircle, ecircle) 1.171 + RETURNS boolean 1.172 + LANGUAGE C IMMUTABLE STRICT 1.173 + AS '$libdir/latlon-v0003', 'pgl_btree_ecircle_le'; 1.174 + 1.175 +CREATE OR REPLACE FUNCTION ecircle_btree_eq(ecircle, ecircle) 1.176 + RETURNS boolean 1.177 + LANGUAGE C IMMUTABLE STRICT 1.178 + AS '$libdir/latlon-v0003', 'pgl_btree_ecircle_eq'; 1.179 + 1.180 +CREATE OR REPLACE FUNCTION ecircle_btree_ne(ecircle, ecircle) 1.181 + RETURNS boolean 1.182 + LANGUAGE C IMMUTABLE STRICT 1.183 + AS '$libdir/latlon-v0003', 'pgl_btree_ecircle_ne'; 1.184 + 1.185 +CREATE OR REPLACE FUNCTION ecircle_btree_ge(ecircle, ecircle) 1.186 + RETURNS boolean 1.187 + LANGUAGE C IMMUTABLE STRICT 1.188 + AS '$libdir/latlon-v0003', 'pgl_btree_ecircle_ge'; 1.189 + 1.190 +CREATE OR REPLACE FUNCTION ecircle_btree_gt(ecircle, ecircle) 1.191 + RETURNS boolean 1.192 + LANGUAGE C IMMUTABLE STRICT 1.193 + AS '$libdir/latlon-v0003', 'pgl_btree_ecircle_gt'; 1.194 + 1.195 +CREATE OR REPLACE FUNCTION ecircle_btree_cmp(ecircle, ecircle) 1.196 + RETURNS int4 1.197 + LANGUAGE C IMMUTABLE STRICT 1.198 + AS '$libdir/latlon-v0003', 'pgl_btree_ecircle_cmp'; 1.199 + 1.200 +CREATE OR REPLACE FUNCTION cast_epoint_to_ebox(epoint) 1.201 + RETURNS ebox 1.202 + LANGUAGE C IMMUTABLE STRICT 1.203 + AS '$libdir/latlon-v0003', 'pgl_epoint_to_ebox'; 1.204 + 1.205 +CREATE OR REPLACE FUNCTION cast_epoint_to_ecircle(epoint) 1.206 + RETURNS ecircle 1.207 + LANGUAGE C IMMUTABLE STRICT 1.208 + AS '$libdir/latlon-v0003', 'pgl_epoint_to_ecircle'; 1.209 + 1.210 +CREATE OR REPLACE FUNCTION cast_epoint_to_ecluster(epoint) 1.211 + RETURNS ecluster 1.212 + LANGUAGE C IMMUTABLE STRICT 1.213 + AS '$libdir/latlon-v0003', 'pgl_epoint_to_ecluster'; 1.214 + 1.215 +CREATE OR REPLACE FUNCTION cast_ebox_to_ecluster(ebox) 1.216 + RETURNS ecluster 1.217 + LANGUAGE C IMMUTABLE STRICT 1.218 + AS '$libdir/latlon-v0003', 'pgl_ebox_to_ecluster'; 1.219 + 1.220 +CREATE OR REPLACE FUNCTION epoint(float8, float8) 1.221 + RETURNS epoint 1.222 + LANGUAGE C IMMUTABLE STRICT 1.223 + AS '$libdir/latlon-v0003', 'pgl_create_epoint'; 1.224 + 1.225 +CREATE OR REPLACE FUNCTION empty_ebox() 1.226 + RETURNS ebox 1.227 + LANGUAGE C IMMUTABLE STRICT 1.228 + AS '$libdir/latlon-v0003', 'pgl_create_empty_ebox'; 1.229 + 1.230 +CREATE OR REPLACE FUNCTION ebox(float8, float8, float8, float8) 1.231 + RETURNS ebox 1.232 + LANGUAGE C IMMUTABLE STRICT 1.233 + AS '$libdir/latlon-v0003', 'pgl_create_ebox'; 1.234 + 1.235 +CREATE OR REPLACE FUNCTION ebox(epoint, epoint) 1.236 + RETURNS ebox 1.237 + LANGUAGE C IMMUTABLE STRICT 1.238 + AS '$libdir/latlon-v0003', 'pgl_create_ebox_from_epoints'; 1.239 + 1.240 +CREATE OR REPLACE FUNCTION ecircle(float8, float8, float8) 1.241 + RETURNS ecircle 1.242 + LANGUAGE C IMMUTABLE STRICT 1.243 + AS '$libdir/latlon-v0003', 'pgl_create_ecircle'; 1.244 + 1.245 +CREATE OR REPLACE FUNCTION ecircle(epoint, float8) 1.246 + RETURNS ecircle 1.247 + LANGUAGE C IMMUTABLE STRICT 1.248 + AS '$libdir/latlon-v0003', 'pgl_create_ecircle_from_epoint'; 1.249 + 1.250 +CREATE OR REPLACE FUNCTION latitude(epoint) 1.251 + RETURNS float8 1.252 + LANGUAGE C IMMUTABLE STRICT 1.253 + AS '$libdir/latlon-v0003', 'pgl_epoint_lat'; 1.254 + 1.255 +CREATE OR REPLACE FUNCTION longitude(epoint) 1.256 + RETURNS float8 1.257 + LANGUAGE C IMMUTABLE STRICT 1.258 + AS '$libdir/latlon-v0003', 'pgl_epoint_lon'; 1.259 + 1.260 +CREATE OR REPLACE FUNCTION min_latitude(ebox) 1.261 + RETURNS float8 1.262 + LANGUAGE C IMMUTABLE STRICT 1.263 + AS '$libdir/latlon-v0003', 'pgl_ebox_lat_min'; 1.264 + 1.265 +CREATE OR REPLACE FUNCTION max_latitude(ebox) 1.266 + RETURNS float8 1.267 + LANGUAGE C IMMUTABLE STRICT 1.268 + AS '$libdir/latlon-v0003', 'pgl_ebox_lat_max'; 1.269 + 1.270 +CREATE OR REPLACE FUNCTION min_longitude(ebox) 1.271 + RETURNS float8 1.272 + LANGUAGE C IMMUTABLE STRICT 1.273 + AS '$libdir/latlon-v0003', 'pgl_ebox_lon_min'; 1.274 + 1.275 +CREATE OR REPLACE FUNCTION max_longitude(ebox) 1.276 + RETURNS float8 1.277 + LANGUAGE C IMMUTABLE STRICT 1.278 + AS '$libdir/latlon-v0003', 'pgl_ebox_lon_max'; 1.279 + 1.280 +CREATE OR REPLACE FUNCTION center(ecircle) 1.281 + RETURNS epoint 1.282 + LANGUAGE C IMMUTABLE STRICT 1.283 + AS '$libdir/latlon-v0003', 'pgl_ecircle_center'; 1.284 + 1.285 +CREATE OR REPLACE FUNCTION radius(ecircle) 1.286 + RETURNS float8 1.287 + LANGUAGE C IMMUTABLE STRICT 1.288 + AS '$libdir/latlon-v0003', 'pgl_ecircle_radius'; 1.289 + 1.290 +CREATE OR REPLACE FUNCTION epoint_ebox_overlap_proc(epoint, ebox) 1.291 + RETURNS boolean 1.292 + LANGUAGE C IMMUTABLE STRICT 1.293 + AS '$libdir/latlon-v0003', 'pgl_epoint_ebox_overlap'; 1.294 + 1.295 +CREATE OR REPLACE FUNCTION epoint_ecircle_overlap_proc(epoint, ecircle) 1.296 + RETURNS boolean 1.297 + LANGUAGE C IMMUTABLE STRICT 1.298 + AS '$libdir/latlon-v0003', 'pgl_epoint_ecircle_overlap'; 1.299 + 1.300 +CREATE OR REPLACE FUNCTION epoint_ecluster_overlap_proc(epoint, ecluster) 1.301 + RETURNS boolean 1.302 + LANGUAGE C IMMUTABLE STRICT 1.303 + AS '$libdir/latlon-v0003', 'pgl_epoint_ecluster_overlap'; 1.304 + 1.305 +CREATE OR REPLACE FUNCTION epoint_ecluster_may_overlap_proc(epoint, ecluster) 1.306 + RETURNS boolean 1.307 + LANGUAGE C IMMUTABLE STRICT 1.308 + AS '$libdir/latlon-v0003', 'pgl_epoint_ecluster_may_overlap'; 1.309 + 1.310 +CREATE OR REPLACE FUNCTION ebox_overlap_proc(ebox, ebox) 1.311 + RETURNS boolean 1.312 + LANGUAGE C IMMUTABLE STRICT 1.313 + AS '$libdir/latlon-v0003', 'pgl_ebox_overlap'; 1.314 + 1.315 +CREATE OR REPLACE FUNCTION ebox_ecircle_may_overlap_proc(ebox, ecircle) 1.316 + RETURNS boolean 1.317 + LANGUAGE C IMMUTABLE STRICT 1.318 + AS '$libdir/latlon-v0003', 'pgl_ebox_ecircle_may_overlap'; 1.319 + 1.320 +CREATE OR REPLACE FUNCTION ebox_ecluster_may_overlap_proc(ebox, ecluster) 1.321 + RETURNS boolean 1.322 + LANGUAGE C IMMUTABLE STRICT 1.323 + AS '$libdir/latlon-v0003', 'pgl_ebox_ecluster_may_overlap'; 1.324 + 1.325 +CREATE OR REPLACE FUNCTION ecircle_overlap_proc(ecircle, ecircle) 1.326 + RETURNS boolean 1.327 + LANGUAGE C IMMUTABLE STRICT 1.328 + AS '$libdir/latlon-v0003', 'pgl_ecircle_overlap'; 1.329 + 1.330 +CREATE OR REPLACE FUNCTION ecircle_ecluster_overlap_proc(ecircle, ecluster) 1.331 + RETURNS boolean 1.332 + LANGUAGE C IMMUTABLE STRICT 1.333 + AS '$libdir/latlon-v0003', 'pgl_ecircle_ecluster_overlap'; 1.334 + 1.335 +CREATE OR REPLACE FUNCTION ecircle_ecluster_may_overlap_proc(ecircle, ecluster) 1.336 + RETURNS boolean 1.337 + LANGUAGE C IMMUTABLE STRICT 1.338 + AS '$libdir/latlon-v0003', 'pgl_ecircle_ecluster_may_overlap'; 1.339 + 1.340 +CREATE OR REPLACE FUNCTION ecluster_may_overlap_proc(ecluster, ecluster) 1.341 + RETURNS boolean 1.342 + LANGUAGE C IMMUTABLE STRICT 1.343 + AS '$libdir/latlon-v0003', 'pgl_ecluster_may_overlap'; 1.344 + 1.345 +CREATE OPERATOR &&+ ( 1.346 + leftarg = epoint, 1.347 + rightarg = ecluster, 1.348 + procedure = epoint_ecluster_may_overlap_proc, 1.349 + commutator = &&+, 1.350 + restrict = areasel, 1.351 + join = areajoinsel 1.352 +); 1.353 + 1.354 +CREATE FUNCTION epoint_ecluster_may_overlap_commutator(ecluster, epoint) 1.355 + RETURNS boolean 1.356 + LANGUAGE sql IMMUTABLE AS 'SELECT $2 &&+ $1'; 1.357 + 1.358 +CREATE OPERATOR &&+ ( 1.359 + leftarg = ecluster, 1.360 + rightarg = epoint, 1.361 + procedure = epoint_ecluster_may_overlap_commutator, 1.362 + commutator = &&+, 1.363 + restrict = areasel, 1.364 + join = areajoinsel 1.365 +); 1.366 + 1.367 +CREATE OPERATOR &&+ ( 1.368 + leftarg = ebox, 1.369 + rightarg = ecircle, 1.370 + procedure = ebox_ecircle_may_overlap_proc, 1.371 + commutator = &&+, 1.372 + restrict = areasel, 1.373 + join = areajoinsel 1.374 +); 1.375 + 1.376 +CREATE FUNCTION ebox_ecircle_may_overlap_commutator(ecircle, ebox) 1.377 + RETURNS boolean 1.378 + LANGUAGE sql IMMUTABLE AS 'SELECT $2 &&+ $1'; 1.379 + 1.380 +CREATE OPERATOR &&+ ( 1.381 + leftarg = ecircle, 1.382 + rightarg = ebox, 1.383 + procedure = ebox_ecircle_may_overlap_commutator, 1.384 + commutator = &&+, 1.385 + restrict = areasel, 1.386 + join = areajoinsel 1.387 +); 1.388 + 1.389 +CREATE OPERATOR &&+ ( 1.390 + leftarg = ebox, 1.391 + rightarg = ecluster, 1.392 + procedure = ebox_ecluster_may_overlap_proc, 1.393 + commutator = &&+, 1.394 + restrict = areasel, 1.395 + join = areajoinsel 1.396 +); 1.397 + 1.398 +CREATE FUNCTION ebox_ecluster_may_overlap_commutator(ecluster, ebox) 1.399 + RETURNS boolean 1.400 + LANGUAGE sql IMMUTABLE AS 'SELECT $2 &&+ $1'; 1.401 + 1.402 +CREATE OPERATOR &&+ ( 1.403 + leftarg = ecluster, 1.404 + rightarg = ebox, 1.405 + procedure = ebox_ecluster_may_overlap_commutator, 1.406 + commutator = &&+, 1.407 + restrict = areasel, 1.408 + join = areajoinsel 1.409 +); 1.410 + 1.411 +CREATE OPERATOR &&+ ( 1.412 + leftarg = ecircle, 1.413 + rightarg = ecluster, 1.414 + procedure = ecircle_ecluster_may_overlap_proc, 1.415 + commutator = &&+, 1.416 + restrict = areasel, 1.417 + join = areajoinsel 1.418 +); 1.419 + 1.420 +CREATE FUNCTION ecircle_ecluster_may_overlap_commutator(ecluster, ecircle) 1.421 + RETURNS boolean 1.422 + LANGUAGE sql IMMUTABLE AS 'SELECT $2 &&+ $1'; 1.423 + 1.424 +CREATE OPERATOR &&+ ( 1.425 + leftarg = ecluster, 1.426 + rightarg = ecircle, 1.427 + procedure = ecircle_ecluster_may_overlap_commutator, 1.428 + commutator = &&+, 1.429 + restrict = areasel, 1.430 + join = areajoinsel 1.431 +); 1.432 + 1.433 +CREATE OPERATOR &&+ ( 1.434 + leftarg = ecluster, 1.435 + rightarg = ecluster, 1.436 + procedure = ecluster_may_overlap_proc, 1.437 + commutator = &&+, 1.438 + restrict = areasel, 1.439 + join = areajoinsel 1.440 +); 1.441 + 1.442 +CREATE OR REPLACE FUNCTION epoint_distance_proc(epoint, epoint) 1.443 + RETURNS float8 1.444 + LANGUAGE C IMMUTABLE STRICT 1.445 + AS '$libdir/latlon-v0003', 'pgl_epoint_distance'; 1.446 + 1.447 +CREATE OR REPLACE FUNCTION epoint_ecircle_distance_proc(epoint, ecircle) 1.448 + RETURNS float8 1.449 + LANGUAGE C IMMUTABLE STRICT 1.450 + AS '$libdir/latlon-v0003', 'pgl_epoint_ecircle_distance'; 1.451 + 1.452 +CREATE OR REPLACE FUNCTION epoint_ecluster_distance_proc(epoint, ecluster) 1.453 + RETURNS float8 1.454 + LANGUAGE C IMMUTABLE STRICT 1.455 + AS '$libdir/latlon-v0003', 'pgl_epoint_ecluster_distance'; 1.456 + 1.457 +CREATE OR REPLACE FUNCTION ecircle_distance_proc(ecircle, ecircle) 1.458 + RETURNS float8 1.459 + LANGUAGE C IMMUTABLE STRICT 1.460 + AS '$libdir/latlon-v0003', 'pgl_ecircle_distance'; 1.461 + 1.462 +CREATE OR REPLACE FUNCTION ecircle_ecluster_distance_proc(ecircle, ecluster) 1.463 + RETURNS float8 1.464 + LANGUAGE C IMMUTABLE STRICT 1.465 + AS '$libdir/latlon-v0003', 'pgl_ecircle_ecluster_distance'; 1.466 + 1.467 +CREATE OR REPLACE FUNCTION pgl_gist_consistent(internal, internal, smallint, oid, internal) 1.468 + RETURNS boolean 1.469 + LANGUAGE C STRICT 1.470 + AS '$libdir/latlon-v0003', 'pgl_gist_consistent'; 1.471 + 1.472 +CREATE OR REPLACE FUNCTION pgl_gist_union(internal, internal) 1.473 + RETURNS internal 1.474 + LANGUAGE C STRICT 1.475 + AS '$libdir/latlon-v0003', 'pgl_gist_union'; 1.476 + 1.477 +CREATE OR REPLACE FUNCTION pgl_gist_compress_epoint(internal) 1.478 + RETURNS internal 1.479 + LANGUAGE C STRICT 1.480 + AS '$libdir/latlon-v0003', 'pgl_gist_compress_epoint'; 1.481 + 1.482 +CREATE OR REPLACE FUNCTION pgl_gist_compress_ecircle(internal) 1.483 + RETURNS internal 1.484 + LANGUAGE C STRICT 1.485 + AS '$libdir/latlon-v0003', 'pgl_gist_compress_ecircle'; 1.486 + 1.487 +CREATE OR REPLACE FUNCTION pgl_gist_compress_ecluster(internal) 1.488 + RETURNS internal 1.489 + LANGUAGE C STRICT 1.490 + AS '$libdir/latlon-v0003', 'pgl_gist_compress_ecluster'; 1.491 + 1.492 +CREATE OR REPLACE FUNCTION pgl_gist_decompress(internal) 1.493 + RETURNS internal 1.494 + LANGUAGE C STRICT 1.495 + AS '$libdir/latlon-v0003', 'pgl_gist_decompress'; 1.496 + 1.497 +CREATE OR REPLACE FUNCTION pgl_gist_penalty(internal, internal, internal) 1.498 + RETURNS internal 1.499 + LANGUAGE C STRICT 1.500 + AS '$libdir/latlon-v0003', 'pgl_gist_penalty'; 1.501 + 1.502 +CREATE OR REPLACE FUNCTION pgl_gist_picksplit(internal, internal) 1.503 + RETURNS internal 1.504 + LANGUAGE C STRICT 1.505 + AS '$libdir/latlon-v0003', 'pgl_gist_picksplit'; 1.506 + 1.507 +CREATE OR REPLACE FUNCTION pgl_gist_same(internal, internal, internal) 1.508 + RETURNS internal 1.509 + LANGUAGE C STRICT 1.510 + AS '$libdir/latlon-v0003', 'pgl_gist_same'; 1.511 + 1.512 +CREATE OR REPLACE FUNCTION pgl_gist_distance(internal, internal, smallint, oid) 1.513 + RETURNS internal 1.514 + LANGUAGE C STRICT 1.515 + AS '$libdir/latlon-v0003', 'pgl_gist_distance'; 1.516 + 1.517 +DROP OPERATOR CLASS epoint_ops USING gist; 1.518 +CREATE OPERATOR CLASS epoint_ops 1.519 + DEFAULT FOR TYPE epoint USING gist AS 1.520 + OPERATOR 11 = , 1.521 + OPERATOR 22 && (epoint, ebox), 1.522 + OPERATOR 23 && (epoint, ecircle), 1.523 + OPERATOR 24 && (epoint, ecluster), 1.524 + OPERATOR 124 &&+ (epoint, ecluster), 1.525 + OPERATOR 31 <-> (epoint, epoint) FOR ORDER BY float_ops, 1.526 + OPERATOR 33 <-> (epoint, ecircle) FOR ORDER BY float_ops, 1.527 + OPERATOR 34 <-> (epoint, ecluster) FOR ORDER BY float_ops, 1.528 + FUNCTION 1 pgl_gist_consistent(internal, internal, smallint, oid, internal), 1.529 + FUNCTION 2 pgl_gist_union(internal, internal), 1.530 + FUNCTION 3 pgl_gist_compress_epoint(internal), 1.531 + FUNCTION 4 pgl_gist_decompress(internal), 1.532 + FUNCTION 5 pgl_gist_penalty(internal, internal, internal), 1.533 + FUNCTION 6 pgl_gist_picksplit(internal, internal), 1.534 + FUNCTION 7 pgl_gist_same(internal, internal, internal), 1.535 + FUNCTION 8 pgl_gist_distance(internal, internal, smallint, oid), 1.536 + STORAGE ekey_point; 1.537 + 1.538 +DROP OPERATOR CLASS ecircle_ops USING gist; 1.539 +CREATE OPERATOR CLASS ecircle_ops 1.540 + DEFAULT FOR TYPE ecircle USING gist AS 1.541 + OPERATOR 13 = , 1.542 + OPERATOR 21 && (ecircle, epoint), 1.543 + OPERATOR 122 &&+ (ecircle, ebox), 1.544 + OPERATOR 23 && (ecircle, ecircle), 1.545 + OPERATOR 24 && (ecircle, ecluster), 1.546 + OPERATOR 124 &&+ (ecircle, ecluster), 1.547 + OPERATOR 31 <-> (ecircle, epoint) FOR ORDER BY float_ops, 1.548 + OPERATOR 33 <-> (ecircle, ecircle) FOR ORDER BY float_ops, 1.549 + OPERATOR 34 <-> (ecircle, ecluster) FOR ORDER BY float_ops, 1.550 + FUNCTION 1 pgl_gist_consistent(internal, internal, smallint, oid, internal), 1.551 + FUNCTION 2 pgl_gist_union(internal, internal), 1.552 + FUNCTION 3 pgl_gist_compress_ecircle(internal), 1.553 + FUNCTION 4 pgl_gist_decompress(internal), 1.554 + FUNCTION 5 pgl_gist_penalty(internal, internal, internal), 1.555 + FUNCTION 6 pgl_gist_picksplit(internal, internal), 1.556 + FUNCTION 7 pgl_gist_same(internal, internal, internal), 1.557 + FUNCTION 8 pgl_gist_distance(internal, internal, smallint, oid), 1.558 + STORAGE ekey_area; 1.559 + 1.560 +DROP OPERATOR CLASS ecluster_ops USING gist; 1.561 +CREATE OPERATOR CLASS ecluster_ops 1.562 + DEFAULT FOR TYPE ecluster USING gist AS 1.563 + OPERATOR 21 && (ecluster, epoint), 1.564 + OPERATOR 121 &&+ (ecluster, epoint), 1.565 + OPERATOR 122 &&+ (ecluster, ebox), 1.566 + OPERATOR 23 && (ecluster, ecircle), 1.567 + OPERATOR 123 &&+ (ecluster, ecircle), 1.568 + OPERATOR 124 &&+ (ecluster, ecluster), 1.569 + FUNCTION 1 pgl_gist_consistent(internal, internal, smallint, oid, internal), 1.570 + FUNCTION 2 pgl_gist_union(internal, internal), 1.571 + FUNCTION 3 pgl_gist_compress_ecluster(internal), 1.572 + FUNCTION 4 pgl_gist_decompress(internal), 1.573 + FUNCTION 5 pgl_gist_penalty(internal, internal, internal), 1.574 + FUNCTION 6 pgl_gist_picksplit(internal, internal), 1.575 + FUNCTION 7 pgl_gist_same(internal, internal, internal), 1.576 + FUNCTION 8 pgl_gist_distance(internal, internal, smallint, oid), 1.577 + STORAGE ekey_area; 1.578 +