- Notifications
You must be signed in to change notification settings - Fork5
Commitc66e4f1
committed
Improve GiST range-contained-by searches by adding a flag for empty ranges.
In the original implementation, a range-contained-by search had to scanthe entire index because an empty range could be lurking anywhere.Improve that by adding a flag to upper GiST entries that says whether therepresented subtree contains any empty ranges.Also, make a simple mod to the penalty function to discourage empty rangesfrom getting pushed into subtrees without any. This needs more work, andthe picksplit function should be taught about it too, but that code can beimproved without causing an on-disk compatibility break; so we'll leave itfor another day.Since we're breaking on-disk compatibility of range values anyway, I tookthe opportunity to reorganize the range flags bits; the unusedRANGE_xB_NULL bits are now adjacent, which might open the door for usingthem in some other way later.In passing, remove the GiST range opclass entry for <>, which doesn't seemlike it can really be indexed usefully.Alexander Korotkov, with some editorializing by Tom1 parent08da2d2 commitc66e4f1
File tree
6 files changed
+118
-56
lines changed- src
- backend/utils/adt
- include
- catalog
- utils
- test/regress/expected
6 files changed
+118
-56
lines changedLines changed: 18 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1622 | 1622 |
| |
1623 | 1623 |
| |
1624 | 1624 |
| |
| 1625 | + | |
| 1626 | + | |
| 1627 | + | |
| 1628 | + | |
| 1629 | + | |
| 1630 | + | |
| 1631 | + | |
| 1632 | + | |
| 1633 | + | |
| 1634 | + | |
| 1635 | + | |
| 1636 | + | |
| 1637 | + | |
| 1638 | + | |
| 1639 | + | |
| 1640 | + | |
| 1641 | + | |
| 1642 | + | |
1625 | 1643 |
| |
1626 | 1644 |
| |
1627 | 1645 |
| |
|
Lines changed: 85 additions & 44 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
17 | 17 |
| |
18 | 18 |
| |
19 | 19 |
| |
| 20 | + | |
20 | 21 |
| |
21 | 22 |
| |
22 | 23 |
| |
| |||
32 | 33 |
| |
33 | 34 |
| |
34 | 35 |
| |
35 |
| - | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
36 | 41 |
| |
37 | 42 |
| |
38 | 43 |
| |
| |||
145 | 150 |
| |
146 | 151 |
| |
147 | 152 |
| |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
148 | 163 |
| |
149 | 164 |
| |
150 | 165 |
| |
| |||
163 | 178 |
| |
164 | 179 |
| |
165 | 180 |
| |
166 |
| - | |
167 |
| - | |
168 |
| - | |
169 |
| - | |
170 |
| - | |
171 |
| - | |
172 |
| - | |
173 |
| - | |
174 |
| - | |
175 |
| - | |
176 |
| - | |
177 |
| - | |
178 |
| - | |
179 |
| - | |
180 |
| - | |
181 |
| - | |
182 |
| - | |
183 |
| - | |
184 |
| - | |
185 |
| - | |
186 |
| - | |
187 |
| - | |
188 |
| - | |
189 |
| - | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
190 | 184 |
| |
191 | 185 |
| |
192 | 186 |
| |
| |||
334 | 328 |
| |
335 | 329 |
| |
336 | 330 |
| |
337 |
| - | |
338 |
| - | |
| 331 | + | |
| 332 | + | |
339 | 333 |
| |
340 | 334 |
| |
341 | 335 |
| |
342 |
| - | |
343 |
| - | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
344 | 340 |
| |
345 |
| - | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
346 | 352 |
| |
347 | 353 |
| |
348 | 354 |
| |
| |||
356 | 362 |
| |
357 | 363 |
| |
358 | 364 |
| |
359 |
| - | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
360 | 371 |
| |
361 | 372 |
| |
362 | 373 |
| |
363 | 374 |
| |
| 375 | + | |
364 | 376 |
| |
365 | 377 |
| |
366 | 378 |
| |
367 | 379 |
| |
368 | 380 |
| |
369 | 381 |
| |
| 382 | + | |
| 383 | + | |
370 | 384 |
| |
371 | 385 |
| |
372 | 386 |
| |
373 | 387 |
| |
374 | 388 |
| |
| 389 | + | |
| 390 | + | |
375 | 391 |
| |
376 | 392 |
| |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
377 | 400 |
| |
| 401 | + | |
378 | 402 |
| |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
379 | 410 |
| |
| 411 | + | |
380 | 412 |
| |
381 | 413 |
| |
382 | 414 |
| |
| |||
389 | 421 |
| |
390 | 422 |
| |
391 | 423 |
| |
392 |
| - | |
| 424 | + | |
| 425 | + | |
393 | 426 |
| |
394 |
| - | |
| 427 | + | |
| 428 | + | |
395 | 429 |
| |
396 | 430 |
| |
397 |
| - | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
398 | 437 |
| |
399 | 438 |
| |
400 | 439 |
| |
| |||
484 | 523 |
| |
485 | 524 |
| |
486 | 525 |
| |
487 |
| - | |
488 |
| - | |
489 |
| - | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
490 | 529 |
| |
491 |
| - | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
492 | 533 |
| |
493 | 534 |
| |
494 | 535 |
| |
495 | 536 |
| |
496 | 537 |
| |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
497 | 544 |
| |
498 | 545 |
| |
499 |
| - | |
500 |
| - | |
501 |
| - | |
502 | 546 |
| |
503 | 547 |
| |
504 | 548 |
| |
| |||
555 | 599 |
| |
556 | 600 |
| |
557 | 601 |
| |
558 |
| - | |
559 |
| - | |
560 |
| - | |
561 | 602 |
| |
562 | 603 |
| |
563 | 604 |
| |
|
Lines changed: 1 addition & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
53 | 53 |
| |
54 | 54 |
| |
55 | 55 |
| |
56 |
| - | |
| 56 | + | |
57 | 57 |
| |
58 | 58 |
|
Lines changed: 0 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
736 | 736 |
| |
737 | 737 |
| |
738 | 738 |
| |
739 |
| - | |
740 | 739 |
| |
741 | 740 |
|
Lines changed: 13 additions & 8 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
33 | 33 |
| |
34 | 34 |
| |
35 | 35 |
| |
36 |
| - | |
37 |
| - | |
38 |
| - | |
39 |
| - | |
40 |
| - | |
41 |
| - | |
42 |
| - | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
43 | 45 |
| |
44 | 46 |
| |
45 | 47 |
| |
| |||
49 | 51 |
| |
50 | 52 |
| |
51 | 53 |
| |
52 |
| - | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
53 | 57 |
| |
54 | 58 |
| |
55 | 59 |
| |
| |||
152 | 156 |
| |
153 | 157 |
| |
154 | 158 |
| |
| 159 | + | |
155 | 160 |
| |
156 | 161 |
| |
157 | 162 |
| |
|
Lines changed: 1 addition & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1041 | 1041 |
| |
1042 | 1042 |
| |
1043 | 1043 |
| |
1044 |
| - | |
1045 | 1044 |
| |
1046 | 1045 |
| |
1047 | 1046 |
| |
| |||
1054 | 1053 |
| |
1055 | 1054 |
| |
1056 | 1055 |
| |
1057 |
| - | |
| 1056 | + | |
1058 | 1057 |
| |
1059 | 1058 |
| |
1060 | 1059 |
| |
|
0 commit comments
Comments
(0)