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 +

Impressum / About Us