pgLatLon
changeset 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 | 7c1c76e7d341 |
children | 4489b4d7d9c8 |
files | GNUmakefile latlon--0.2--0.3.sql |
line diff
1.1 --- a/GNUmakefile Fri Sep 02 14:08:17 2016 +0200 1.2 +++ b/GNUmakefile Fri Sep 02 14:27:31 2016 +0200 1.3 @@ -1,5 +1,5 @@ 1.4 EXTENSION = latlon 1.5 -DATA = latlon--0.1--0.2.sql latlon--0.3.sql 1.6 +DATA = latlon--0.1--0.2.sql latlon--0.2--0.3.sql latlon--0.3.sql 1.7 MODULES = latlon-v0003 1.8 1.9 PG_CONFIG = pg_config
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/latlon--0.2--0.3.sql Fri Sep 02 14:27:31 2016 +0200 2.3 @@ -0,0 +1,575 @@ 2.4 + 2.5 +CREATE OR REPLACE FUNCTION ekey_point_in_dummy(cstring) 2.6 + RETURNS ekey_point 2.7 + LANGUAGE C IMMUTABLE STRICT 2.8 + AS '$libdir/latlon-v0003', 'pgl_notimpl'; 2.9 + 2.10 +CREATE OR REPLACE FUNCTION ekey_point_out_dummy(ekey_point) 2.11 + RETURNS cstring 2.12 + LANGUAGE C IMMUTABLE STRICT 2.13 + AS '$libdir/latlon-v0003', 'pgl_notimpl'; 2.14 + 2.15 +CREATE OR REPLACE FUNCTION ekey_area_in_dummy(cstring) 2.16 + RETURNS ekey_area 2.17 + LANGUAGE C IMMUTABLE STRICT 2.18 + AS '$libdir/latlon-v0003', 'pgl_notimpl'; 2.19 + 2.20 +CREATE OR REPLACE FUNCTION ekey_area_out_dummy(ekey_area) 2.21 + RETURNS cstring 2.22 + LANGUAGE C IMMUTABLE STRICT 2.23 + AS '$libdir/latlon-v0003', 'pgl_notimpl'; 2.24 + 2.25 +CREATE OR REPLACE FUNCTION epoint_in(cstring) 2.26 + RETURNS epoint 2.27 + LANGUAGE C IMMUTABLE STRICT 2.28 + AS '$libdir/latlon-v0003', 'pgl_epoint_in'; 2.29 + 2.30 +CREATE OR REPLACE FUNCTION ebox_in(cstring) 2.31 + RETURNS ebox 2.32 + LANGUAGE C IMMUTABLE STRICT 2.33 + AS '$libdir/latlon-v0003', 'pgl_ebox_in'; 2.34 + 2.35 +CREATE OR REPLACE FUNCTION ecircle_in(cstring) 2.36 + RETURNS ecircle 2.37 + LANGUAGE C IMMUTABLE STRICT 2.38 + AS '$libdir/latlon-v0003', 'pgl_ecircle_in'; 2.39 + 2.40 +CREATE OR REPLACE FUNCTION ecluster_in(cstring) 2.41 + RETURNS ecluster 2.42 + LANGUAGE C IMMUTABLE STRICT 2.43 + AS '$libdir/latlon-v0003', 'pgl_ecluster_in'; 2.44 + 2.45 +CREATE OR REPLACE FUNCTION epoint_out(epoint) 2.46 + RETURNS cstring 2.47 + LANGUAGE C IMMUTABLE STRICT 2.48 + AS '$libdir/latlon-v0003', 'pgl_epoint_out'; 2.49 + 2.50 +CREATE OR REPLACE FUNCTION ebox_out(ebox) 2.51 + RETURNS cstring 2.52 + LANGUAGE C IMMUTABLE STRICT 2.53 + AS '$libdir/latlon-v0003', 'pgl_ebox_out'; 2.54 + 2.55 +CREATE OR REPLACE FUNCTION ecircle_out(ecircle) 2.56 + RETURNS cstring 2.57 + LANGUAGE C IMMUTABLE STRICT 2.58 + AS '$libdir/latlon-v0003', 'pgl_ecircle_out'; 2.59 + 2.60 +CREATE OR REPLACE FUNCTION ecluster_out(ecluster) 2.61 + RETURNS cstring 2.62 + LANGUAGE C IMMUTABLE STRICT 2.63 + AS '$libdir/latlon-v0003', 'pgl_ecluster_out'; 2.64 + 2.65 +CREATE OR REPLACE FUNCTION epoint_recv(internal) 2.66 + RETURNS epoint 2.67 + LANGUAGE C IMMUTABLE STRICT 2.68 + AS '$libdir/latlon-v0003', 'pgl_epoint_recv'; 2.69 + 2.70 +CREATE OR REPLACE FUNCTION ebox_recv(internal) 2.71 + RETURNS ebox 2.72 + LANGUAGE C IMMUTABLE STRICT 2.73 + AS '$libdir/latlon-v0003', 'pgl_ebox_recv'; 2.74 + 2.75 +CREATE OR REPLACE FUNCTION ecircle_recv(internal) 2.76 + RETURNS ecircle 2.77 + LANGUAGE C IMMUTABLE STRICT 2.78 + AS '$libdir/latlon-v0003', 'pgl_ecircle_recv'; 2.79 + 2.80 +CREATE OR REPLACE FUNCTION epoint_send(epoint) 2.81 + RETURNS bytea 2.82 + LANGUAGE C IMMUTABLE STRICT 2.83 + AS '$libdir/latlon-v0003', 'pgl_epoint_send'; 2.84 + 2.85 +CREATE OR REPLACE FUNCTION ebox_send(ebox) 2.86 + RETURNS bytea 2.87 + LANGUAGE C IMMUTABLE STRICT 2.88 + AS '$libdir/latlon-v0003', 'pgl_ebox_send'; 2.89 + 2.90 +CREATE OR REPLACE FUNCTION ecircle_send(ecircle) 2.91 + RETURNS bytea 2.92 + LANGUAGE C IMMUTABLE STRICT 2.93 + AS '$libdir/latlon-v0003', 'pgl_ecircle_send'; 2.94 + 2.95 +CREATE OR REPLACE FUNCTION epoint_btree_lt(epoint, epoint) 2.96 + RETURNS boolean 2.97 + LANGUAGE C IMMUTABLE STRICT 2.98 + AS '$libdir/latlon-v0003', 'pgl_btree_epoint_lt'; 2.99 + 2.100 +CREATE OR REPLACE FUNCTION epoint_btree_le(epoint, epoint) 2.101 + RETURNS boolean 2.102 + LANGUAGE C IMMUTABLE STRICT 2.103 + AS '$libdir/latlon-v0003', 'pgl_btree_epoint_le'; 2.104 + 2.105 +CREATE OR REPLACE FUNCTION epoint_btree_eq(epoint, epoint) 2.106 + RETURNS boolean 2.107 + LANGUAGE C IMMUTABLE STRICT 2.108 + AS '$libdir/latlon-v0003', 'pgl_btree_epoint_eq'; 2.109 + 2.110 +CREATE OR REPLACE FUNCTION epoint_btree_ne(epoint, epoint) 2.111 + RETURNS boolean 2.112 + LANGUAGE C IMMUTABLE STRICT 2.113 + AS '$libdir/latlon-v0003', 'pgl_btree_epoint_ne'; 2.114 + 2.115 +CREATE OR REPLACE FUNCTION epoint_btree_ge(epoint, epoint) 2.116 + RETURNS boolean 2.117 + LANGUAGE C IMMUTABLE STRICT 2.118 + AS '$libdir/latlon-v0003', 'pgl_btree_epoint_ge'; 2.119 + 2.120 +CREATE OR REPLACE FUNCTION epoint_btree_gt(epoint, epoint) 2.121 + RETURNS boolean 2.122 + LANGUAGE C IMMUTABLE STRICT 2.123 + AS '$libdir/latlon-v0003', 'pgl_btree_epoint_gt'; 2.124 + 2.125 +CREATE OR REPLACE FUNCTION epoint_btree_cmp(epoint, epoint) 2.126 + RETURNS int4 2.127 + LANGUAGE C IMMUTABLE STRICT 2.128 + AS '$libdir/latlon-v0003', 'pgl_btree_epoint_cmp'; 2.129 + 2.130 +CREATE OR REPLACE FUNCTION ebox_btree_lt(ebox, ebox) 2.131 + RETURNS boolean 2.132 + LANGUAGE C IMMUTABLE STRICT 2.133 + AS '$libdir/latlon-v0003', 'pgl_btree_ebox_lt'; 2.134 + 2.135 +CREATE OR REPLACE FUNCTION ebox_btree_le(ebox, ebox) 2.136 + RETURNS boolean 2.137 + LANGUAGE C IMMUTABLE STRICT 2.138 + AS '$libdir/latlon-v0003', 'pgl_btree_ebox_le'; 2.139 + 2.140 +CREATE OR REPLACE FUNCTION ebox_btree_eq(ebox, ebox) 2.141 + RETURNS boolean 2.142 + LANGUAGE C IMMUTABLE STRICT 2.143 + AS '$libdir/latlon-v0003', 'pgl_btree_ebox_eq'; 2.144 + 2.145 +CREATE OR REPLACE FUNCTION ebox_btree_ne(ebox, ebox) 2.146 + RETURNS boolean 2.147 + LANGUAGE C IMMUTABLE STRICT 2.148 + AS '$libdir/latlon-v0003', 'pgl_btree_ebox_ne'; 2.149 + 2.150 +CREATE OR REPLACE FUNCTION ebox_btree_ge(ebox, ebox) 2.151 + RETURNS boolean 2.152 + LANGUAGE C IMMUTABLE STRICT 2.153 + AS '$libdir/latlon-v0003', 'pgl_btree_ebox_ge'; 2.154 + 2.155 +CREATE OR REPLACE FUNCTION ebox_btree_gt(ebox, ebox) 2.156 + RETURNS boolean 2.157 + LANGUAGE C IMMUTABLE STRICT 2.158 + AS '$libdir/latlon-v0003', 'pgl_btree_ebox_gt'; 2.159 + 2.160 +CREATE OR REPLACE FUNCTION ebox_btree_cmp(ebox, ebox) 2.161 + RETURNS int4 2.162 + LANGUAGE C IMMUTABLE STRICT 2.163 + AS '$libdir/latlon-v0003', 'pgl_btree_ebox_cmp'; 2.164 + 2.165 +CREATE OR REPLACE FUNCTION ecircle_btree_lt(ecircle, ecircle) 2.166 + RETURNS boolean 2.167 + LANGUAGE C IMMUTABLE STRICT 2.168 + AS '$libdir/latlon-v0003', 'pgl_btree_ecircle_lt'; 2.169 + 2.170 +CREATE OR REPLACE FUNCTION ecircle_btree_le(ecircle, ecircle) 2.171 + RETURNS boolean 2.172 + LANGUAGE C IMMUTABLE STRICT 2.173 + AS '$libdir/latlon-v0003', 'pgl_btree_ecircle_le'; 2.174 + 2.175 +CREATE OR REPLACE FUNCTION ecircle_btree_eq(ecircle, ecircle) 2.176 + RETURNS boolean 2.177 + LANGUAGE C IMMUTABLE STRICT 2.178 + AS '$libdir/latlon-v0003', 'pgl_btree_ecircle_eq'; 2.179 + 2.180 +CREATE OR REPLACE FUNCTION ecircle_btree_ne(ecircle, ecircle) 2.181 + RETURNS boolean 2.182 + LANGUAGE C IMMUTABLE STRICT 2.183 + AS '$libdir/latlon-v0003', 'pgl_btree_ecircle_ne'; 2.184 + 2.185 +CREATE OR REPLACE FUNCTION ecircle_btree_ge(ecircle, ecircle) 2.186 + RETURNS boolean 2.187 + LANGUAGE C IMMUTABLE STRICT 2.188 + AS '$libdir/latlon-v0003', 'pgl_btree_ecircle_ge'; 2.189 + 2.190 +CREATE OR REPLACE FUNCTION ecircle_btree_gt(ecircle, ecircle) 2.191 + RETURNS boolean 2.192 + LANGUAGE C IMMUTABLE STRICT 2.193 + AS '$libdir/latlon-v0003', 'pgl_btree_ecircle_gt'; 2.194 + 2.195 +CREATE OR REPLACE FUNCTION ecircle_btree_cmp(ecircle, ecircle) 2.196 + RETURNS int4 2.197 + LANGUAGE C IMMUTABLE STRICT 2.198 + AS '$libdir/latlon-v0003', 'pgl_btree_ecircle_cmp'; 2.199 + 2.200 +CREATE OR REPLACE FUNCTION cast_epoint_to_ebox(epoint) 2.201 + RETURNS ebox 2.202 + LANGUAGE C IMMUTABLE STRICT 2.203 + AS '$libdir/latlon-v0003', 'pgl_epoint_to_ebox'; 2.204 + 2.205 +CREATE OR REPLACE FUNCTION cast_epoint_to_ecircle(epoint) 2.206 + RETURNS ecircle 2.207 + LANGUAGE C IMMUTABLE STRICT 2.208 + AS '$libdir/latlon-v0003', 'pgl_epoint_to_ecircle'; 2.209 + 2.210 +CREATE OR REPLACE FUNCTION cast_epoint_to_ecluster(epoint) 2.211 + RETURNS ecluster 2.212 + LANGUAGE C IMMUTABLE STRICT 2.213 + AS '$libdir/latlon-v0003', 'pgl_epoint_to_ecluster'; 2.214 + 2.215 +CREATE OR REPLACE FUNCTION cast_ebox_to_ecluster(ebox) 2.216 + RETURNS ecluster 2.217 + LANGUAGE C IMMUTABLE STRICT 2.218 + AS '$libdir/latlon-v0003', 'pgl_ebox_to_ecluster'; 2.219 + 2.220 +CREATE OR REPLACE FUNCTION epoint(float8, float8) 2.221 + RETURNS epoint 2.222 + LANGUAGE C IMMUTABLE STRICT 2.223 + AS '$libdir/latlon-v0003', 'pgl_create_epoint'; 2.224 + 2.225 +CREATE OR REPLACE FUNCTION empty_ebox() 2.226 + RETURNS ebox 2.227 + LANGUAGE C IMMUTABLE STRICT 2.228 + AS '$libdir/latlon-v0003', 'pgl_create_empty_ebox'; 2.229 + 2.230 +CREATE OR REPLACE FUNCTION ebox(float8, float8, float8, float8) 2.231 + RETURNS ebox 2.232 + LANGUAGE C IMMUTABLE STRICT 2.233 + AS '$libdir/latlon-v0003', 'pgl_create_ebox'; 2.234 + 2.235 +CREATE OR REPLACE FUNCTION ebox(epoint, epoint) 2.236 + RETURNS ebox 2.237 + LANGUAGE C IMMUTABLE STRICT 2.238 + AS '$libdir/latlon-v0003', 'pgl_create_ebox_from_epoints'; 2.239 + 2.240 +CREATE OR REPLACE FUNCTION ecircle(float8, float8, float8) 2.241 + RETURNS ecircle 2.242 + LANGUAGE C IMMUTABLE STRICT 2.243 + AS '$libdir/latlon-v0003', 'pgl_create_ecircle'; 2.244 + 2.245 +CREATE OR REPLACE FUNCTION ecircle(epoint, float8) 2.246 + RETURNS ecircle 2.247 + LANGUAGE C IMMUTABLE STRICT 2.248 + AS '$libdir/latlon-v0003', 'pgl_create_ecircle_from_epoint'; 2.249 + 2.250 +CREATE OR REPLACE FUNCTION latitude(epoint) 2.251 + RETURNS float8 2.252 + LANGUAGE C IMMUTABLE STRICT 2.253 + AS '$libdir/latlon-v0003', 'pgl_epoint_lat'; 2.254 + 2.255 +CREATE OR REPLACE FUNCTION longitude(epoint) 2.256 + RETURNS float8 2.257 + LANGUAGE C IMMUTABLE STRICT 2.258 + AS '$libdir/latlon-v0003', 'pgl_epoint_lon'; 2.259 + 2.260 +CREATE OR REPLACE FUNCTION min_latitude(ebox) 2.261 + RETURNS float8 2.262 + LANGUAGE C IMMUTABLE STRICT 2.263 + AS '$libdir/latlon-v0003', 'pgl_ebox_lat_min'; 2.264 + 2.265 +CREATE OR REPLACE FUNCTION max_latitude(ebox) 2.266 + RETURNS float8 2.267 + LANGUAGE C IMMUTABLE STRICT 2.268 + AS '$libdir/latlon-v0003', 'pgl_ebox_lat_max'; 2.269 + 2.270 +CREATE OR REPLACE FUNCTION min_longitude(ebox) 2.271 + RETURNS float8 2.272 + LANGUAGE C IMMUTABLE STRICT 2.273 + AS '$libdir/latlon-v0003', 'pgl_ebox_lon_min'; 2.274 + 2.275 +CREATE OR REPLACE FUNCTION max_longitude(ebox) 2.276 + RETURNS float8 2.277 + LANGUAGE C IMMUTABLE STRICT 2.278 + AS '$libdir/latlon-v0003', 'pgl_ebox_lon_max'; 2.279 + 2.280 +CREATE OR REPLACE FUNCTION center(ecircle) 2.281 + RETURNS epoint 2.282 + LANGUAGE C IMMUTABLE STRICT 2.283 + AS '$libdir/latlon-v0003', 'pgl_ecircle_center'; 2.284 + 2.285 +CREATE OR REPLACE FUNCTION radius(ecircle) 2.286 + RETURNS float8 2.287 + LANGUAGE C IMMUTABLE STRICT 2.288 + AS '$libdir/latlon-v0003', 'pgl_ecircle_radius'; 2.289 + 2.290 +CREATE OR REPLACE FUNCTION epoint_ebox_overlap_proc(epoint, ebox) 2.291 + RETURNS boolean 2.292 + LANGUAGE C IMMUTABLE STRICT 2.293 + AS '$libdir/latlon-v0003', 'pgl_epoint_ebox_overlap'; 2.294 + 2.295 +CREATE OR REPLACE FUNCTION epoint_ecircle_overlap_proc(epoint, ecircle) 2.296 + RETURNS boolean 2.297 + LANGUAGE C IMMUTABLE STRICT 2.298 + AS '$libdir/latlon-v0003', 'pgl_epoint_ecircle_overlap'; 2.299 + 2.300 +CREATE OR REPLACE FUNCTION epoint_ecluster_overlap_proc(epoint, ecluster) 2.301 + RETURNS boolean 2.302 + LANGUAGE C IMMUTABLE STRICT 2.303 + AS '$libdir/latlon-v0003', 'pgl_epoint_ecluster_overlap'; 2.304 + 2.305 +CREATE OR REPLACE FUNCTION epoint_ecluster_may_overlap_proc(epoint, ecluster) 2.306 + RETURNS boolean 2.307 + LANGUAGE C IMMUTABLE STRICT 2.308 + AS '$libdir/latlon-v0003', 'pgl_epoint_ecluster_may_overlap'; 2.309 + 2.310 +CREATE OR REPLACE FUNCTION ebox_overlap_proc(ebox, ebox) 2.311 + RETURNS boolean 2.312 + LANGUAGE C IMMUTABLE STRICT 2.313 + AS '$libdir/latlon-v0003', 'pgl_ebox_overlap'; 2.314 + 2.315 +CREATE OR REPLACE FUNCTION ebox_ecircle_may_overlap_proc(ebox, ecircle) 2.316 + RETURNS boolean 2.317 + LANGUAGE C IMMUTABLE STRICT 2.318 + AS '$libdir/latlon-v0003', 'pgl_ebox_ecircle_may_overlap'; 2.319 + 2.320 +CREATE OR REPLACE FUNCTION ebox_ecluster_may_overlap_proc(ebox, ecluster) 2.321 + RETURNS boolean 2.322 + LANGUAGE C IMMUTABLE STRICT 2.323 + AS '$libdir/latlon-v0003', 'pgl_ebox_ecluster_may_overlap'; 2.324 + 2.325 +CREATE OR REPLACE FUNCTION ecircle_overlap_proc(ecircle, ecircle) 2.326 + RETURNS boolean 2.327 + LANGUAGE C IMMUTABLE STRICT 2.328 + AS '$libdir/latlon-v0003', 'pgl_ecircle_overlap'; 2.329 + 2.330 +CREATE OR REPLACE FUNCTION ecircle_ecluster_overlap_proc(ecircle, ecluster) 2.331 + RETURNS boolean 2.332 + LANGUAGE C IMMUTABLE STRICT 2.333 + AS '$libdir/latlon-v0003', 'pgl_ecircle_ecluster_overlap'; 2.334 + 2.335 +CREATE OR REPLACE FUNCTION ecircle_ecluster_may_overlap_proc(ecircle, ecluster) 2.336 + RETURNS boolean 2.337 + LANGUAGE C IMMUTABLE STRICT 2.338 + AS '$libdir/latlon-v0003', 'pgl_ecircle_ecluster_may_overlap'; 2.339 + 2.340 +CREATE OR REPLACE FUNCTION ecluster_may_overlap_proc(ecluster, ecluster) 2.341 + RETURNS boolean 2.342 + LANGUAGE C IMMUTABLE STRICT 2.343 + AS '$libdir/latlon-v0003', 'pgl_ecluster_may_overlap'; 2.344 + 2.345 +CREATE OPERATOR &&+ ( 2.346 + leftarg = epoint, 2.347 + rightarg = ecluster, 2.348 + procedure = epoint_ecluster_may_overlap_proc, 2.349 + commutator = &&+, 2.350 + restrict = areasel, 2.351 + join = areajoinsel 2.352 +); 2.353 + 2.354 +CREATE FUNCTION epoint_ecluster_may_overlap_commutator(ecluster, epoint) 2.355 + RETURNS boolean 2.356 + LANGUAGE sql IMMUTABLE AS 'SELECT $2 &&+ $1'; 2.357 + 2.358 +CREATE OPERATOR &&+ ( 2.359 + leftarg = ecluster, 2.360 + rightarg = epoint, 2.361 + procedure = epoint_ecluster_may_overlap_commutator, 2.362 + commutator = &&+, 2.363 + restrict = areasel, 2.364 + join = areajoinsel 2.365 +); 2.366 + 2.367 +CREATE OPERATOR &&+ ( 2.368 + leftarg = ebox, 2.369 + rightarg = ecircle, 2.370 + procedure = ebox_ecircle_may_overlap_proc, 2.371 + commutator = &&+, 2.372 + restrict = areasel, 2.373 + join = areajoinsel 2.374 +); 2.375 + 2.376 +CREATE FUNCTION ebox_ecircle_may_overlap_commutator(ecircle, ebox) 2.377 + RETURNS boolean 2.378 + LANGUAGE sql IMMUTABLE AS 'SELECT $2 &&+ $1'; 2.379 + 2.380 +CREATE OPERATOR &&+ ( 2.381 + leftarg = ecircle, 2.382 + rightarg = ebox, 2.383 + procedure = ebox_ecircle_may_overlap_commutator, 2.384 + commutator = &&+, 2.385 + restrict = areasel, 2.386 + join = areajoinsel 2.387 +); 2.388 + 2.389 +CREATE OPERATOR &&+ ( 2.390 + leftarg = ebox, 2.391 + rightarg = ecluster, 2.392 + procedure = ebox_ecluster_may_overlap_proc, 2.393 + commutator = &&+, 2.394 + restrict = areasel, 2.395 + join = areajoinsel 2.396 +); 2.397 + 2.398 +CREATE FUNCTION ebox_ecluster_may_overlap_commutator(ecluster, ebox) 2.399 + RETURNS boolean 2.400 + LANGUAGE sql IMMUTABLE AS 'SELECT $2 &&+ $1'; 2.401 + 2.402 +CREATE OPERATOR &&+ ( 2.403 + leftarg = ecluster, 2.404 + rightarg = ebox, 2.405 + procedure = ebox_ecluster_may_overlap_commutator, 2.406 + commutator = &&+, 2.407 + restrict = areasel, 2.408 + join = areajoinsel 2.409 +); 2.410 + 2.411 +CREATE OPERATOR &&+ ( 2.412 + leftarg = ecircle, 2.413 + rightarg = ecluster, 2.414 + procedure = ecircle_ecluster_may_overlap_proc, 2.415 + commutator = &&+, 2.416 + restrict = areasel, 2.417 + join = areajoinsel 2.418 +); 2.419 + 2.420 +CREATE FUNCTION ecircle_ecluster_may_overlap_commutator(ecluster, ecircle) 2.421 + RETURNS boolean 2.422 + LANGUAGE sql IMMUTABLE AS 'SELECT $2 &&+ $1'; 2.423 + 2.424 +CREATE OPERATOR &&+ ( 2.425 + leftarg = ecluster, 2.426 + rightarg = ecircle, 2.427 + procedure = ecircle_ecluster_may_overlap_commutator, 2.428 + commutator = &&+, 2.429 + restrict = areasel, 2.430 + join = areajoinsel 2.431 +); 2.432 + 2.433 +CREATE OPERATOR &&+ ( 2.434 + leftarg = ecluster, 2.435 + rightarg = ecluster, 2.436 + procedure = ecluster_may_overlap_proc, 2.437 + commutator = &&+, 2.438 + restrict = areasel, 2.439 + join = areajoinsel 2.440 +); 2.441 + 2.442 +CREATE OR REPLACE FUNCTION epoint_distance_proc(epoint, epoint) 2.443 + RETURNS float8 2.444 + LANGUAGE C IMMUTABLE STRICT 2.445 + AS '$libdir/latlon-v0003', 'pgl_epoint_distance'; 2.446 + 2.447 +CREATE OR REPLACE FUNCTION epoint_ecircle_distance_proc(epoint, ecircle) 2.448 + RETURNS float8 2.449 + LANGUAGE C IMMUTABLE STRICT 2.450 + AS '$libdir/latlon-v0003', 'pgl_epoint_ecircle_distance'; 2.451 + 2.452 +CREATE OR REPLACE FUNCTION epoint_ecluster_distance_proc(epoint, ecluster) 2.453 + RETURNS float8 2.454 + LANGUAGE C IMMUTABLE STRICT 2.455 + AS '$libdir/latlon-v0003', 'pgl_epoint_ecluster_distance'; 2.456 + 2.457 +CREATE OR REPLACE FUNCTION ecircle_distance_proc(ecircle, ecircle) 2.458 + RETURNS float8 2.459 + LANGUAGE C IMMUTABLE STRICT 2.460 + AS '$libdir/latlon-v0003', 'pgl_ecircle_distance'; 2.461 + 2.462 +CREATE OR REPLACE FUNCTION ecircle_ecluster_distance_proc(ecircle, ecluster) 2.463 + RETURNS float8 2.464 + LANGUAGE C IMMUTABLE STRICT 2.465 + AS '$libdir/latlon-v0003', 'pgl_ecircle_ecluster_distance'; 2.466 + 2.467 +CREATE OR REPLACE FUNCTION pgl_gist_consistent(internal, internal, smallint, oid, internal) 2.468 + RETURNS boolean 2.469 + LANGUAGE C STRICT 2.470 + AS '$libdir/latlon-v0003', 'pgl_gist_consistent'; 2.471 + 2.472 +CREATE OR REPLACE FUNCTION pgl_gist_union(internal, internal) 2.473 + RETURNS internal 2.474 + LANGUAGE C STRICT 2.475 + AS '$libdir/latlon-v0003', 'pgl_gist_union'; 2.476 + 2.477 +CREATE OR REPLACE FUNCTION pgl_gist_compress_epoint(internal) 2.478 + RETURNS internal 2.479 + LANGUAGE C STRICT 2.480 + AS '$libdir/latlon-v0003', 'pgl_gist_compress_epoint'; 2.481 + 2.482 +CREATE OR REPLACE FUNCTION pgl_gist_compress_ecircle(internal) 2.483 + RETURNS internal 2.484 + LANGUAGE C STRICT 2.485 + AS '$libdir/latlon-v0003', 'pgl_gist_compress_ecircle'; 2.486 + 2.487 +CREATE OR REPLACE FUNCTION pgl_gist_compress_ecluster(internal) 2.488 + RETURNS internal 2.489 + LANGUAGE C STRICT 2.490 + AS '$libdir/latlon-v0003', 'pgl_gist_compress_ecluster'; 2.491 + 2.492 +CREATE OR REPLACE FUNCTION pgl_gist_decompress(internal) 2.493 + RETURNS internal 2.494 + LANGUAGE C STRICT 2.495 + AS '$libdir/latlon-v0003', 'pgl_gist_decompress'; 2.496 + 2.497 +CREATE OR REPLACE FUNCTION pgl_gist_penalty(internal, internal, internal) 2.498 + RETURNS internal 2.499 + LANGUAGE C STRICT 2.500 + AS '$libdir/latlon-v0003', 'pgl_gist_penalty'; 2.501 + 2.502 +CREATE OR REPLACE FUNCTION pgl_gist_picksplit(internal, internal) 2.503 + RETURNS internal 2.504 + LANGUAGE C STRICT 2.505 + AS '$libdir/latlon-v0003', 'pgl_gist_picksplit'; 2.506 + 2.507 +CREATE OR REPLACE FUNCTION pgl_gist_same(internal, internal, internal) 2.508 + RETURNS internal 2.509 + LANGUAGE C STRICT 2.510 + AS '$libdir/latlon-v0003', 'pgl_gist_same'; 2.511 + 2.512 +CREATE OR REPLACE FUNCTION pgl_gist_distance(internal, internal, smallint, oid) 2.513 + RETURNS internal 2.514 + LANGUAGE C STRICT 2.515 + AS '$libdir/latlon-v0003', 'pgl_gist_distance'; 2.516 + 2.517 +DROP OPERATOR CLASS epoint_ops USING gist; 2.518 +CREATE OPERATOR CLASS epoint_ops 2.519 + DEFAULT FOR TYPE epoint USING gist AS 2.520 + OPERATOR 11 = , 2.521 + OPERATOR 22 && (epoint, ebox), 2.522 + OPERATOR 23 && (epoint, ecircle), 2.523 + OPERATOR 24 && (epoint, ecluster), 2.524 + OPERATOR 124 &&+ (epoint, ecluster), 2.525 + OPERATOR 31 <-> (epoint, epoint) FOR ORDER BY float_ops, 2.526 + OPERATOR 33 <-> (epoint, ecircle) FOR ORDER BY float_ops, 2.527 + OPERATOR 34 <-> (epoint, ecluster) FOR ORDER BY float_ops, 2.528 + FUNCTION 1 pgl_gist_consistent(internal, internal, smallint, oid, internal), 2.529 + FUNCTION 2 pgl_gist_union(internal, internal), 2.530 + FUNCTION 3 pgl_gist_compress_epoint(internal), 2.531 + FUNCTION 4 pgl_gist_decompress(internal), 2.532 + FUNCTION 5 pgl_gist_penalty(internal, internal, internal), 2.533 + FUNCTION 6 pgl_gist_picksplit(internal, internal), 2.534 + FUNCTION 7 pgl_gist_same(internal, internal, internal), 2.535 + FUNCTION 8 pgl_gist_distance(internal, internal, smallint, oid), 2.536 + STORAGE ekey_point; 2.537 + 2.538 +DROP OPERATOR CLASS ecircle_ops USING gist; 2.539 +CREATE OPERATOR CLASS ecircle_ops 2.540 + DEFAULT FOR TYPE ecircle USING gist AS 2.541 + OPERATOR 13 = , 2.542 + OPERATOR 21 && (ecircle, epoint), 2.543 + OPERATOR 122 &&+ (ecircle, ebox), 2.544 + OPERATOR 23 && (ecircle, ecircle), 2.545 + OPERATOR 24 && (ecircle, ecluster), 2.546 + OPERATOR 124 &&+ (ecircle, ecluster), 2.547 + OPERATOR 31 <-> (ecircle, epoint) FOR ORDER BY float_ops, 2.548 + OPERATOR 33 <-> (ecircle, ecircle) FOR ORDER BY float_ops, 2.549 + OPERATOR 34 <-> (ecircle, ecluster) FOR ORDER BY float_ops, 2.550 + FUNCTION 1 pgl_gist_consistent(internal, internal, smallint, oid, internal), 2.551 + FUNCTION 2 pgl_gist_union(internal, internal), 2.552 + FUNCTION 3 pgl_gist_compress_ecircle(internal), 2.553 + FUNCTION 4 pgl_gist_decompress(internal), 2.554 + FUNCTION 5 pgl_gist_penalty(internal, internal, internal), 2.555 + FUNCTION 6 pgl_gist_picksplit(internal, internal), 2.556 + FUNCTION 7 pgl_gist_same(internal, internal, internal), 2.557 + FUNCTION 8 pgl_gist_distance(internal, internal, smallint, oid), 2.558 + STORAGE ekey_area; 2.559 + 2.560 +DROP OPERATOR CLASS ecluster_ops USING gist; 2.561 +CREATE OPERATOR CLASS ecluster_ops 2.562 + DEFAULT FOR TYPE ecluster USING gist AS 2.563 + OPERATOR 21 && (ecluster, epoint), 2.564 + OPERATOR 121 &&+ (ecluster, epoint), 2.565 + OPERATOR 122 &&+ (ecluster, ebox), 2.566 + OPERATOR 23 && (ecluster, ecircle), 2.567 + OPERATOR 123 &&+ (ecluster, ecircle), 2.568 + OPERATOR 124 &&+ (ecluster, ecluster), 2.569 + FUNCTION 1 pgl_gist_consistent(internal, internal, smallint, oid, internal), 2.570 + FUNCTION 2 pgl_gist_union(internal, internal), 2.571 + FUNCTION 3 pgl_gist_compress_ecluster(internal), 2.572 + FUNCTION 4 pgl_gist_decompress(internal), 2.573 + FUNCTION 5 pgl_gist_penalty(internal, internal, internal), 2.574 + FUNCTION 6 pgl_gist_picksplit(internal, internal), 2.575 + FUNCTION 7 pgl_gist_same(internal, internal, internal), 2.576 + FUNCTION 8 pgl_gist_distance(internal, internal, smallint, oid), 2.577 + STORAGE ekey_area; 2.578 +