- Notifications
You must be signed in to change notification settings - Fork28
Commit09cb5c0
committed
Rewrite btree index scans to work a page at a time in all cases (both
btgettuple and btgetmulti). This eliminates the problem of "re-finding" theexact stopping point, since the stopping point is effectively always a pageboundary, and index items are never moved across pre-existing page boundaries.A small penalty is that the keys_are_unique optimization is effectivelydisabled (and, therefore, is removed in this patch), causing us to apply_bt_checkkeys() to at least one more tuple than necessary when looking up aunique key. However, the advantages for non-unique cases seem great enough toaccept this tradeoff. Aside from simplifying and (sometimes) speeding up theindexscan code, this will allow us to reimplement btbulkdelete as a largelysequential scan instead of index-order traversal, thereby significantlyreducing the cost of VACUUM. Those changes will come in a separate patch.Original patch by Heikki Linnakangas, rework by Tom Lane.1 parent88d94a1 commit09cb5c0
File tree
9 files changed
+624
-629
lines changed- src
- backend/access
- index
- nbtree
- include/access
9 files changed
+624
-629
lines changedLines changed: 1 addition & 6 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
8 | 8 |
| |
9 | 9 |
| |
10 | 10 |
| |
11 |
| - | |
| 11 | + | |
12 | 12 |
| |
13 | 13 |
| |
14 | 14 |
| |
| |||
90 | 90 |
| |
91 | 91 |
| |
92 | 92 |
| |
93 |
| - | |
94 |
| - | |
95 | 93 |
| |
96 | 94 |
| |
97 | 95 |
| |
| |||
102 | 100 |
| |
103 | 101 |
| |
104 | 102 |
| |
105 |
| - | |
106 |
| - | |
107 |
| - | |
108 | 103 |
| |
109 | 104 |
| |
110 | 105 |
| |
|
Lines changed: 4 additions & 85 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
8 | 8 |
| |
9 | 9 |
| |
10 | 10 |
| |
11 |
| - | |
| 11 | + | |
12 | 12 |
| |
13 | 13 |
| |
14 | 14 |
| |
| |||
362 | 362 |
| |
363 | 363 |
| |
364 | 364 |
| |
365 |
| - | |
366 |
| - | |
367 |
| - | |
368 |
| - | |
369 | 365 |
| |
370 | 366 |
| |
371 | 367 |
| |
| |||
417 | 413 |
| |
418 | 414 |
| |
419 | 415 |
| |
420 |
| - | |
421 |
| - | |
422 | 416 |
| |
423 | 417 |
| |
424 | 418 |
| |
| |||
440 | 434 |
| |
441 | 435 |
| |
442 | 436 |
| |
443 |
| - | |
444 |
| - | |
445 |
| - | |
446 |
| - | |
447 |
| - | |
448 |
| - | |
449 |
| - | |
450 | 437 |
| |
451 | 438 |
| |
452 | 439 |
| |
| |||
456 | 443 |
| |
457 | 444 |
| |
458 | 445 |
| |
459 |
| - | |
460 |
| - | |
| 446 | + | |
461 | 447 |
| |
462 | 448 |
| |
463 | 449 |
| |
| |||
469 | 455 |
| |
470 | 456 |
| |
471 | 457 |
| |
472 |
| - | |
473 |
| - | |
474 |
| - | |
475 |
| - | |
476 |
| - | |
477 |
| - | |
478 |
| - | |
479 |
| - | |
480 |
| - | |
481 |
| - | |
482 |
| - | |
483 |
| - | |
484 |
| - | |
485 |
| - | |
486 |
| - | |
487 |
| - | |
488 |
| - | |
489 |
| - | |
490 |
| - | |
491 |
| - | |
492 |
| - | |
493 |
| - | |
494 |
| - | |
495 |
| - | |
496 |
| - | |
497 |
| - | |
498 |
| - | |
499 |
| - | |
500 |
| - | |
501 |
| - | |
502 |
| - | |
503 |
| - | |
504 |
| - | |
505 |
| - | |
506 |
| - | |
507 |
| - | |
508 |
| - | |
509 |
| - | |
510 |
| - | |
511 |
| - | |
512 |
| - | |
513 |
| - | |
514 |
| - | |
515 |
| - | |
516 |
| - | |
517 |
| - | |
518 |
| - | |
519 |
| - | |
520 |
| - | |
521 |
| - | |
522 |
| - | |
523 |
| - | |
524 |
| - | |
525 |
| - | |
526 |
| - | |
527 |
| - | |
528 |
| - | |
529 |
| - | |
530 |
| - | |
531 | 458 |
| |
532 | 459 |
| |
533 | 460 |
| |
| |||
588 | 515 |
| |
589 | 516 |
| |
590 | 517 |
| |
591 |
| - | |
592 |
| - | |
593 |
| - | |
594 |
| - | |
595 |
| - | |
596 |
| - | |
597 |
| - | |
598 |
| - | |
599 | 518 |
| |
600 | 519 |
| |
601 | 520 |
| |
| |||
608 | 527 |
| |
609 | 528 |
| |
610 | 529 |
| |
611 |
| - | |
612 |
| - | |
| 530 | + | |
| 531 | + | |
613 | 532 |
| |
614 | 533 |
| |
615 | 534 |
| |
|
Lines changed: 45 additions & 17 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1 |
| - | |
| 1 | + | |
2 | 2 |
| |
3 | 3 |
| |
4 | 4 |
| |
| |||
67 | 67 |
| |
68 | 68 |
| |
69 | 69 |
| |
70 |
| - | |
71 |
| - | |
72 |
| - | |
73 |
| - | |
74 |
| - | |
75 |
| - | |
76 |
| - | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
77 | 86 |
| |
78 | 87 |
| |
79 | 88 |
| |
| |||
119 | 128 |
| |
120 | 129 |
| |
121 | 130 |
| |
122 |
| - | |
123 |
| - | |
124 |
| - | |
125 |
| - | |
126 |
| - | |
127 |
| - | |
128 |
| - | |
129 |
| - | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
130 | 158 |
| |
131 | 159 |
| |
132 | 160 |
| |
| |||
201 | 229 |
| |
202 | 230 |
| |
203 | 231 |
| |
204 |
| - | |
| 232 | + | |
205 | 233 |
| |
206 | 234 |
| |
207 | 235 |
| |
|
0 commit comments
Comments
(0)