pgLatLon

annotate latlon--0.2--0.3.sql @ 13:4489b4d7d9c8

Updated manual installation instructions in README files to match version 0.3
author jbe
date Fri Sep 02 14:31:58 2016 +0200 (2016-09-02)
parents b4ec52e7e888
children
rev   line source
jbe@12 1
jbe@12 2 CREATE OR REPLACE FUNCTION ekey_point_in_dummy(cstring)
jbe@12 3 RETURNS ekey_point
jbe@12 4 LANGUAGE C IMMUTABLE STRICT
jbe@12 5 AS '$libdir/latlon-v0003', 'pgl_notimpl';
jbe@12 6
jbe@12 7 CREATE OR REPLACE FUNCTION ekey_point_out_dummy(ekey_point)
jbe@12 8 RETURNS cstring
jbe@12 9 LANGUAGE C IMMUTABLE STRICT
jbe@12 10 AS '$libdir/latlon-v0003', 'pgl_notimpl';
jbe@12 11
jbe@12 12 CREATE OR REPLACE FUNCTION ekey_area_in_dummy(cstring)
jbe@12 13 RETURNS ekey_area
jbe@12 14 LANGUAGE C IMMUTABLE STRICT
jbe@12 15 AS '$libdir/latlon-v0003', 'pgl_notimpl';
jbe@12 16
jbe@12 17 CREATE OR REPLACE FUNCTION ekey_area_out_dummy(ekey_area)
jbe@12 18 RETURNS cstring
jbe@12 19 LANGUAGE C IMMUTABLE STRICT
jbe@12 20 AS '$libdir/latlon-v0003', 'pgl_notimpl';
jbe@12 21
jbe@12 22 CREATE OR REPLACE FUNCTION epoint_in(cstring)
jbe@12 23 RETURNS epoint
jbe@12 24 LANGUAGE C IMMUTABLE STRICT
jbe@12 25 AS '$libdir/latlon-v0003', 'pgl_epoint_in';
jbe@12 26
jbe@12 27 CREATE OR REPLACE FUNCTION ebox_in(cstring)
jbe@12 28 RETURNS ebox
jbe@12 29 LANGUAGE C IMMUTABLE STRICT
jbe@12 30 AS '$libdir/latlon-v0003', 'pgl_ebox_in';
jbe@12 31
jbe@12 32 CREATE OR REPLACE FUNCTION ecircle_in(cstring)
jbe@12 33 RETURNS ecircle
jbe@12 34 LANGUAGE C IMMUTABLE STRICT
jbe@12 35 AS '$libdir/latlon-v0003', 'pgl_ecircle_in';
jbe@12 36
jbe@12 37 CREATE OR REPLACE FUNCTION ecluster_in(cstring)
jbe@12 38 RETURNS ecluster
jbe@12 39 LANGUAGE C IMMUTABLE STRICT
jbe@12 40 AS '$libdir/latlon-v0003', 'pgl_ecluster_in';
jbe@12 41
jbe@12 42 CREATE OR REPLACE FUNCTION epoint_out(epoint)
jbe@12 43 RETURNS cstring
jbe@12 44 LANGUAGE C IMMUTABLE STRICT
jbe@12 45 AS '$libdir/latlon-v0003', 'pgl_epoint_out';
jbe@12 46
jbe@12 47 CREATE OR REPLACE FUNCTION ebox_out(ebox)
jbe@12 48 RETURNS cstring
jbe@12 49 LANGUAGE C IMMUTABLE STRICT
jbe@12 50 AS '$libdir/latlon-v0003', 'pgl_ebox_out';
jbe@12 51
jbe@12 52 CREATE OR REPLACE FUNCTION ecircle_out(ecircle)
jbe@12 53 RETURNS cstring
jbe@12 54 LANGUAGE C IMMUTABLE STRICT
jbe@12 55 AS '$libdir/latlon-v0003', 'pgl_ecircle_out';
jbe@12 56
jbe@12 57 CREATE OR REPLACE FUNCTION ecluster_out(ecluster)
jbe@12 58 RETURNS cstring
jbe@12 59 LANGUAGE C IMMUTABLE STRICT
jbe@12 60 AS '$libdir/latlon-v0003', 'pgl_ecluster_out';
jbe@12 61
jbe@12 62 CREATE OR REPLACE FUNCTION epoint_recv(internal)
jbe@12 63 RETURNS epoint
jbe@12 64 LANGUAGE C IMMUTABLE STRICT
jbe@12 65 AS '$libdir/latlon-v0003', 'pgl_epoint_recv';
jbe@12 66
jbe@12 67 CREATE OR REPLACE FUNCTION ebox_recv(internal)
jbe@12 68 RETURNS ebox
jbe@12 69 LANGUAGE C IMMUTABLE STRICT
jbe@12 70 AS '$libdir/latlon-v0003', 'pgl_ebox_recv';
jbe@12 71
jbe@12 72 CREATE OR REPLACE FUNCTION ecircle_recv(internal)
jbe@12 73 RETURNS ecircle
jbe@12 74 LANGUAGE C IMMUTABLE STRICT
jbe@12 75 AS '$libdir/latlon-v0003', 'pgl_ecircle_recv';
jbe@12 76
jbe@12 77 CREATE OR REPLACE FUNCTION epoint_send(epoint)
jbe@12 78 RETURNS bytea
jbe@12 79 LANGUAGE C IMMUTABLE STRICT
jbe@12 80 AS '$libdir/latlon-v0003', 'pgl_epoint_send';
jbe@12 81
jbe@12 82 CREATE OR REPLACE FUNCTION ebox_send(ebox)
jbe@12 83 RETURNS bytea
jbe@12 84 LANGUAGE C IMMUTABLE STRICT
jbe@12 85 AS '$libdir/latlon-v0003', 'pgl_ebox_send';
jbe@12 86
jbe@12 87 CREATE OR REPLACE FUNCTION ecircle_send(ecircle)
jbe@12 88 RETURNS bytea
jbe@12 89 LANGUAGE C IMMUTABLE STRICT
jbe@12 90 AS '$libdir/latlon-v0003', 'pgl_ecircle_send';
jbe@12 91
jbe@12 92 CREATE OR REPLACE FUNCTION epoint_btree_lt(epoint, epoint)
jbe@12 93 RETURNS boolean
jbe@12 94 LANGUAGE C IMMUTABLE STRICT
jbe@12 95 AS '$libdir/latlon-v0003', 'pgl_btree_epoint_lt';
jbe@12 96
jbe@12 97 CREATE OR REPLACE FUNCTION epoint_btree_le(epoint, epoint)
jbe@12 98 RETURNS boolean
jbe@12 99 LANGUAGE C IMMUTABLE STRICT
jbe@12 100 AS '$libdir/latlon-v0003', 'pgl_btree_epoint_le';
jbe@12 101
jbe@12 102 CREATE OR REPLACE FUNCTION epoint_btree_eq(epoint, epoint)
jbe@12 103 RETURNS boolean
jbe@12 104 LANGUAGE C IMMUTABLE STRICT
jbe@12 105 AS '$libdir/latlon-v0003', 'pgl_btree_epoint_eq';
jbe@12 106
jbe@12 107 CREATE OR REPLACE FUNCTION epoint_btree_ne(epoint, epoint)
jbe@12 108 RETURNS boolean
jbe@12 109 LANGUAGE C IMMUTABLE STRICT
jbe@12 110 AS '$libdir/latlon-v0003', 'pgl_btree_epoint_ne';
jbe@12 111
jbe@12 112 CREATE OR REPLACE FUNCTION epoint_btree_ge(epoint, epoint)
jbe@12 113 RETURNS boolean
jbe@12 114 LANGUAGE C IMMUTABLE STRICT
jbe@12 115 AS '$libdir/latlon-v0003', 'pgl_btree_epoint_ge';
jbe@12 116
jbe@12 117 CREATE OR REPLACE FUNCTION epoint_btree_gt(epoint, epoint)
jbe@12 118 RETURNS boolean
jbe@12 119 LANGUAGE C IMMUTABLE STRICT
jbe@12 120 AS '$libdir/latlon-v0003', 'pgl_btree_epoint_gt';
jbe@12 121
jbe@12 122 CREATE OR REPLACE FUNCTION epoint_btree_cmp(epoint, epoint)
jbe@12 123 RETURNS int4
jbe@12 124 LANGUAGE C IMMUTABLE STRICT
jbe@12 125 AS '$libdir/latlon-v0003', 'pgl_btree_epoint_cmp';
jbe@12 126
jbe@12 127 CREATE OR REPLACE FUNCTION ebox_btree_lt(ebox, ebox)
jbe@12 128 RETURNS boolean
jbe@12 129 LANGUAGE C IMMUTABLE STRICT
jbe@12 130 AS '$libdir/latlon-v0003', 'pgl_btree_ebox_lt';
jbe@12 131
jbe@12 132 CREATE OR REPLACE FUNCTION ebox_btree_le(ebox, ebox)
jbe@12 133 RETURNS boolean
jbe@12 134 LANGUAGE C IMMUTABLE STRICT
jbe@12 135 AS '$libdir/latlon-v0003', 'pgl_btree_ebox_le';
jbe@12 136
jbe@12 137 CREATE OR REPLACE FUNCTION ebox_btree_eq(ebox, ebox)
jbe@12 138 RETURNS boolean
jbe@12 139 LANGUAGE C IMMUTABLE STRICT
jbe@12 140 AS '$libdir/latlon-v0003', 'pgl_btree_ebox_eq';
jbe@12 141
jbe@12 142 CREATE OR REPLACE FUNCTION ebox_btree_ne(ebox, ebox)
jbe@12 143 RETURNS boolean
jbe@12 144 LANGUAGE C IMMUTABLE STRICT
jbe@12 145 AS '$libdir/latlon-v0003', 'pgl_btree_ebox_ne';
jbe@12 146
jbe@12 147 CREATE OR REPLACE FUNCTION ebox_btree_ge(ebox, ebox)
jbe@12 148 RETURNS boolean
jbe@12 149 LANGUAGE C IMMUTABLE STRICT
jbe@12 150 AS '$libdir/latlon-v0003', 'pgl_btree_ebox_ge';
jbe@12 151
jbe@12 152 CREATE OR REPLACE FUNCTION ebox_btree_gt(ebox, ebox)
jbe@12 153 RETURNS boolean
jbe@12 154 LANGUAGE C IMMUTABLE STRICT
jbe@12 155 AS '$libdir/latlon-v0003', 'pgl_btree_ebox_gt';
jbe@12 156
jbe@12 157 CREATE OR REPLACE FUNCTION ebox_btree_cmp(ebox, ebox)
jbe@12 158 RETURNS int4
jbe@12 159 LANGUAGE C IMMUTABLE STRICT
jbe@12 160 AS '$libdir/latlon-v0003', 'pgl_btree_ebox_cmp';
jbe@12 161
jbe@12 162 CREATE OR REPLACE FUNCTION ecircle_btree_lt(ecircle, ecircle)
jbe@12 163 RETURNS boolean
jbe@12 164 LANGUAGE C IMMUTABLE STRICT
jbe@12 165 AS '$libdir/latlon-v0003', 'pgl_btree_ecircle_lt';
jbe@12 166
jbe@12 167 CREATE OR REPLACE FUNCTION ecircle_btree_le(ecircle, ecircle)
jbe@12 168 RETURNS boolean
jbe@12 169 LANGUAGE C IMMUTABLE STRICT
jbe@12 170 AS '$libdir/latlon-v0003', 'pgl_btree_ecircle_le';
jbe@12 171
jbe@12 172 CREATE OR REPLACE FUNCTION ecircle_btree_eq(ecircle, ecircle)
jbe@12 173 RETURNS boolean
jbe@12 174 LANGUAGE C IMMUTABLE STRICT
jbe@12 175 AS '$libdir/latlon-v0003', 'pgl_btree_ecircle_eq';
jbe@12 176
jbe@12 177 CREATE OR REPLACE FUNCTION ecircle_btree_ne(ecircle, ecircle)
jbe@12 178 RETURNS boolean
jbe@12 179 LANGUAGE C IMMUTABLE STRICT
jbe@12 180 AS '$libdir/latlon-v0003', 'pgl_btree_ecircle_ne';
jbe@12 181
jbe@12 182 CREATE OR REPLACE FUNCTION ecircle_btree_ge(ecircle, ecircle)
jbe@12 183 RETURNS boolean
jbe@12 184 LANGUAGE C IMMUTABLE STRICT
jbe@12 185 AS '$libdir/latlon-v0003', 'pgl_btree_ecircle_ge';
jbe@12 186
jbe@12 187 CREATE OR REPLACE FUNCTION ecircle_btree_gt(ecircle, ecircle)
jbe@12 188 RETURNS boolean
jbe@12 189 LANGUAGE C IMMUTABLE STRICT
jbe@12 190 AS '$libdir/latlon-v0003', 'pgl_btree_ecircle_gt';
jbe@12 191
jbe@12 192 CREATE OR REPLACE FUNCTION ecircle_btree_cmp(ecircle, ecircle)
jbe@12 193 RETURNS int4
jbe@12 194 LANGUAGE C IMMUTABLE STRICT
jbe@12 195 AS '$libdir/latlon-v0003', 'pgl_btree_ecircle_cmp';
jbe@12 196
jbe@12 197 CREATE OR REPLACE FUNCTION cast_epoint_to_ebox(epoint)
jbe@12 198 RETURNS ebox
jbe@12 199 LANGUAGE C IMMUTABLE STRICT
jbe@12 200 AS '$libdir/latlon-v0003', 'pgl_epoint_to_ebox';
jbe@12 201
jbe@12 202 CREATE OR REPLACE FUNCTION cast_epoint_to_ecircle(epoint)
jbe@12 203 RETURNS ecircle
jbe@12 204 LANGUAGE C IMMUTABLE STRICT
jbe@12 205 AS '$libdir/latlon-v0003', 'pgl_epoint_to_ecircle';
jbe@12 206
jbe@12 207 CREATE OR REPLACE FUNCTION cast_epoint_to_ecluster(epoint)
jbe@12 208 RETURNS ecluster
jbe@12 209 LANGUAGE C IMMUTABLE STRICT
jbe@12 210 AS '$libdir/latlon-v0003', 'pgl_epoint_to_ecluster';
jbe@12 211
jbe@12 212 CREATE OR REPLACE FUNCTION cast_ebox_to_ecluster(ebox)
jbe@12 213 RETURNS ecluster
jbe@12 214 LANGUAGE C IMMUTABLE STRICT
jbe@12 215 AS '$libdir/latlon-v0003', 'pgl_ebox_to_ecluster';
jbe@12 216
jbe@12 217 CREATE OR REPLACE FUNCTION epoint(float8, float8)
jbe@12 218 RETURNS epoint
jbe@12 219 LANGUAGE C IMMUTABLE STRICT
jbe@12 220 AS '$libdir/latlon-v0003', 'pgl_create_epoint';
jbe@12 221
jbe@12 222 CREATE OR REPLACE FUNCTION empty_ebox()
jbe@12 223 RETURNS ebox
jbe@12 224 LANGUAGE C IMMUTABLE STRICT
jbe@12 225 AS '$libdir/latlon-v0003', 'pgl_create_empty_ebox';
jbe@12 226
jbe@12 227 CREATE OR REPLACE FUNCTION ebox(float8, float8, float8, float8)
jbe@12 228 RETURNS ebox
jbe@12 229 LANGUAGE C IMMUTABLE STRICT
jbe@12 230 AS '$libdir/latlon-v0003', 'pgl_create_ebox';
jbe@12 231
jbe@12 232 CREATE OR REPLACE FUNCTION ebox(epoint, epoint)
jbe@12 233 RETURNS ebox
jbe@12 234 LANGUAGE C IMMUTABLE STRICT
jbe@12 235 AS '$libdir/latlon-v0003', 'pgl_create_ebox_from_epoints';
jbe@12 236
jbe@12 237 CREATE OR REPLACE FUNCTION ecircle(float8, float8, float8)
jbe@12 238 RETURNS ecircle
jbe@12 239 LANGUAGE C IMMUTABLE STRICT
jbe@12 240 AS '$libdir/latlon-v0003', 'pgl_create_ecircle';
jbe@12 241
jbe@12 242 CREATE OR REPLACE FUNCTION ecircle(epoint, float8)
jbe@12 243 RETURNS ecircle
jbe@12 244 LANGUAGE C IMMUTABLE STRICT
jbe@12 245 AS '$libdir/latlon-v0003', 'pgl_create_ecircle_from_epoint';
jbe@12 246
jbe@12 247 CREATE OR REPLACE FUNCTION latitude(epoint)
jbe@12 248 RETURNS float8
jbe@12 249 LANGUAGE C IMMUTABLE STRICT
jbe@12 250 AS '$libdir/latlon-v0003', 'pgl_epoint_lat';
jbe@12 251
jbe@12 252 CREATE OR REPLACE FUNCTION longitude(epoint)
jbe@12 253 RETURNS float8
jbe@12 254 LANGUAGE C IMMUTABLE STRICT
jbe@12 255 AS '$libdir/latlon-v0003', 'pgl_epoint_lon';
jbe@12 256
jbe@12 257 CREATE OR REPLACE FUNCTION min_latitude(ebox)
jbe@12 258 RETURNS float8
jbe@12 259 LANGUAGE C IMMUTABLE STRICT
jbe@12 260 AS '$libdir/latlon-v0003', 'pgl_ebox_lat_min';
jbe@12 261
jbe@12 262 CREATE OR REPLACE FUNCTION max_latitude(ebox)
jbe@12 263 RETURNS float8
jbe@12 264 LANGUAGE C IMMUTABLE STRICT
jbe@12 265 AS '$libdir/latlon-v0003', 'pgl_ebox_lat_max';
jbe@12 266
jbe@12 267 CREATE OR REPLACE FUNCTION min_longitude(ebox)
jbe@12 268 RETURNS float8
jbe@12 269 LANGUAGE C IMMUTABLE STRICT
jbe@12 270 AS '$libdir/latlon-v0003', 'pgl_ebox_lon_min';
jbe@12 271
jbe@12 272 CREATE OR REPLACE FUNCTION max_longitude(ebox)
jbe@12 273 RETURNS float8
jbe@12 274 LANGUAGE C IMMUTABLE STRICT
jbe@12 275 AS '$libdir/latlon-v0003', 'pgl_ebox_lon_max';
jbe@12 276
jbe@12 277 CREATE OR REPLACE FUNCTION center(ecircle)
jbe@12 278 RETURNS epoint
jbe@12 279 LANGUAGE C IMMUTABLE STRICT
jbe@12 280 AS '$libdir/latlon-v0003', 'pgl_ecircle_center';
jbe@12 281
jbe@12 282 CREATE OR REPLACE FUNCTION radius(ecircle)
jbe@12 283 RETURNS float8
jbe@12 284 LANGUAGE C IMMUTABLE STRICT
jbe@12 285 AS '$libdir/latlon-v0003', 'pgl_ecircle_radius';
jbe@12 286
jbe@12 287 CREATE OR REPLACE FUNCTION epoint_ebox_overlap_proc(epoint, ebox)
jbe@12 288 RETURNS boolean
jbe@12 289 LANGUAGE C IMMUTABLE STRICT
jbe@12 290 AS '$libdir/latlon-v0003', 'pgl_epoint_ebox_overlap';
jbe@12 291
jbe@12 292 CREATE OR REPLACE FUNCTION epoint_ecircle_overlap_proc(epoint, ecircle)
jbe@12 293 RETURNS boolean
jbe@12 294 LANGUAGE C IMMUTABLE STRICT
jbe@12 295 AS '$libdir/latlon-v0003', 'pgl_epoint_ecircle_overlap';
jbe@12 296
jbe@12 297 CREATE OR REPLACE FUNCTION epoint_ecluster_overlap_proc(epoint, ecluster)
jbe@12 298 RETURNS boolean
jbe@12 299 LANGUAGE C IMMUTABLE STRICT
jbe@12 300 AS '$libdir/latlon-v0003', 'pgl_epoint_ecluster_overlap';
jbe@12 301
jbe@12 302 CREATE OR REPLACE FUNCTION epoint_ecluster_may_overlap_proc(epoint, ecluster)
jbe@12 303 RETURNS boolean
jbe@12 304 LANGUAGE C IMMUTABLE STRICT
jbe@12 305 AS '$libdir/latlon-v0003', 'pgl_epoint_ecluster_may_overlap';
jbe@12 306
jbe@12 307 CREATE OR REPLACE FUNCTION ebox_overlap_proc(ebox, ebox)
jbe@12 308 RETURNS boolean
jbe@12 309 LANGUAGE C IMMUTABLE STRICT
jbe@12 310 AS '$libdir/latlon-v0003', 'pgl_ebox_overlap';
jbe@12 311
jbe@12 312 CREATE OR REPLACE FUNCTION ebox_ecircle_may_overlap_proc(ebox, ecircle)
jbe@12 313 RETURNS boolean
jbe@12 314 LANGUAGE C IMMUTABLE STRICT
jbe@12 315 AS '$libdir/latlon-v0003', 'pgl_ebox_ecircle_may_overlap';
jbe@12 316
jbe@12 317 CREATE OR REPLACE FUNCTION ebox_ecluster_may_overlap_proc(ebox, ecluster)
jbe@12 318 RETURNS boolean
jbe@12 319 LANGUAGE C IMMUTABLE STRICT
jbe@12 320 AS '$libdir/latlon-v0003', 'pgl_ebox_ecluster_may_overlap';
jbe@12 321
jbe@12 322 CREATE OR REPLACE FUNCTION ecircle_overlap_proc(ecircle, ecircle)
jbe@12 323 RETURNS boolean
jbe@12 324 LANGUAGE C IMMUTABLE STRICT
jbe@12 325 AS '$libdir/latlon-v0003', 'pgl_ecircle_overlap';
jbe@12 326
jbe@12 327 CREATE OR REPLACE FUNCTION ecircle_ecluster_overlap_proc(ecircle, ecluster)
jbe@12 328 RETURNS boolean
jbe@12 329 LANGUAGE C IMMUTABLE STRICT
jbe@12 330 AS '$libdir/latlon-v0003', 'pgl_ecircle_ecluster_overlap';
jbe@12 331
jbe@12 332 CREATE OR REPLACE FUNCTION ecircle_ecluster_may_overlap_proc(ecircle, ecluster)
jbe@12 333 RETURNS boolean
jbe@12 334 LANGUAGE C IMMUTABLE STRICT
jbe@12 335 AS '$libdir/latlon-v0003', 'pgl_ecircle_ecluster_may_overlap';
jbe@12 336
jbe@12 337 CREATE OR REPLACE FUNCTION ecluster_may_overlap_proc(ecluster, ecluster)
jbe@12 338 RETURNS boolean
jbe@12 339 LANGUAGE C IMMUTABLE STRICT
jbe@12 340 AS '$libdir/latlon-v0003', 'pgl_ecluster_may_overlap';
jbe@12 341
jbe@12 342 CREATE OPERATOR &&+ (
jbe@12 343 leftarg = epoint,
jbe@12 344 rightarg = ecluster,
jbe@12 345 procedure = epoint_ecluster_may_overlap_proc,
jbe@12 346 commutator = &&+,
jbe@12 347 restrict = areasel,
jbe@12 348 join = areajoinsel
jbe@12 349 );
jbe@12 350
jbe@12 351 CREATE FUNCTION epoint_ecluster_may_overlap_commutator(ecluster, epoint)
jbe@12 352 RETURNS boolean
jbe@12 353 LANGUAGE sql IMMUTABLE AS 'SELECT $2 &&+ $1';
jbe@12 354
jbe@12 355 CREATE OPERATOR &&+ (
jbe@12 356 leftarg = ecluster,
jbe@12 357 rightarg = epoint,
jbe@12 358 procedure = epoint_ecluster_may_overlap_commutator,
jbe@12 359 commutator = &&+,
jbe@12 360 restrict = areasel,
jbe@12 361 join = areajoinsel
jbe@12 362 );
jbe@12 363
jbe@12 364 CREATE OPERATOR &&+ (
jbe@12 365 leftarg = ebox,
jbe@12 366 rightarg = ecircle,
jbe@12 367 procedure = ebox_ecircle_may_overlap_proc,
jbe@12 368 commutator = &&+,
jbe@12 369 restrict = areasel,
jbe@12 370 join = areajoinsel
jbe@12 371 );
jbe@12 372
jbe@12 373 CREATE FUNCTION ebox_ecircle_may_overlap_commutator(ecircle, ebox)
jbe@12 374 RETURNS boolean
jbe@12 375 LANGUAGE sql IMMUTABLE AS 'SELECT $2 &&+ $1';
jbe@12 376
jbe@12 377 CREATE OPERATOR &&+ (
jbe@12 378 leftarg = ecircle,
jbe@12 379 rightarg = ebox,
jbe@12 380 procedure = ebox_ecircle_may_overlap_commutator,
jbe@12 381 commutator = &&+,
jbe@12 382 restrict = areasel,
jbe@12 383 join = areajoinsel
jbe@12 384 );
jbe@12 385
jbe@12 386 CREATE OPERATOR &&+ (
jbe@12 387 leftarg = ebox,
jbe@12 388 rightarg = ecluster,
jbe@12 389 procedure = ebox_ecluster_may_overlap_proc,
jbe@12 390 commutator = &&+,
jbe@12 391 restrict = areasel,
jbe@12 392 join = areajoinsel
jbe@12 393 );
jbe@12 394
jbe@12 395 CREATE FUNCTION ebox_ecluster_may_overlap_commutator(ecluster, ebox)
jbe@12 396 RETURNS boolean
jbe@12 397 LANGUAGE sql IMMUTABLE AS 'SELECT $2 &&+ $1';
jbe@12 398
jbe@12 399 CREATE OPERATOR &&+ (
jbe@12 400 leftarg = ecluster,
jbe@12 401 rightarg = ebox,
jbe@12 402 procedure = ebox_ecluster_may_overlap_commutator,
jbe@12 403 commutator = &&+,
jbe@12 404 restrict = areasel,
jbe@12 405 join = areajoinsel
jbe@12 406 );
jbe@12 407
jbe@12 408 CREATE OPERATOR &&+ (
jbe@12 409 leftarg = ecircle,
jbe@12 410 rightarg = ecluster,
jbe@12 411 procedure = ecircle_ecluster_may_overlap_proc,
jbe@12 412 commutator = &&+,
jbe@12 413 restrict = areasel,
jbe@12 414 join = areajoinsel
jbe@12 415 );
jbe@12 416
jbe@12 417 CREATE FUNCTION ecircle_ecluster_may_overlap_commutator(ecluster, ecircle)
jbe@12 418 RETURNS boolean
jbe@12 419 LANGUAGE sql IMMUTABLE AS 'SELECT $2 &&+ $1';
jbe@12 420
jbe@12 421 CREATE OPERATOR &&+ (
jbe@12 422 leftarg = ecluster,
jbe@12 423 rightarg = ecircle,
jbe@12 424 procedure = ecircle_ecluster_may_overlap_commutator,
jbe@12 425 commutator = &&+,
jbe@12 426 restrict = areasel,
jbe@12 427 join = areajoinsel
jbe@12 428 );
jbe@12 429
jbe@12 430 CREATE OPERATOR &&+ (
jbe@12 431 leftarg = ecluster,
jbe@12 432 rightarg = ecluster,
jbe@12 433 procedure = ecluster_may_overlap_proc,
jbe@12 434 commutator = &&+,
jbe@12 435 restrict = areasel,
jbe@12 436 join = areajoinsel
jbe@12 437 );
jbe@12 438
jbe@12 439 CREATE OR REPLACE FUNCTION epoint_distance_proc(epoint, epoint)
jbe@12 440 RETURNS float8
jbe@12 441 LANGUAGE C IMMUTABLE STRICT
jbe@12 442 AS '$libdir/latlon-v0003', 'pgl_epoint_distance';
jbe@12 443
jbe@12 444 CREATE OR REPLACE FUNCTION epoint_ecircle_distance_proc(epoint, ecircle)
jbe@12 445 RETURNS float8
jbe@12 446 LANGUAGE C IMMUTABLE STRICT
jbe@12 447 AS '$libdir/latlon-v0003', 'pgl_epoint_ecircle_distance';
jbe@12 448
jbe@12 449 CREATE OR REPLACE FUNCTION epoint_ecluster_distance_proc(epoint, ecluster)
jbe@12 450 RETURNS float8
jbe@12 451 LANGUAGE C IMMUTABLE STRICT
jbe@12 452 AS '$libdir/latlon-v0003', 'pgl_epoint_ecluster_distance';
jbe@12 453
jbe@12 454 CREATE OR REPLACE FUNCTION ecircle_distance_proc(ecircle, ecircle)
jbe@12 455 RETURNS float8
jbe@12 456 LANGUAGE C IMMUTABLE STRICT
jbe@12 457 AS '$libdir/latlon-v0003', 'pgl_ecircle_distance';
jbe@12 458
jbe@12 459 CREATE OR REPLACE FUNCTION ecircle_ecluster_distance_proc(ecircle, ecluster)
jbe@12 460 RETURNS float8
jbe@12 461 LANGUAGE C IMMUTABLE STRICT
jbe@12 462 AS '$libdir/latlon-v0003', 'pgl_ecircle_ecluster_distance';
jbe@12 463
jbe@12 464 CREATE OR REPLACE FUNCTION pgl_gist_consistent(internal, internal, smallint, oid, internal)
jbe@12 465 RETURNS boolean
jbe@12 466 LANGUAGE C STRICT
jbe@12 467 AS '$libdir/latlon-v0003', 'pgl_gist_consistent';
jbe@12 468
jbe@12 469 CREATE OR REPLACE FUNCTION pgl_gist_union(internal, internal)
jbe@12 470 RETURNS internal
jbe@12 471 LANGUAGE C STRICT
jbe@12 472 AS '$libdir/latlon-v0003', 'pgl_gist_union';
jbe@12 473
jbe@12 474 CREATE OR REPLACE FUNCTION pgl_gist_compress_epoint(internal)
jbe@12 475 RETURNS internal
jbe@12 476 LANGUAGE C STRICT
jbe@12 477 AS '$libdir/latlon-v0003', 'pgl_gist_compress_epoint';
jbe@12 478
jbe@12 479 CREATE OR REPLACE FUNCTION pgl_gist_compress_ecircle(internal)
jbe@12 480 RETURNS internal
jbe@12 481 LANGUAGE C STRICT
jbe@12 482 AS '$libdir/latlon-v0003', 'pgl_gist_compress_ecircle';
jbe@12 483
jbe@12 484 CREATE OR REPLACE FUNCTION pgl_gist_compress_ecluster(internal)
jbe@12 485 RETURNS internal
jbe@12 486 LANGUAGE C STRICT
jbe@12 487 AS '$libdir/latlon-v0003', 'pgl_gist_compress_ecluster';
jbe@12 488
jbe@12 489 CREATE OR REPLACE FUNCTION pgl_gist_decompress(internal)
jbe@12 490 RETURNS internal
jbe@12 491 LANGUAGE C STRICT
jbe@12 492 AS '$libdir/latlon-v0003', 'pgl_gist_decompress';
jbe@12 493
jbe@12 494 CREATE OR REPLACE FUNCTION pgl_gist_penalty(internal, internal, internal)
jbe@12 495 RETURNS internal
jbe@12 496 LANGUAGE C STRICT
jbe@12 497 AS '$libdir/latlon-v0003', 'pgl_gist_penalty';
jbe@12 498
jbe@12 499 CREATE OR REPLACE FUNCTION pgl_gist_picksplit(internal, internal)
jbe@12 500 RETURNS internal
jbe@12 501 LANGUAGE C STRICT
jbe@12 502 AS '$libdir/latlon-v0003', 'pgl_gist_picksplit';
jbe@12 503
jbe@12 504 CREATE OR REPLACE FUNCTION pgl_gist_same(internal, internal, internal)
jbe@12 505 RETURNS internal
jbe@12 506 LANGUAGE C STRICT
jbe@12 507 AS '$libdir/latlon-v0003', 'pgl_gist_same';
jbe@12 508
jbe@12 509 CREATE OR REPLACE FUNCTION pgl_gist_distance(internal, internal, smallint, oid)
jbe@12 510 RETURNS internal
jbe@12 511 LANGUAGE C STRICT
jbe@12 512 AS '$libdir/latlon-v0003', 'pgl_gist_distance';
jbe@12 513
jbe@12 514 DROP OPERATOR CLASS epoint_ops USING gist;
jbe@12 515 CREATE OPERATOR CLASS epoint_ops
jbe@12 516 DEFAULT FOR TYPE epoint USING gist AS
jbe@12 517 OPERATOR 11 = ,
jbe@12 518 OPERATOR 22 && (epoint, ebox),
jbe@12 519 OPERATOR 23 && (epoint, ecircle),
jbe@12 520 OPERATOR 24 && (epoint, ecluster),
jbe@12 521 OPERATOR 124 &&+ (epoint, ecluster),
jbe@12 522 OPERATOR 31 <-> (epoint, epoint) FOR ORDER BY float_ops,
jbe@12 523 OPERATOR 33 <-> (epoint, ecircle) FOR ORDER BY float_ops,
jbe@12 524 OPERATOR 34 <-> (epoint, ecluster) FOR ORDER BY float_ops,
jbe@12 525 FUNCTION 1 pgl_gist_consistent(internal, internal, smallint, oid, internal),
jbe@12 526 FUNCTION 2 pgl_gist_union(internal, internal),
jbe@12 527 FUNCTION 3 pgl_gist_compress_epoint(internal),
jbe@12 528 FUNCTION 4 pgl_gist_decompress(internal),
jbe@12 529 FUNCTION 5 pgl_gist_penalty(internal, internal, internal),
jbe@12 530 FUNCTION 6 pgl_gist_picksplit(internal, internal),
jbe@12 531 FUNCTION 7 pgl_gist_same(internal, internal, internal),
jbe@12 532 FUNCTION 8 pgl_gist_distance(internal, internal, smallint, oid),
jbe@12 533 STORAGE ekey_point;
jbe@12 534
jbe@12 535 DROP OPERATOR CLASS ecircle_ops USING gist;
jbe@12 536 CREATE OPERATOR CLASS ecircle_ops
jbe@12 537 DEFAULT FOR TYPE ecircle USING gist AS
jbe@12 538 OPERATOR 13 = ,
jbe@12 539 OPERATOR 21 && (ecircle, epoint),
jbe@12 540 OPERATOR 122 &&+ (ecircle, ebox),
jbe@12 541 OPERATOR 23 && (ecircle, ecircle),
jbe@12 542 OPERATOR 24 && (ecircle, ecluster),
jbe@12 543 OPERATOR 124 &&+ (ecircle, ecluster),
jbe@12 544 OPERATOR 31 <-> (ecircle, epoint) FOR ORDER BY float_ops,
jbe@12 545 OPERATOR 33 <-> (ecircle, ecircle) FOR ORDER BY float_ops,
jbe@12 546 OPERATOR 34 <-> (ecircle, ecluster) FOR ORDER BY float_ops,
jbe@12 547 FUNCTION 1 pgl_gist_consistent(internal, internal, smallint, oid, internal),
jbe@12 548 FUNCTION 2 pgl_gist_union(internal, internal),
jbe@12 549 FUNCTION 3 pgl_gist_compress_ecircle(internal),
jbe@12 550 FUNCTION 4 pgl_gist_decompress(internal),
jbe@12 551 FUNCTION 5 pgl_gist_penalty(internal, internal, internal),
jbe@12 552 FUNCTION 6 pgl_gist_picksplit(internal, internal),
jbe@12 553 FUNCTION 7 pgl_gist_same(internal, internal, internal),
jbe@12 554 FUNCTION 8 pgl_gist_distance(internal, internal, smallint, oid),
jbe@12 555 STORAGE ekey_area;
jbe@12 556
jbe@12 557 DROP OPERATOR CLASS ecluster_ops USING gist;
jbe@12 558 CREATE OPERATOR CLASS ecluster_ops
jbe@12 559 DEFAULT FOR TYPE ecluster USING gist AS
jbe@12 560 OPERATOR 21 && (ecluster, epoint),
jbe@12 561 OPERATOR 121 &&+ (ecluster, epoint),
jbe@12 562 OPERATOR 122 &&+ (ecluster, ebox),
jbe@12 563 OPERATOR 23 && (ecluster, ecircle),
jbe@12 564 OPERATOR 123 &&+ (ecluster, ecircle),
jbe@12 565 OPERATOR 124 &&+ (ecluster, ecluster),
jbe@12 566 FUNCTION 1 pgl_gist_consistent(internal, internal, smallint, oid, internal),
jbe@12 567 FUNCTION 2 pgl_gist_union(internal, internal),
jbe@12 568 FUNCTION 3 pgl_gist_compress_ecluster(internal),
jbe@12 569 FUNCTION 4 pgl_gist_decompress(internal),
jbe@12 570 FUNCTION 5 pgl_gist_penalty(internal, internal, internal),
jbe@12 571 FUNCTION 6 pgl_gist_picksplit(internal, internal),
jbe@12 572 FUNCTION 7 pgl_gist_same(internal, internal, internal),
jbe@12 573 FUNCTION 8 pgl_gist_distance(internal, internal, smallint, oid),
jbe@12 574 STORAGE ekey_area;
jbe@12 575

Impressum / About Us