pgLatLon

annotate latlon--0.3--0.4.sql @ 16:e319679cefbd

Added more operators for clusters (including polygons); Bugfix regarding missing entries in ecluster_ops operator class (index was not used for nearest-neighbor searches)
author jbe
date Fri Sep 09 19:22:30 2016 +0200 (2016-09-09)
parents
children
rev   line source
jbe@16 1
jbe@16 2 CREATE OR REPLACE FUNCTION ekey_point_in_dummy(cstring)
jbe@16 3 RETURNS ekey_point
jbe@16 4 LANGUAGE C IMMUTABLE STRICT
jbe@16 5 AS '$libdir/latlon-v0004', 'pgl_notimpl';
jbe@16 6
jbe@16 7 CREATE OR REPLACE FUNCTION ekey_point_out_dummy(ekey_point)
jbe@16 8 RETURNS cstring
jbe@16 9 LANGUAGE C IMMUTABLE STRICT
jbe@16 10 AS '$libdir/latlon-v0004', 'pgl_notimpl';
jbe@16 11
jbe@16 12 CREATE OR REPLACE FUNCTION ekey_area_in_dummy(cstring)
jbe@16 13 RETURNS ekey_area
jbe@16 14 LANGUAGE C IMMUTABLE STRICT
jbe@16 15 AS '$libdir/latlon-v0004', 'pgl_notimpl';
jbe@16 16
jbe@16 17 CREATE OR REPLACE FUNCTION ekey_area_out_dummy(ekey_area)
jbe@16 18 RETURNS cstring
jbe@16 19 LANGUAGE C IMMUTABLE STRICT
jbe@16 20 AS '$libdir/latlon-v0004', 'pgl_notimpl';
jbe@16 21
jbe@16 22 CREATE OR REPLACE FUNCTION epoint_in(cstring)
jbe@16 23 RETURNS epoint
jbe@16 24 LANGUAGE C IMMUTABLE STRICT
jbe@16 25 AS '$libdir/latlon-v0004', 'pgl_epoint_in';
jbe@16 26
jbe@16 27 CREATE OR REPLACE FUNCTION ebox_in(cstring)
jbe@16 28 RETURNS ebox
jbe@16 29 LANGUAGE C IMMUTABLE STRICT
jbe@16 30 AS '$libdir/latlon-v0004', 'pgl_ebox_in';
jbe@16 31
jbe@16 32 CREATE OR REPLACE FUNCTION ecircle_in(cstring)
jbe@16 33 RETURNS ecircle
jbe@16 34 LANGUAGE C IMMUTABLE STRICT
jbe@16 35 AS '$libdir/latlon-v0004', 'pgl_ecircle_in';
jbe@16 36
jbe@16 37 CREATE OR REPLACE FUNCTION ecluster_in(cstring)
jbe@16 38 RETURNS ecluster
jbe@16 39 LANGUAGE C IMMUTABLE STRICT
jbe@16 40 AS '$libdir/latlon-v0004', 'pgl_ecluster_in';
jbe@16 41
jbe@16 42 CREATE OR REPLACE FUNCTION epoint_out(epoint)
jbe@16 43 RETURNS cstring
jbe@16 44 LANGUAGE C IMMUTABLE STRICT
jbe@16 45 AS '$libdir/latlon-v0004', 'pgl_epoint_out';
jbe@16 46
jbe@16 47 CREATE OR REPLACE FUNCTION ebox_out(ebox)
jbe@16 48 RETURNS cstring
jbe@16 49 LANGUAGE C IMMUTABLE STRICT
jbe@16 50 AS '$libdir/latlon-v0004', 'pgl_ebox_out';
jbe@16 51
jbe@16 52 CREATE OR REPLACE FUNCTION ecircle_out(ecircle)
jbe@16 53 RETURNS cstring
jbe@16 54 LANGUAGE C IMMUTABLE STRICT
jbe@16 55 AS '$libdir/latlon-v0004', 'pgl_ecircle_out';
jbe@16 56
jbe@16 57 CREATE OR REPLACE FUNCTION ecluster_out(ecluster)
jbe@16 58 RETURNS cstring
jbe@16 59 LANGUAGE C IMMUTABLE STRICT
jbe@16 60 AS '$libdir/latlon-v0004', 'pgl_ecluster_out';
jbe@16 61
jbe@16 62 CREATE OR REPLACE FUNCTION epoint_recv(internal)
jbe@16 63 RETURNS epoint
jbe@16 64 LANGUAGE C IMMUTABLE STRICT
jbe@16 65 AS '$libdir/latlon-v0004', 'pgl_epoint_recv';
jbe@16 66
jbe@16 67 CREATE OR REPLACE FUNCTION ebox_recv(internal)
jbe@16 68 RETURNS ebox
jbe@16 69 LANGUAGE C IMMUTABLE STRICT
jbe@16 70 AS '$libdir/latlon-v0004', 'pgl_ebox_recv';
jbe@16 71
jbe@16 72 CREATE OR REPLACE FUNCTION ecircle_recv(internal)
jbe@16 73 RETURNS ecircle
jbe@16 74 LANGUAGE C IMMUTABLE STRICT
jbe@16 75 AS '$libdir/latlon-v0004', 'pgl_ecircle_recv';
jbe@16 76
jbe@16 77 CREATE OR REPLACE FUNCTION epoint_send(epoint)
jbe@16 78 RETURNS bytea
jbe@16 79 LANGUAGE C IMMUTABLE STRICT
jbe@16 80 AS '$libdir/latlon-v0004', 'pgl_epoint_send';
jbe@16 81
jbe@16 82 CREATE OR REPLACE FUNCTION ebox_send(ebox)
jbe@16 83 RETURNS bytea
jbe@16 84 LANGUAGE C IMMUTABLE STRICT
jbe@16 85 AS '$libdir/latlon-v0004', 'pgl_ebox_send';
jbe@16 86
jbe@16 87 CREATE OR REPLACE FUNCTION ecircle_send(ecircle)
jbe@16 88 RETURNS bytea
jbe@16 89 LANGUAGE C IMMUTABLE STRICT
jbe@16 90 AS '$libdir/latlon-v0004', 'pgl_ecircle_send';
jbe@16 91
jbe@16 92 CREATE OR REPLACE FUNCTION epoint_btree_lt(epoint, epoint)
jbe@16 93 RETURNS boolean
jbe@16 94 LANGUAGE C IMMUTABLE STRICT
jbe@16 95 AS '$libdir/latlon-v0004', 'pgl_btree_epoint_lt';
jbe@16 96
jbe@16 97 CREATE OR REPLACE FUNCTION epoint_btree_le(epoint, epoint)
jbe@16 98 RETURNS boolean
jbe@16 99 LANGUAGE C IMMUTABLE STRICT
jbe@16 100 AS '$libdir/latlon-v0004', 'pgl_btree_epoint_le';
jbe@16 101
jbe@16 102 CREATE OR REPLACE FUNCTION epoint_btree_eq(epoint, epoint)
jbe@16 103 RETURNS boolean
jbe@16 104 LANGUAGE C IMMUTABLE STRICT
jbe@16 105 AS '$libdir/latlon-v0004', 'pgl_btree_epoint_eq';
jbe@16 106
jbe@16 107 CREATE OR REPLACE FUNCTION epoint_btree_ne(epoint, epoint)
jbe@16 108 RETURNS boolean
jbe@16 109 LANGUAGE C IMMUTABLE STRICT
jbe@16 110 AS '$libdir/latlon-v0004', 'pgl_btree_epoint_ne';
jbe@16 111
jbe@16 112 CREATE OR REPLACE FUNCTION epoint_btree_ge(epoint, epoint)
jbe@16 113 RETURNS boolean
jbe@16 114 LANGUAGE C IMMUTABLE STRICT
jbe@16 115 AS '$libdir/latlon-v0004', 'pgl_btree_epoint_ge';
jbe@16 116
jbe@16 117 CREATE OR REPLACE FUNCTION epoint_btree_gt(epoint, epoint)
jbe@16 118 RETURNS boolean
jbe@16 119 LANGUAGE C IMMUTABLE STRICT
jbe@16 120 AS '$libdir/latlon-v0004', 'pgl_btree_epoint_gt';
jbe@16 121
jbe@16 122 CREATE OR REPLACE FUNCTION epoint_btree_cmp(epoint, epoint)
jbe@16 123 RETURNS int4
jbe@16 124 LANGUAGE C IMMUTABLE STRICT
jbe@16 125 AS '$libdir/latlon-v0004', 'pgl_btree_epoint_cmp';
jbe@16 126
jbe@16 127 CREATE OR REPLACE FUNCTION ebox_btree_lt(ebox, ebox)
jbe@16 128 RETURNS boolean
jbe@16 129 LANGUAGE C IMMUTABLE STRICT
jbe@16 130 AS '$libdir/latlon-v0004', 'pgl_btree_ebox_lt';
jbe@16 131
jbe@16 132 CREATE OR REPLACE FUNCTION ebox_btree_le(ebox, ebox)
jbe@16 133 RETURNS boolean
jbe@16 134 LANGUAGE C IMMUTABLE STRICT
jbe@16 135 AS '$libdir/latlon-v0004', 'pgl_btree_ebox_le';
jbe@16 136
jbe@16 137 CREATE OR REPLACE FUNCTION ebox_btree_eq(ebox, ebox)
jbe@16 138 RETURNS boolean
jbe@16 139 LANGUAGE C IMMUTABLE STRICT
jbe@16 140 AS '$libdir/latlon-v0004', 'pgl_btree_ebox_eq';
jbe@16 141
jbe@16 142 CREATE OR REPLACE FUNCTION ebox_btree_ne(ebox, ebox)
jbe@16 143 RETURNS boolean
jbe@16 144 LANGUAGE C IMMUTABLE STRICT
jbe@16 145 AS '$libdir/latlon-v0004', 'pgl_btree_ebox_ne';
jbe@16 146
jbe@16 147 CREATE OR REPLACE FUNCTION ebox_btree_ge(ebox, ebox)
jbe@16 148 RETURNS boolean
jbe@16 149 LANGUAGE C IMMUTABLE STRICT
jbe@16 150 AS '$libdir/latlon-v0004', 'pgl_btree_ebox_ge';
jbe@16 151
jbe@16 152 CREATE OR REPLACE FUNCTION ebox_btree_gt(ebox, ebox)
jbe@16 153 RETURNS boolean
jbe@16 154 LANGUAGE C IMMUTABLE STRICT
jbe@16 155 AS '$libdir/latlon-v0004', 'pgl_btree_ebox_gt';
jbe@16 156
jbe@16 157 CREATE OR REPLACE FUNCTION ebox_btree_cmp(ebox, ebox)
jbe@16 158 RETURNS int4
jbe@16 159 LANGUAGE C IMMUTABLE STRICT
jbe@16 160 AS '$libdir/latlon-v0004', 'pgl_btree_ebox_cmp';
jbe@16 161
jbe@16 162 CREATE OR REPLACE FUNCTION ecircle_btree_lt(ecircle, ecircle)
jbe@16 163 RETURNS boolean
jbe@16 164 LANGUAGE C IMMUTABLE STRICT
jbe@16 165 AS '$libdir/latlon-v0004', 'pgl_btree_ecircle_lt';
jbe@16 166
jbe@16 167 CREATE OR REPLACE FUNCTION ecircle_btree_le(ecircle, ecircle)
jbe@16 168 RETURNS boolean
jbe@16 169 LANGUAGE C IMMUTABLE STRICT
jbe@16 170 AS '$libdir/latlon-v0004', 'pgl_btree_ecircle_le';
jbe@16 171
jbe@16 172 CREATE OR REPLACE FUNCTION ecircle_btree_eq(ecircle, ecircle)
jbe@16 173 RETURNS boolean
jbe@16 174 LANGUAGE C IMMUTABLE STRICT
jbe@16 175 AS '$libdir/latlon-v0004', 'pgl_btree_ecircle_eq';
jbe@16 176
jbe@16 177 CREATE OR REPLACE FUNCTION ecircle_btree_ne(ecircle, ecircle)
jbe@16 178 RETURNS boolean
jbe@16 179 LANGUAGE C IMMUTABLE STRICT
jbe@16 180 AS '$libdir/latlon-v0004', 'pgl_btree_ecircle_ne';
jbe@16 181
jbe@16 182 CREATE OR REPLACE FUNCTION ecircle_btree_ge(ecircle, ecircle)
jbe@16 183 RETURNS boolean
jbe@16 184 LANGUAGE C IMMUTABLE STRICT
jbe@16 185 AS '$libdir/latlon-v0004', 'pgl_btree_ecircle_ge';
jbe@16 186
jbe@16 187 CREATE OR REPLACE FUNCTION ecircle_btree_gt(ecircle, ecircle)
jbe@16 188 RETURNS boolean
jbe@16 189 LANGUAGE C IMMUTABLE STRICT
jbe@16 190 AS '$libdir/latlon-v0004', 'pgl_btree_ecircle_gt';
jbe@16 191
jbe@16 192 CREATE OR REPLACE FUNCTION ecircle_btree_cmp(ecircle, ecircle)
jbe@16 193 RETURNS int4
jbe@16 194 LANGUAGE C IMMUTABLE STRICT
jbe@16 195 AS '$libdir/latlon-v0004', 'pgl_btree_ecircle_cmp';
jbe@16 196
jbe@16 197 CREATE OR REPLACE FUNCTION cast_epoint_to_ebox(epoint)
jbe@16 198 RETURNS ebox
jbe@16 199 LANGUAGE C IMMUTABLE STRICT
jbe@16 200 AS '$libdir/latlon-v0004', 'pgl_epoint_to_ebox';
jbe@16 201
jbe@16 202 CREATE OR REPLACE FUNCTION cast_epoint_to_ecircle(epoint)
jbe@16 203 RETURNS ecircle
jbe@16 204 LANGUAGE C IMMUTABLE STRICT
jbe@16 205 AS '$libdir/latlon-v0004', 'pgl_epoint_to_ecircle';
jbe@16 206
jbe@16 207 CREATE OR REPLACE FUNCTION cast_epoint_to_ecluster(epoint)
jbe@16 208 RETURNS ecluster
jbe@16 209 LANGUAGE C IMMUTABLE STRICT
jbe@16 210 AS '$libdir/latlon-v0004', 'pgl_epoint_to_ecluster';
jbe@16 211
jbe@16 212 CREATE OR REPLACE FUNCTION cast_ebox_to_ecluster(ebox)
jbe@16 213 RETURNS ecluster
jbe@16 214 LANGUAGE C IMMUTABLE STRICT
jbe@16 215 AS '$libdir/latlon-v0004', 'pgl_ebox_to_ecluster';
jbe@16 216
jbe@16 217 CREATE OR REPLACE FUNCTION epoint(float8, float8)
jbe@16 218 RETURNS epoint
jbe@16 219 LANGUAGE C IMMUTABLE STRICT
jbe@16 220 AS '$libdir/latlon-v0004', 'pgl_create_epoint';
jbe@16 221
jbe@16 222 CREATE OR REPLACE FUNCTION empty_ebox()
jbe@16 223 RETURNS ebox
jbe@16 224 LANGUAGE C IMMUTABLE STRICT
jbe@16 225 AS '$libdir/latlon-v0004', 'pgl_create_empty_ebox';
jbe@16 226
jbe@16 227 CREATE OR REPLACE FUNCTION ebox(float8, float8, float8, float8)
jbe@16 228 RETURNS ebox
jbe@16 229 LANGUAGE C IMMUTABLE STRICT
jbe@16 230 AS '$libdir/latlon-v0004', 'pgl_create_ebox';
jbe@16 231
jbe@16 232 CREATE OR REPLACE FUNCTION ebox(epoint, epoint)
jbe@16 233 RETURNS ebox
jbe@16 234 LANGUAGE C IMMUTABLE STRICT
jbe@16 235 AS '$libdir/latlon-v0004', 'pgl_create_ebox_from_epoints';
jbe@16 236
jbe@16 237 CREATE OR REPLACE FUNCTION ecircle(float8, float8, float8)
jbe@16 238 RETURNS ecircle
jbe@16 239 LANGUAGE C IMMUTABLE STRICT
jbe@16 240 AS '$libdir/latlon-v0004', 'pgl_create_ecircle';
jbe@16 241
jbe@16 242 CREATE OR REPLACE FUNCTION ecircle(epoint, float8)
jbe@16 243 RETURNS ecircle
jbe@16 244 LANGUAGE C IMMUTABLE STRICT
jbe@16 245 AS '$libdir/latlon-v0004', 'pgl_create_ecircle_from_epoint';
jbe@16 246
jbe@16 247 CREATE OR REPLACE FUNCTION latitude(epoint)
jbe@16 248 RETURNS float8
jbe@16 249 LANGUAGE C IMMUTABLE STRICT
jbe@16 250 AS '$libdir/latlon-v0004', 'pgl_epoint_lat';
jbe@16 251
jbe@16 252 CREATE OR REPLACE FUNCTION longitude(epoint)
jbe@16 253 RETURNS float8
jbe@16 254 LANGUAGE C IMMUTABLE STRICT
jbe@16 255 AS '$libdir/latlon-v0004', 'pgl_epoint_lon';
jbe@16 256
jbe@16 257 CREATE OR REPLACE FUNCTION min_latitude(ebox)
jbe@16 258 RETURNS float8
jbe@16 259 LANGUAGE C IMMUTABLE STRICT
jbe@16 260 AS '$libdir/latlon-v0004', 'pgl_ebox_lat_min';
jbe@16 261
jbe@16 262 CREATE OR REPLACE FUNCTION max_latitude(ebox)
jbe@16 263 RETURNS float8
jbe@16 264 LANGUAGE C IMMUTABLE STRICT
jbe@16 265 AS '$libdir/latlon-v0004', 'pgl_ebox_lat_max';
jbe@16 266
jbe@16 267 CREATE OR REPLACE FUNCTION min_longitude(ebox)
jbe@16 268 RETURNS float8
jbe@16 269 LANGUAGE C IMMUTABLE STRICT
jbe@16 270 AS '$libdir/latlon-v0004', 'pgl_ebox_lon_min';
jbe@16 271
jbe@16 272 CREATE OR REPLACE FUNCTION max_longitude(ebox)
jbe@16 273 RETURNS float8
jbe@16 274 LANGUAGE C IMMUTABLE STRICT
jbe@16 275 AS '$libdir/latlon-v0004', 'pgl_ebox_lon_max';
jbe@16 276
jbe@16 277 CREATE OR REPLACE FUNCTION center(ecircle)
jbe@16 278 RETURNS epoint
jbe@16 279 LANGUAGE C IMMUTABLE STRICT
jbe@16 280 AS '$libdir/latlon-v0004', 'pgl_ecircle_center';
jbe@16 281
jbe@16 282 CREATE OR REPLACE FUNCTION radius(ecircle)
jbe@16 283 RETURNS float8
jbe@16 284 LANGUAGE C IMMUTABLE STRICT
jbe@16 285 AS '$libdir/latlon-v0004', 'pgl_ecircle_radius';
jbe@16 286
jbe@16 287 CREATE OR REPLACE FUNCTION epoint_ebox_overlap_proc(epoint, ebox)
jbe@16 288 RETURNS boolean
jbe@16 289 LANGUAGE C IMMUTABLE STRICT
jbe@16 290 AS '$libdir/latlon-v0004', 'pgl_epoint_ebox_overlap';
jbe@16 291
jbe@16 292 CREATE OR REPLACE FUNCTION epoint_ecircle_overlap_proc(epoint, ecircle)
jbe@16 293 RETURNS boolean
jbe@16 294 LANGUAGE C IMMUTABLE STRICT
jbe@16 295 AS '$libdir/latlon-v0004', 'pgl_epoint_ecircle_overlap';
jbe@16 296
jbe@16 297 CREATE OR REPLACE FUNCTION epoint_ecluster_overlap_proc(epoint, ecluster)
jbe@16 298 RETURNS boolean
jbe@16 299 LANGUAGE C IMMUTABLE STRICT
jbe@16 300 AS '$libdir/latlon-v0004', 'pgl_epoint_ecluster_overlap';
jbe@16 301
jbe@16 302 CREATE OR REPLACE FUNCTION epoint_ecluster_may_overlap_proc(epoint, ecluster)
jbe@16 303 RETURNS boolean
jbe@16 304 LANGUAGE C IMMUTABLE STRICT
jbe@16 305 AS '$libdir/latlon-v0004', 'pgl_epoint_ecluster_may_overlap';
jbe@16 306
jbe@16 307 CREATE OR REPLACE FUNCTION ebox_overlap_proc(ebox, ebox)
jbe@16 308 RETURNS boolean
jbe@16 309 LANGUAGE C IMMUTABLE STRICT
jbe@16 310 AS '$libdir/latlon-v0004', 'pgl_ebox_overlap';
jbe@16 311
jbe@16 312 CREATE OR REPLACE FUNCTION ebox_ecircle_may_overlap_proc(ebox, ecircle)
jbe@16 313 RETURNS boolean
jbe@16 314 LANGUAGE C IMMUTABLE STRICT
jbe@16 315 AS '$libdir/latlon-v0004', 'pgl_ebox_ecircle_may_overlap';
jbe@16 316
jbe@16 317 CREATE OR REPLACE FUNCTION ebox_ecluster_may_overlap_proc(ebox, ecluster)
jbe@16 318 RETURNS boolean
jbe@16 319 LANGUAGE C IMMUTABLE STRICT
jbe@16 320 AS '$libdir/latlon-v0004', 'pgl_ebox_ecluster_may_overlap';
jbe@16 321
jbe@16 322 CREATE OR REPLACE FUNCTION ecircle_overlap_proc(ecircle, ecircle)
jbe@16 323 RETURNS boolean
jbe@16 324 LANGUAGE C IMMUTABLE STRICT
jbe@16 325 AS '$libdir/latlon-v0004', 'pgl_ecircle_overlap';
jbe@16 326
jbe@16 327 CREATE OR REPLACE FUNCTION ecircle_ecluster_overlap_proc(ecircle, ecluster)
jbe@16 328 RETURNS boolean
jbe@16 329 LANGUAGE C IMMUTABLE STRICT
jbe@16 330 AS '$libdir/latlon-v0004', 'pgl_ecircle_ecluster_overlap';
jbe@16 331
jbe@16 332 CREATE OR REPLACE FUNCTION ecircle_ecluster_may_overlap_proc(ecircle, ecluster)
jbe@16 333 RETURNS boolean
jbe@16 334 LANGUAGE C IMMUTABLE STRICT
jbe@16 335 AS '$libdir/latlon-v0004', 'pgl_ecircle_ecluster_may_overlap';
jbe@16 336
jbe@16 337 CREATE FUNCTION ecluster_overlap_proc(ecluster, ecluster)
jbe@16 338 RETURNS boolean
jbe@16 339 LANGUAGE C IMMUTABLE STRICT
jbe@16 340 AS '$libdir/latlon-v0004', 'pgl_ecluster_overlap';
jbe@16 341
jbe@16 342 CREATE OR REPLACE FUNCTION ecluster_may_overlap_proc(ecluster, ecluster)
jbe@16 343 RETURNS boolean
jbe@16 344 LANGUAGE C IMMUTABLE STRICT
jbe@16 345 AS '$libdir/latlon-v0004', 'pgl_ecluster_may_overlap';
jbe@16 346
jbe@16 347 CREATE FUNCTION ecluster_contains_proc(ecluster, ecluster)
jbe@16 348 RETURNS boolean
jbe@16 349 LANGUAGE C IMMUTABLE STRICT
jbe@16 350 AS '$libdir/latlon-v0004', 'pgl_ecluster_contains';
jbe@16 351
jbe@16 352 CREATE OR REPLACE FUNCTION epoint_distance_proc(epoint, epoint)
jbe@16 353 RETURNS float8
jbe@16 354 LANGUAGE C IMMUTABLE STRICT
jbe@16 355 AS '$libdir/latlon-v0004', 'pgl_epoint_distance';
jbe@16 356
jbe@16 357 CREATE OR REPLACE FUNCTION epoint_ecircle_distance_proc(epoint, ecircle)
jbe@16 358 RETURNS float8
jbe@16 359 LANGUAGE C IMMUTABLE STRICT
jbe@16 360 AS '$libdir/latlon-v0004', 'pgl_epoint_ecircle_distance';
jbe@16 361
jbe@16 362 CREATE OR REPLACE FUNCTION epoint_ecluster_distance_proc(epoint, ecluster)
jbe@16 363 RETURNS float8
jbe@16 364 LANGUAGE C IMMUTABLE STRICT
jbe@16 365 AS '$libdir/latlon-v0004', 'pgl_epoint_ecluster_distance';
jbe@16 366
jbe@16 367 CREATE OR REPLACE FUNCTION ecircle_distance_proc(ecircle, ecircle)
jbe@16 368 RETURNS float8
jbe@16 369 LANGUAGE C IMMUTABLE STRICT
jbe@16 370 AS '$libdir/latlon-v0004', 'pgl_ecircle_distance';
jbe@16 371
jbe@16 372 CREATE OR REPLACE FUNCTION ecircle_ecluster_distance_proc(ecircle, ecluster)
jbe@16 373 RETURNS float8
jbe@16 374 LANGUAGE C IMMUTABLE STRICT
jbe@16 375 AS '$libdir/latlon-v0004', 'pgl_ecircle_ecluster_distance';
jbe@16 376
jbe@16 377 CREATE FUNCTION ecluster_distance_proc(ecluster, ecluster)
jbe@16 378 RETURNS float8
jbe@16 379 LANGUAGE C IMMUTABLE STRICT
jbe@16 380 AS '$libdir/latlon-v0004', 'pgl_ecluster_distance';
jbe@16 381
jbe@16 382 CREATE OPERATOR && (
jbe@16 383 leftarg = ecluster,
jbe@16 384 rightarg = ecluster,
jbe@16 385 procedure = ecluster_overlap_proc,
jbe@16 386 commutator = &&,
jbe@16 387 restrict = areasel,
jbe@16 388 join = areajoinsel
jbe@16 389 );
jbe@16 390
jbe@16 391 CREATE FUNCTION ebox_ecircle_overlap_castwrap(ebox, ecircle)
jbe@16 392 RETURNS boolean
jbe@16 393 LANGUAGE sql IMMUTABLE AS 'SELECT $1::ecluster && $2';
jbe@16 394
jbe@16 395 CREATE OPERATOR && (
jbe@16 396 leftarg = ebox,
jbe@16 397 rightarg = ecircle,
jbe@16 398 procedure = ebox_ecircle_overlap_castwrap,
jbe@16 399 commutator = &&,
jbe@16 400 restrict = areasel,
jbe@16 401 join = areajoinsel
jbe@16 402 );
jbe@16 403
jbe@16 404 CREATE FUNCTION ebox_ecircle_overlap_castwrap(ecircle, ebox)
jbe@16 405 RETURNS boolean
jbe@16 406 LANGUAGE sql IMMUTABLE AS 'SELECT $1 && $2::ecluster';
jbe@16 407
jbe@16 408 CREATE OPERATOR && (
jbe@16 409 leftarg = ecircle,
jbe@16 410 rightarg = ebox,
jbe@16 411 procedure = ebox_ecircle_overlap_castwrap,
jbe@16 412 commutator = &&,
jbe@16 413 restrict = areasel,
jbe@16 414 join = areajoinsel
jbe@16 415 );
jbe@16 416
jbe@16 417 CREATE FUNCTION ebox_ecluster_overlap_castwrap(ebox, ecluster)
jbe@16 418 RETURNS boolean
jbe@16 419 LANGUAGE sql IMMUTABLE AS 'SELECT $1::ecluster && $2';
jbe@16 420
jbe@16 421 CREATE OPERATOR && (
jbe@16 422 leftarg = ebox,
jbe@16 423 rightarg = ecluster,
jbe@16 424 procedure = ebox_ecluster_overlap_castwrap,
jbe@16 425 commutator = &&,
jbe@16 426 restrict = areasel,
jbe@16 427 join = areajoinsel
jbe@16 428 );
jbe@16 429
jbe@16 430 CREATE FUNCTION ebox_ecluster_overlap_castwrap(ecluster, ebox)
jbe@16 431 RETURNS boolean
jbe@16 432 LANGUAGE sql IMMUTABLE AS 'SELECT $1 && $2::ecluster';
jbe@16 433
jbe@16 434 CREATE OPERATOR && (
jbe@16 435 leftarg = ecluster,
jbe@16 436 rightarg = ebox,
jbe@16 437 procedure = ebox_ecluster_overlap_castwrap,
jbe@16 438 commutator = &&,
jbe@16 439 restrict = areasel,
jbe@16 440 join = areajoinsel
jbe@16 441 );
jbe@16 442
jbe@16 443
jbe@16 444 CREATE OPERATOR @> (
jbe@16 445 leftarg = ebox,
jbe@16 446 rightarg = epoint,
jbe@16 447 procedure = epoint_ebox_overlap_commutator,
jbe@16 448 commutator = <@,
jbe@16 449 restrict = areasel,
jbe@16 450 join = areajoinsel
jbe@16 451 );
jbe@16 452
jbe@16 453 CREATE OPERATOR <@ (
jbe@16 454 leftarg = epoint,
jbe@16 455 rightarg = ebox,
jbe@16 456 procedure = epoint_ebox_overlap_proc,
jbe@16 457 commutator = @>,
jbe@16 458 restrict = areasel,
jbe@16 459 join = areajoinsel
jbe@16 460 );
jbe@16 461
jbe@16 462 CREATE OPERATOR @> (
jbe@16 463 leftarg = ecluster,
jbe@16 464 rightarg = epoint,
jbe@16 465 procedure = epoint_ecluster_overlap_commutator,
jbe@16 466 commutator = <@,
jbe@16 467 restrict = areasel,
jbe@16 468 join = areajoinsel
jbe@16 469 );
jbe@16 470
jbe@16 471 CREATE OPERATOR <@ (
jbe@16 472 leftarg = epoint,
jbe@16 473 rightarg = ecluster,
jbe@16 474 procedure = epoint_ecluster_overlap_proc,
jbe@16 475 commutator = <@,
jbe@16 476 restrict = areasel,
jbe@16 477 join = areajoinsel
jbe@16 478 );
jbe@16 479
jbe@16 480 CREATE OPERATOR @> (
jbe@16 481 leftarg = ecluster,
jbe@16 482 rightarg = ecluster,
jbe@16 483 procedure = ecluster_contains_proc,
jbe@16 484 commutator = <@,
jbe@16 485 restrict = areasel,
jbe@16 486 join = areajoinsel
jbe@16 487 );
jbe@16 488
jbe@16 489 CREATE FUNCTION ecluster_contains_commutator(ecluster, ecluster)
jbe@16 490 RETURNS boolean
jbe@16 491 LANGUAGE sql IMMUTABLE AS 'SELECT $2 @> $1';
jbe@16 492
jbe@16 493 CREATE OPERATOR <@ (
jbe@16 494 leftarg = ecluster,
jbe@16 495 rightarg = ecluster,
jbe@16 496 procedure = ecluster_contains_commutator,
jbe@16 497 commutator = @>,
jbe@16 498 restrict = areasel,
jbe@16 499 join = areajoinsel
jbe@16 500 );
jbe@16 501
jbe@16 502 CREATE FUNCTION ebox_ecluster_contains_castwrap(ebox, ecluster)
jbe@16 503 RETURNS boolean
jbe@16 504 LANGUAGE sql IMMUTABLE AS 'SELECT $1::ecluster @> $2';
jbe@16 505
jbe@16 506 CREATE OPERATOR @> (
jbe@16 507 leftarg = ebox,
jbe@16 508 rightarg = ecluster,
jbe@16 509 procedure = ebox_ecluster_contains_castwrap,
jbe@16 510 commutator = <@,
jbe@16 511 restrict = areasel,
jbe@16 512 join = areajoinsel
jbe@16 513 );
jbe@16 514
jbe@16 515 CREATE FUNCTION ebox_ecluster_contains_castwrap(ecluster, ebox)
jbe@16 516 RETURNS boolean
jbe@16 517 LANGUAGE sql IMMUTABLE AS 'SELECT $2::ecluster @> $1';
jbe@16 518
jbe@16 519 CREATE OPERATOR <@ (
jbe@16 520 leftarg = ecluster,
jbe@16 521 rightarg = ebox,
jbe@16 522 procedure = ebox_ecluster_contains_castwrap,
jbe@16 523 commutator = @>,
jbe@16 524 restrict = areasel,
jbe@16 525 join = areajoinsel
jbe@16 526 );
jbe@16 527
jbe@16 528 CREATE FUNCTION ecluster_ebox_contains_castwrap(ecluster, ebox)
jbe@16 529 RETURNS boolean
jbe@16 530 LANGUAGE sql IMMUTABLE AS 'SELECT $1 @> $2::ecluster';
jbe@16 531
jbe@16 532 CREATE OPERATOR @> (
jbe@16 533 leftarg = ecluster,
jbe@16 534 rightarg = ebox,
jbe@16 535 procedure = ecluster_ebox_contains_castwrap,
jbe@16 536 commutator = <@,
jbe@16 537 restrict = areasel,
jbe@16 538 join = areajoinsel
jbe@16 539 );
jbe@16 540
jbe@16 541 CREATE FUNCTION ecluster_ebox_contains_castwrap(ebox, ecluster)
jbe@16 542 RETURNS boolean
jbe@16 543 LANGUAGE sql IMMUTABLE AS 'SELECT $2 @> $1::ecluster';
jbe@16 544
jbe@16 545 CREATE OPERATOR <@ (
jbe@16 546 leftarg = ebox,
jbe@16 547 rightarg = ecluster,
jbe@16 548 procedure = ecluster_ebox_contains_castwrap,
jbe@16 549 commutator = @>,
jbe@16 550 restrict = areasel,
jbe@16 551 join = areajoinsel
jbe@16 552 );
jbe@16 553
jbe@16 554
jbe@16 555 CREATE OPERATOR <-> (
jbe@16 556 leftarg = ecluster,
jbe@16 557 rightarg = ecluster,
jbe@16 558 procedure = ecluster_distance_proc,
jbe@16 559 commutator = <->
jbe@16 560 );
jbe@16 561
jbe@16 562 CREATE FUNCTION epoint_ebox_distance_castwrap(epoint, ebox)
jbe@16 563 RETURNS float8
jbe@16 564 LANGUAGE sql IMMUTABLE AS 'SELECT $1 <-> $2::ecluster';
jbe@16 565
jbe@16 566 CREATE OPERATOR <-> (
jbe@16 567 leftarg = epoint,
jbe@16 568 rightarg = ebox,
jbe@16 569 procedure = epoint_ebox_distance_castwrap,
jbe@16 570 commutator = <->
jbe@16 571 );
jbe@16 572
jbe@16 573 CREATE FUNCTION epoint_ebox_distance_castwrap(ebox, epoint)
jbe@16 574 RETURNS float8
jbe@16 575 LANGUAGE sql IMMUTABLE AS 'SELECT $1::ecluster <-> $2';
jbe@16 576
jbe@16 577 CREATE OPERATOR <-> (
jbe@16 578 leftarg = ebox,
jbe@16 579 rightarg = epoint,
jbe@16 580 procedure = epoint_ebox_distance_castwrap,
jbe@16 581 commutator = <->
jbe@16 582 );
jbe@16 583
jbe@16 584 CREATE FUNCTION ebox_distance_castwrap(ebox, ebox)
jbe@16 585 RETURNS float8
jbe@16 586 LANGUAGE sql IMMUTABLE AS 'SELECT $1::ecluster <-> $2::ecluster';
jbe@16 587
jbe@16 588 CREATE OPERATOR <-> (
jbe@16 589 leftarg = ebox,
jbe@16 590 rightarg = ebox,
jbe@16 591 procedure = ebox_distance_castwrap,
jbe@16 592 commutator = <->
jbe@16 593 );
jbe@16 594
jbe@16 595 CREATE FUNCTION ebox_ecircle_distance_castwrap(ebox, ecircle)
jbe@16 596 RETURNS float8
jbe@16 597 LANGUAGE sql IMMUTABLE AS 'SELECT $1::ecluster <-> $2';
jbe@16 598
jbe@16 599 CREATE OPERATOR <-> (
jbe@16 600 leftarg = ebox,
jbe@16 601 rightarg = ecircle,
jbe@16 602 procedure = ebox_ecircle_distance_castwrap,
jbe@16 603 commutator = <->
jbe@16 604 );
jbe@16 605
jbe@16 606 CREATE FUNCTION ebox_ecircle_distance_castwrap(ecircle, ebox)
jbe@16 607 RETURNS float8
jbe@16 608 LANGUAGE sql IMMUTABLE AS 'SELECT $1 <-> $2::ecluster';
jbe@16 609
jbe@16 610 CREATE OPERATOR <-> (
jbe@16 611 leftarg = ecircle,
jbe@16 612 rightarg = ebox,
jbe@16 613 procedure = ebox_ecircle_distance_castwrap,
jbe@16 614 commutator = <->
jbe@16 615 );
jbe@16 616
jbe@16 617 CREATE FUNCTION ebox_ecluster_distance_castwrap(ebox, ecluster)
jbe@16 618 RETURNS float8
jbe@16 619 LANGUAGE sql IMMUTABLE AS 'SELECT $1::ecluster <-> $2';
jbe@16 620
jbe@16 621 CREATE OPERATOR <-> (
jbe@16 622 leftarg = ebox,
jbe@16 623 rightarg = ecluster,
jbe@16 624 procedure = ebox_ecluster_distance_castwrap,
jbe@16 625 commutator = <->
jbe@16 626 );
jbe@16 627
jbe@16 628 CREATE FUNCTION ebox_ecluster_distance_castwrap(ecluster, ebox)
jbe@16 629 RETURNS float8
jbe@16 630 LANGUAGE sql IMMUTABLE AS 'SELECT $1 <-> $2::ecluster';
jbe@16 631
jbe@16 632 CREATE OPERATOR <-> (
jbe@16 633 leftarg = ecluster,
jbe@16 634 rightarg = ebox,
jbe@16 635 procedure = ebox_ecluster_distance_castwrap,
jbe@16 636 commutator = <->
jbe@16 637 );
jbe@16 638
jbe@16 639 DROP OPERATOR CLASS epoint_ops USING gist;
jbe@16 640 DROP OPERATOR CLASS ecircle_ops USING gist;
jbe@16 641 DROP OPERATOR CLASS ecluster_ops USING gist;
jbe@16 642
jbe@16 643 CREATE OR REPLACE FUNCTION pgl_gist_consistent(internal, internal, smallint, oid, internal)
jbe@16 644 RETURNS boolean
jbe@16 645 LANGUAGE C STRICT
jbe@16 646 AS '$libdir/latlon-v0004', 'pgl_gist_consistent';
jbe@16 647
jbe@16 648 CREATE OR REPLACE FUNCTION pgl_gist_union(internal, internal)
jbe@16 649 RETURNS internal
jbe@16 650 LANGUAGE C STRICT
jbe@16 651 AS '$libdir/latlon-v0004', 'pgl_gist_union';
jbe@16 652
jbe@16 653 CREATE OR REPLACE FUNCTION pgl_gist_compress_epoint(internal)
jbe@16 654 RETURNS internal
jbe@16 655 LANGUAGE C STRICT
jbe@16 656 AS '$libdir/latlon-v0004', 'pgl_gist_compress_epoint';
jbe@16 657
jbe@16 658 CREATE OR REPLACE FUNCTION pgl_gist_compress_ecircle(internal)
jbe@16 659 RETURNS internal
jbe@16 660 LANGUAGE C STRICT
jbe@16 661 AS '$libdir/latlon-v0004', 'pgl_gist_compress_ecircle';
jbe@16 662
jbe@16 663 CREATE OR REPLACE FUNCTION pgl_gist_compress_ecluster(internal)
jbe@16 664 RETURNS internal
jbe@16 665 LANGUAGE C STRICT
jbe@16 666 AS '$libdir/latlon-v0004', 'pgl_gist_compress_ecluster';
jbe@16 667
jbe@16 668 CREATE OR REPLACE FUNCTION pgl_gist_decompress(internal)
jbe@16 669 RETURNS internal
jbe@16 670 LANGUAGE C STRICT
jbe@16 671 AS '$libdir/latlon-v0004', 'pgl_gist_decompress';
jbe@16 672
jbe@16 673 CREATE OR REPLACE FUNCTION pgl_gist_penalty(internal, internal, internal)
jbe@16 674 RETURNS internal
jbe@16 675 LANGUAGE C STRICT
jbe@16 676 AS '$libdir/latlon-v0004', 'pgl_gist_penalty';
jbe@16 677
jbe@16 678 CREATE OR REPLACE FUNCTION pgl_gist_picksplit(internal, internal)
jbe@16 679 RETURNS internal
jbe@16 680 LANGUAGE C STRICT
jbe@16 681 AS '$libdir/latlon-v0004', 'pgl_gist_picksplit';
jbe@16 682
jbe@16 683 CREATE OR REPLACE FUNCTION pgl_gist_same(internal, internal, internal)
jbe@16 684 RETURNS internal
jbe@16 685 LANGUAGE C STRICT
jbe@16 686 AS '$libdir/latlon-v0004', 'pgl_gist_same';
jbe@16 687
jbe@16 688 CREATE OR REPLACE FUNCTION pgl_gist_distance(internal, internal, smallint, oid)
jbe@16 689 RETURNS internal
jbe@16 690 LANGUAGE C STRICT
jbe@16 691 AS '$libdir/latlon-v0004', 'pgl_gist_distance';
jbe@16 692
jbe@16 693 CREATE OPERATOR CLASS epoint_ops
jbe@16 694 DEFAULT FOR TYPE epoint USING gist AS
jbe@16 695 OPERATOR 11 = ,
jbe@16 696 OPERATOR 22 && (epoint, ebox),
jbe@16 697 OPERATOR 222 <@ (epoint, ebox),
jbe@16 698 OPERATOR 23 && (epoint, ecircle),
jbe@16 699 OPERATOR 24 && (epoint, ecluster),
jbe@16 700 OPERATOR 124 &&+ (epoint, ecluster),
jbe@16 701 OPERATOR 224 <@ (epoint, ecluster),
jbe@16 702 OPERATOR 31 <-> (epoint, epoint) FOR ORDER BY float_ops,
jbe@16 703 OPERATOR 32 <-> (epoint, ebox) FOR ORDER BY float_ops,
jbe@16 704 OPERATOR 33 <-> (epoint, ecircle) FOR ORDER BY float_ops,
jbe@16 705 OPERATOR 34 <-> (epoint, ecluster) FOR ORDER BY float_ops,
jbe@16 706 FUNCTION 1 pgl_gist_consistent(internal, internal, smallint, oid, internal),
jbe@16 707 FUNCTION 2 pgl_gist_union(internal, internal),
jbe@16 708 FUNCTION 3 pgl_gist_compress_epoint(internal),
jbe@16 709 FUNCTION 4 pgl_gist_decompress(internal),
jbe@16 710 FUNCTION 5 pgl_gist_penalty(internal, internal, internal),
jbe@16 711 FUNCTION 6 pgl_gist_picksplit(internal, internal),
jbe@16 712 FUNCTION 7 pgl_gist_same(internal, internal, internal),
jbe@16 713 FUNCTION 8 pgl_gist_distance(internal, internal, smallint, oid),
jbe@16 714 STORAGE ekey_point;
jbe@16 715
jbe@16 716 CREATE OPERATOR CLASS ecircle_ops
jbe@16 717 DEFAULT FOR TYPE ecircle USING gist AS
jbe@16 718 OPERATOR 13 = ,
jbe@16 719 OPERATOR 21 && (ecircle, epoint),
jbe@16 720 OPERATOR 22 && (ecircle, ebox),
jbe@16 721 OPERATOR 122 &&+ (ecircle, ebox),
jbe@16 722 OPERATOR 23 && (ecircle, ecircle),
jbe@16 723 OPERATOR 24 && (ecircle, ecluster),
jbe@16 724 OPERATOR 124 &&+ (ecircle, ecluster),
jbe@16 725 OPERATOR 31 <-> (ecircle, epoint) FOR ORDER BY float_ops,
jbe@16 726 OPERATOR 32 <-> (ecircle, ebox) FOR ORDER BY float_ops,
jbe@16 727 OPERATOR 33 <-> (ecircle, ecircle) FOR ORDER BY float_ops,
jbe@16 728 OPERATOR 34 <-> (ecircle, ecluster) FOR ORDER BY float_ops,
jbe@16 729 FUNCTION 1 pgl_gist_consistent(internal, internal, smallint, oid, internal),
jbe@16 730 FUNCTION 2 pgl_gist_union(internal, internal),
jbe@16 731 FUNCTION 3 pgl_gist_compress_ecircle(internal),
jbe@16 732 FUNCTION 4 pgl_gist_decompress(internal),
jbe@16 733 FUNCTION 5 pgl_gist_penalty(internal, internal, internal),
jbe@16 734 FUNCTION 6 pgl_gist_picksplit(internal, internal),
jbe@16 735 FUNCTION 7 pgl_gist_same(internal, internal, internal),
jbe@16 736 FUNCTION 8 pgl_gist_distance(internal, internal, smallint, oid),
jbe@16 737 STORAGE ekey_area;
jbe@16 738
jbe@16 739 CREATE OPERATOR CLASS ecluster_ops
jbe@16 740 DEFAULT FOR TYPE ecluster USING gist AS
jbe@16 741 OPERATOR 21 && (ecluster, epoint),
jbe@16 742 OPERATOR 121 &&+ (ecluster, epoint),
jbe@16 743 OPERATOR 221 @> (ecluster, epoint),
jbe@16 744 OPERATOR 22 && (ecluster, ebox),
jbe@16 745 OPERATOR 122 &&+ (ecluster, ebox),
jbe@16 746 OPERATOR 222 @> (ecluster, ebox),
jbe@16 747 OPERATOR 322 <@ (ecluster, ebox),
jbe@16 748 OPERATOR 23 && (ecluster, ecircle),
jbe@16 749 OPERATOR 123 &&+ (ecluster, ecircle),
jbe@16 750 OPERATOR 24 && (ecluster, ecluster),
jbe@16 751 OPERATOR 124 &&+ (ecluster, ecluster),
jbe@16 752 OPERATOR 224 @> (ecluster, ecluster),
jbe@16 753 OPERATOR 324 <@ (ecluster, ecluster),
jbe@16 754 OPERATOR 31 <-> (ecluster, epoint) FOR ORDER BY float_ops,
jbe@16 755 OPERATOR 32 <-> (ecluster, ebox) FOR ORDER BY float_ops,
jbe@16 756 OPERATOR 33 <-> (ecluster, ecircle) FOR ORDER BY float_ops,
jbe@16 757 OPERATOR 34 <-> (ecluster, ecluster) FOR ORDER BY float_ops,
jbe@16 758 FUNCTION 1 pgl_gist_consistent(internal, internal, smallint, oid, internal),
jbe@16 759 FUNCTION 2 pgl_gist_union(internal, internal),
jbe@16 760 FUNCTION 3 pgl_gist_compress_ecluster(internal),
jbe@16 761 FUNCTION 4 pgl_gist_decompress(internal),
jbe@16 762 FUNCTION 5 pgl_gist_penalty(internal, internal, internal),
jbe@16 763 FUNCTION 6 pgl_gist_picksplit(internal, internal),
jbe@16 764 FUNCTION 7 pgl_gist_same(internal, internal, internal),
jbe@16 765 FUNCTION 8 pgl_gist_distance(internal, internal, smallint, oid),
jbe@16 766 STORAGE ekey_area;
jbe@16 767

Impressum / About Us