- Notifications
You must be signed in to change notification settings - Fork5
Commita018546
committed
Rearrange the implementation of index-only scans.
This commit changes index-only scans so that data is read directly from theindex tuple without first generating a faux heap tuple. The only immediatebenefit is that indexes on system columns (such as OID) can be used inindex-only scans, but this is necessary infrastructure if we are ever tosupport index-only scans on expression indexes. The executor is now readyfor that, though the planner still needs substantial work to recognizethe possibility.To do this, Vars in index-only plan nodes have to refer to index columnsnot heap columns. I introduced a new special varno, INDEX_VAR, to marksuch Vars to avoid confusion. (In passing, this commit renames the twoexisting special varnos to OUTER_VAR and INNER_VAR.) This allowsruleutils.c to handle them with logic similar to what we use for subplanreference Vars.Since index-only scans are now fundamentally different from regularindexscans so far as their expression subtrees are concerned, I also choseto change them to have their own plan node type (and hence, their ownexecutor source file).1 parentfa351d5 commita018546
File tree
34 files changed
+1313
-420
lines changed- src
- backend
- commands
- executor
- nodes
- optimizer
- path
- plan
- util
- utils/adt
- include
- executor
- nodes
34 files changed
+1313
-420
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
79 | 79 | | |
80 | 80 | | |
81 | 81 | | |
| 82 | + | |
| 83 | + | |
82 | 84 | | |
83 | 85 | | |
84 | 86 | | |
| |||
656 | 658 | | |
657 | 659 | | |
658 | 660 | | |
659 | | - | |
660 | | - | |
661 | | - | |
662 | | - | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
663 | 665 | | |
664 | 666 | | |
665 | 667 | | |
| |||
793 | 795 | | |
794 | 796 | | |
795 | 797 | | |
796 | | - | |
797 | | - | |
798 | | - | |
799 | | - | |
800 | | - | |
801 | | - | |
802 | | - | |
803 | | - | |
804 | | - | |
805 | | - | |
806 | | - | |
807 | | - | |
808 | | - | |
809 | | - | |
810 | | - | |
811 | | - | |
812 | | - | |
813 | | - | |
814 | | - | |
815 | | - | |
816 | | - | |
817 | | - | |
818 | | - | |
819 | | - | |
820 | | - | |
821 | | - | |
822 | | - | |
823 | | - | |
824 | | - | |
825 | | - | |
826 | | - | |
827 | | - | |
828 | | - | |
829 | | - | |
830 | | - | |
831 | | - | |
832 | 798 | | |
833 | 799 | | |
834 | 800 | | |
| |||
840 | 806 | | |
841 | 807 | | |
842 | 808 | | |
| 809 | + | |
| 810 | + | |
| 811 | + | |
| 812 | + | |
| 813 | + | |
| 814 | + | |
| 815 | + | |
| 816 | + | |
| 817 | + | |
| 818 | + | |
| 819 | + | |
| 820 | + | |
| 821 | + | |
| 822 | + | |
| 823 | + | |
| 824 | + | |
| 825 | + | |
| 826 | + | |
| 827 | + | |
| 828 | + | |
843 | 829 | | |
844 | 830 | | |
845 | 831 | | |
| |||
1014 | 1000 | | |
1015 | 1001 | | |
1016 | 1002 | | |
| 1003 | + | |
| 1004 | + | |
| 1005 | + | |
| 1006 | + | |
| 1007 | + | |
| 1008 | + | |
| 1009 | + | |
| 1010 | + | |
| 1011 | + | |
| 1012 | + | |
| 1013 | + | |
| 1014 | + | |
| 1015 | + | |
1017 | 1016 | | |
1018 | 1017 | | |
1019 | 1018 | | |
| |||
1626 | 1625 | | |
1627 | 1626 | | |
1628 | 1627 | | |
| 1628 | + | |
| 1629 | + | |
| 1630 | + | |
| 1631 | + | |
| 1632 | + | |
| 1633 | + | |
| 1634 | + | |
| 1635 | + | |
| 1636 | + | |
| 1637 | + | |
| 1638 | + | |
| 1639 | + | |
| 1640 | + | |
| 1641 | + | |
| 1642 | + | |
| 1643 | + | |
| 1644 | + | |
| 1645 | + | |
| 1646 | + | |
| 1647 | + | |
| 1648 | + | |
| 1649 | + | |
| 1650 | + | |
| 1651 | + | |
| 1652 | + | |
| 1653 | + | |
| 1654 | + | |
| 1655 | + | |
| 1656 | + | |
| 1657 | + | |
| 1658 | + | |
| 1659 | + | |
| 1660 | + | |
| 1661 | + | |
| 1662 | + | |
| 1663 | + | |
| 1664 | + | |
| 1665 | + | |
| 1666 | + | |
1629 | 1667 | | |
1630 | 1668 | | |
1631 | 1669 | | |
| |||
1670 | 1708 | | |
1671 | 1709 | | |
1672 | 1710 | | |
| 1711 | + | |
1673 | 1712 | | |
1674 | 1713 | | |
1675 | 1714 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2734 | 2734 | | |
2735 | 2735 | | |
2736 | 2736 | | |
2737 | | - | |
2738 | | - | |
2739 | | - | |
| 2737 | + | |
| 2738 | + | |
| 2739 | + | |
2740 | 2740 | | |
2741 | 2741 | | |
2742 | 2742 | | |
| |||
2783 | 2783 | | |
2784 | 2784 | | |
2785 | 2785 | | |
2786 | | - | |
| 2786 | + | |
2787 | 2787 | | |
2788 | 2788 | | |
2789 | 2789 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | | - | |
| 20 | + | |
| 21 | + | |
21 | 22 | | |
22 | 23 | | |
23 | 24 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
| 29 | + | |
29 | 30 | | |
30 | 31 | | |
31 | 32 | | |
| |||
155 | 156 | | |
156 | 157 | | |
157 | 158 | | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
158 | 163 | | |
159 | 164 | | |
160 | 165 | | |
| |||
273 | 278 | | |
274 | 279 | | |
275 | 280 | | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
276 | 285 | | |
277 | 286 | | |
278 | 287 | | |
| |||
326 | 335 | | |
327 | 336 | | |
328 | 337 | | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
329 | 342 | | |
330 | 343 | | |
331 | 344 | | |
| |||
371 | 384 | | |
372 | 385 | | |
373 | 386 | | |
| 387 | + | |
374 | 388 | | |
375 | 389 | | |
376 | 390 | | |
| |||
442 | 456 | | |
443 | 457 | | |
444 | 458 | | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
445 | 463 | | |
446 | 464 | | |
447 | 465 | | |
| |||
474 | 492 | | |
475 | 493 | | |
476 | 494 | | |
477 | | - | |
| 495 | + | |
| 496 | + | |
478 | 497 | | |
479 | 498 | | |
480 | 499 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
262 | 262 | | |
263 | 263 | | |
264 | 264 | | |
| 265 | + | |
265 | 266 | | |
266 | 267 | | |
267 | 268 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
89 | 89 | | |
90 | 90 | | |
91 | 91 | | |
| 92 | + | |
92 | 93 | | |
93 | 94 | | |
94 | 95 | | |
| |||
192 | 193 | | |
193 | 194 | | |
194 | 195 | | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
195 | 201 | | |
196 | 202 | | |
197 | 203 | | |
| |||
397 | 403 | | |
398 | 404 | | |
399 | 405 | | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
400 | 410 | | |
401 | 411 | | |
402 | 412 | | |
| |||
627 | 637 | | |
628 | 638 | | |
629 | 639 | | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
630 | 644 | | |
631 | 645 | | |
632 | 646 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
578 | 578 | | |
579 | 579 | | |
580 | 580 | | |
581 | | - | |
| 581 | + | |
582 | 582 | | |
583 | 583 | | |
584 | 584 | | |
585 | | - | |
| 585 | + | |
586 | 586 | | |
587 | 587 | | |
588 | 588 | | |
| 589 | + | |
| 590 | + | |
589 | 591 | | |
590 | 592 | | |
591 | 593 | | |
| |||
761 | 763 | | |
762 | 764 | | |
763 | 765 | | |
764 | | - | |
| 766 | + | |
765 | 767 | | |
766 | 768 | | |
767 | 769 | | |
768 | | - | |
| 770 | + | |
769 | 771 | | |
770 | 772 | | |
771 | 773 | | |
| 774 | + | |
| 775 | + | |
772 | 776 | | |
773 | 777 | | |
774 | 778 | | |
| |||
804 | 808 | | |
805 | 809 | | |
806 | 810 | | |
807 | | - | |
| 811 | + | |
808 | 812 | | |
809 | 813 | | |
810 | 814 | | |
811 | | - | |
| 815 | + | |
812 | 816 | | |
813 | 817 | | |
814 | 818 | | |
| 819 | + | |
| 820 | + | |
815 | 821 | | |
816 | 822 | | |
817 | 823 | | |
| |||
873 | 879 | | |
874 | 880 | | |
875 | 881 | | |
876 | | - | |
| 882 | + | |
877 | 883 | | |
878 | 884 | | |
879 | 885 | | |
880 | | - | |
| 886 | + | |
881 | 887 | | |
882 | 888 | | |
883 | 889 | | |
| 890 | + | |
| 891 | + | |
884 | 892 | | |
885 | 893 | | |
886 | 894 | | |
| |||
0 commit comments
Comments
(0)