forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit9b88f27
committed
Allow index AMs to return either HeapTuple or IndexTuple format during IOS.
Previously, only IndexTuple format was supported for the output data ofan index-only scan. This is fine for btree, which is just returning averbatim index tuple anyway. It's not so fine for SP-GiST, which canreturn reconstructed data that's much larger than a page.To fix, extend the index AM API so that index-only scan data can bereturned in either HeapTuple or IndexTuple format. There's other wayswe could have done it, but this way avoids an API break for index AMsthat aren't concerned with the issue, and it costs little except a couplemore fields in IndexScanDescs.I changed both GiST and SP-GiST to use the HeapTuple method. I'm notvery clear on whether GiST can reconstruct data that's too large for anIndexTuple, but that seems possible, and it's not much of a code change tofix.Per a complaint from Vik Fearing. Reviewed by Jason Li.Discussion:https://postgr.es/m/49527f79-530d-0bfe-3dad-d183596afa92@2ndquadrant.fr1 parent30df93f commit9b88f27
File tree
11 files changed
+71
-39
lines changed- doc/src/sgml
- src
- backend
- access
- gist
- index
- spgist
- executor
- include/access
11 files changed
+71
-39
lines changedLines changed: 10 additions & 6 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
551 | 551 |
| |
552 | 552 |
| |
553 | 553 |
| |
554 |
| - | |
555 |
| - | |
556 |
| - | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
557 | 557 |
| |
558 |
| - | |
559 |
| - | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
560 | 564 |
| |
561 | 565 |
| |
562 |
| - | |
| 566 | + | |
563 | 567 |
| |
564 | 568 |
| |
565 | 569 |
| |
|
Lines changed: 9 additions & 8 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
441 | 441 |
| |
442 | 442 |
| |
443 | 443 |
| |
444 |
| - | |
| 444 | + | |
| 445 | + | |
445 | 446 |
| |
446 | 447 |
| |
447 | 448 |
| |
448 | 449 |
| |
449 |
| - | |
| 450 | + | |
450 | 451 |
| |
451 | 452 |
| |
452 | 453 |
| |
| |||
478 | 479 |
| |
479 | 480 |
| |
480 | 481 |
| |
481 |
| - | |
| 482 | + | |
482 | 483 |
| |
483 | 484 |
| |
484 | 485 |
| |
| |||
540 | 541 |
| |
541 | 542 |
| |
542 | 543 |
| |
543 |
| - | |
| 544 | + | |
544 | 545 |
| |
545 | 546 |
| |
546 |
| - | |
547 |
| - | |
| 547 | + | |
| 548 | + | |
548 | 549 |
| |
549 | 550 |
| |
550 | 551 |
| |
| |||
601 | 602 |
| |
602 | 603 |
| |
603 | 604 |
| |
604 |
| - | |
| 605 | + | |
605 | 606 |
| |
606 | 607 |
| |
607 | 608 |
| |
| |||
685 | 686 |
| |
686 | 687 |
| |
687 | 688 |
| |
688 |
| - | |
| 689 | + | |
689 | 690 |
| |
690 | 691 |
| |
691 | 692 |
| |
|
Lines changed: 3 additions & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
155 | 155 |
| |
156 | 156 |
| |
157 | 157 |
| |
158 |
| - | |
| 158 | + | |
159 | 159 |
| |
160 | 160 |
| |
161 | 161 |
| |
| |||
174 | 174 |
| |
175 | 175 |
| |
176 | 176 |
| |
177 |
| - | |
| 177 | + | |
178 | 178 |
| |
| 179 | + | |
179 | 180 |
| |
180 | 181 |
| |
181 | 182 |
| |
|
Lines changed: 3 additions & 3 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
624 | 624 |
| |
625 | 625 |
| |
626 | 626 |
| |
627 |
| - | |
| 627 | + | |
628 | 628 |
| |
629 |
| - | |
| 629 | + | |
630 | 630 |
| |
631 | 631 |
| |
632 | 632 |
| |
| |||
660 | 660 |
| |
661 | 661 |
| |
662 | 662 |
| |
663 |
| - | |
| 663 | + | |
664 | 664 |
| |
665 | 665 |
| |
666 | 666 |
| |
|
Lines changed: 2 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
119 | 119 |
| |
120 | 120 |
| |
121 | 121 |
| |
| 122 | + | |
| 123 | + | |
122 | 124 |
| |
123 | 125 |
| |
124 | 126 |
| |
|
Lines changed: 2 additions & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
535 | 535 |
| |
536 | 536 |
| |
537 | 537 |
| |
538 |
| - | |
539 |
| - | |
| 538 | + | |
| 539 | + | |
540 | 540 |
| |
541 | 541 |
| |
542 | 542 |
| |
|
Lines changed: 12 additions & 12 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
92 | 92 |
| |
93 | 93 |
| |
94 | 94 |
| |
95 |
| - | |
| 95 | + | |
96 | 96 |
| |
97 | 97 |
| |
98 | 98 |
| |
99 |
| - | |
| 99 | + | |
100 | 100 |
| |
101 | 101 |
| |
102 | 102 |
| |
| |||
195 | 195 |
| |
196 | 196 |
| |
197 | 197 |
| |
198 |
| - | |
199 |
| - | |
| 198 | + | |
| 199 | + | |
200 | 200 |
| |
201 | 201 |
| |
202 | 202 |
| |
| |||
591 | 591 |
| |
592 | 592 |
| |
593 | 593 |
| |
594 |
| - | |
595 |
| - | |
| 594 | + | |
| 595 | + | |
596 | 596 |
| |
597 |
| - | |
598 |
| - | |
599 |
| - | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
600 | 600 |
| |
601 | 601 |
| |
602 | 602 |
| |
| |||
619 | 619 |
| |
620 | 620 |
| |
621 | 621 |
| |
622 |
| - | |
| 622 | + | |
623 | 623 |
| |
624 | 624 |
| |
625 | 625 |
| |
626 | 626 |
| |
627 | 627 |
| |
628 | 628 |
| |
629 |
| - | |
| 629 | + | |
630 | 630 |
| |
631 | 631 |
| |
632 | 632 |
| |
633 |
| - | |
| 633 | + | |
634 | 634 |
| |
635 | 635 |
| |
636 | 636 |
| |
|
Lines changed: 19 additions & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
149 | 149 |
| |
150 | 150 |
| |
151 | 151 |
| |
152 |
| - | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
153 | 156 |
| |
154 |
| - | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
155 | 172 |
| |
156 | 173 |
| |
157 | 174 |
| |
|
Lines changed: 2 additions & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
119 | 119 |
| |
120 | 120 |
| |
121 | 121 |
| |
122 |
| - | |
| 122 | + | |
123 | 123 |
| |
124 | 124 |
| |
125 | 125 |
| |
| |||
477 | 477 |
| |
478 | 478 |
| |
479 | 479 |
| |
480 |
| - | |
| 480 | + | |
481 | 481 |
| |
482 | 482 |
| |
483 | 483 |
| |
|
Lines changed: 8 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
104 | 104 |
| |
105 | 105 |
| |
106 | 106 |
| |
107 |
| - | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
108 | 113 |
| |
109 | 114 |
| |
| 115 | + | |
| 116 | + | |
110 | 117 |
| |
111 | 118 |
| |
112 | 119 |
| |
|
Lines changed: 1 addition & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
159 | 159 |
| |
160 | 160 |
| |
161 | 161 |
| |
162 |
| - | |
| 162 | + | |
163 | 163 |
| |
164 | 164 |
| |
165 | 165 |
| |
|
0 commit comments
Comments
(0)