forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commitbb3ec16
committed
Move PartitionPruneInfo out of plan nodes into PlannedStmt
This moves PartitionPruneInfo from plan nodes to PlannedStmt,simplifying traversal by centralizing all PartitionPruneInfostructures in a single list in it, which holds all instances for themain query and its subqueries. Instead of plan nodes (Append orMergeAppend) storing PartitionPruneInfo pointers, they now referencean index in this list.A bitmapset field is added to PartitionPruneInfo to store the RTindexes corresponding to the apprelids field in Append or MergeAppend.This allows execution pruning logic to verify that it operates on thecorrect plan node, mainly to facilitate debugging.Duplicated code in set_append_references() andset_mergeappend_references() is refactored into a new function,register_pruneinfo(). This updates RT indexes by applying rtoffetand adds PartitionPruneInfo to the global list in PlannerGlobal.By allowing pruning to be performed without traversing the plan tree,this change lays the groundwork for runtime initial pruning to occurindependently of plan tree initialization.Reviewed-by: Alvaro Herrera <alvherre@alvh.no-ip.org> (earlier version)Reviewed-by: Robert Haas <robertmhaas@gmail.com>Reviewed-by: Tomas Vondra <tomas@vondra.me>Discussion:https://postgr.es/m/CA+HiwqFGkMSge6TgC9KQzde0ohpAycLQuV7ooitEEpbKB0O_mg@mail.gmail.com1 parentba0da16 commitbb3ec16
File tree
15 files changed
+137
-73
lines changed- src
- backend
- executor
- optimizer/plan
- partitioning
- include
- executor
- nodes
- partitioning
15 files changed
+137
-73
lines changedLines changed: 1 addition & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
853 | 853 |
| |
854 | 854 |
| |
855 | 855 |
| |
| 856 | + | |
856 | 857 |
| |
857 | 858 |
| |
858 | 859 |
| |
|
Lines changed: 1 addition & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
181 | 181 |
| |
182 | 182 |
| |
183 | 183 |
| |
| 184 | + | |
184 | 185 |
| |
185 | 186 |
| |
186 | 187 |
| |
|
Lines changed: 16 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1786 | 1786 |
| |
1787 | 1787 |
| |
1788 | 1788 |
| |
| 1789 | + | |
| 1790 | + | |
| 1791 | + | |
1789 | 1792 |
| |
1790 | 1793 |
| |
1791 | 1794 |
| |
| |||
1798 | 1801 |
| |
1799 | 1802 |
| |
1800 | 1803 |
| |
1801 |
| - | |
| 1804 | + | |
| 1805 | + | |
1802 | 1806 |
| |
1803 | 1807 |
| |
1804 | 1808 |
| |
1805 | 1809 |
| |
| 1810 | + | |
| 1811 | + | |
| 1812 | + | |
| 1813 | + | |
| 1814 | + | |
| 1815 | + | |
| 1816 | + | |
| 1817 | + | |
| 1818 | + | |
| 1819 | + | |
| 1820 | + | |
1806 | 1821 |
| |
1807 | 1822 |
| |
1808 | 1823 |
| |
|
Lines changed: 1 addition & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
118 | 118 |
| |
119 | 119 |
| |
120 | 120 |
| |
| 121 | + | |
121 | 122 |
| |
122 | 123 |
| |
123 | 124 |
| |
|
Lines changed: 3 additions & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
135 | 135 |
| |
136 | 136 |
| |
137 | 137 |
| |
138 |
| - | |
| 138 | + | |
139 | 139 |
| |
140 | 140 |
| |
141 | 141 |
| |
| |||
146 | 146 |
| |
147 | 147 |
| |
148 | 148 |
| |
149 |
| - | |
| 149 | + | |
| 150 | + | |
150 | 151 |
| |
151 | 152 |
| |
152 | 153 |
| |
|
Lines changed: 3 additions & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
83 | 83 |
| |
84 | 84 |
| |
85 | 85 |
| |
86 |
| - | |
| 86 | + | |
87 | 87 |
| |
88 | 88 |
| |
89 | 89 |
| |
| |||
94 | 94 |
| |
95 | 95 |
| |
96 | 96 |
| |
97 |
| - | |
| 97 | + | |
| 98 | + | |
98 | 99 |
| |
99 | 100 |
| |
100 | 101 |
| |
|
Lines changed: 12 additions & 11 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1227 | 1227 |
| |
1228 | 1228 |
| |
1229 | 1229 |
| |
1230 |
| - | |
1231 | 1230 |
| |
1232 | 1231 |
| |
1233 | 1232 |
| |
| |||
1378 | 1377 |
| |
1379 | 1378 |
| |
1380 | 1379 |
| |
| 1380 | + | |
| 1381 | + | |
| 1382 | + | |
1381 | 1383 |
| |
1382 | 1384 |
| |
1383 | 1385 |
| |
| |||
1401 | 1403 |
| |
1402 | 1404 |
| |
1403 | 1405 |
| |
1404 |
| - | |
1405 |
| - | |
1406 |
| - | |
1407 |
| - | |
| 1406 | + | |
| 1407 | + | |
| 1408 | + | |
1408 | 1409 |
| |
1409 | 1410 |
| |
1410 | 1411 |
| |
1411 | 1412 |
| |
1412 | 1413 |
| |
1413 |
| - | |
1414 | 1414 |
| |
1415 | 1415 |
| |
1416 | 1416 |
| |
| |||
1449 | 1449 |
| |
1450 | 1450 |
| |
1451 | 1451 |
| |
1452 |
| - | |
1453 | 1452 |
| |
1454 | 1453 |
| |
1455 | 1454 |
| |
| |||
1542 | 1541 |
| |
1543 | 1542 |
| |
1544 | 1543 |
| |
| 1544 | + | |
| 1545 | + | |
| 1546 | + | |
1545 | 1547 |
| |
1546 | 1548 |
| |
1547 | 1549 |
| |
| |||
1557 | 1559 |
| |
1558 | 1560 |
| |
1559 | 1561 |
| |
1560 |
| - | |
1561 |
| - | |
1562 |
| - | |
| 1562 | + | |
| 1563 | + | |
| 1564 | + | |
1563 | 1565 |
| |
1564 | 1566 |
| |
1565 | 1567 |
| |
1566 |
| - | |
1567 | 1568 |
| |
1568 | 1569 |
| |
1569 | 1570 |
| |
|
Lines changed: 1 addition & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
555 | 555 |
| |
556 | 556 |
| |
557 | 557 |
| |
| 558 | + | |
558 | 559 |
| |
559 | 560 |
| |
560 | 561 |
| |
|
Lines changed: 61 additions & 42 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1731 | 1731 |
| |
1732 | 1732 |
| |
1733 | 1733 |
| |
| 1734 | + | |
| 1735 | + | |
| 1736 | + | |
| 1737 | + | |
| 1738 | + | |
| 1739 | + | |
| 1740 | + | |
| 1741 | + | |
| 1742 | + | |
| 1743 | + | |
| 1744 | + | |
| 1745 | + | |
| 1746 | + | |
| 1747 | + | |
| 1748 | + | |
| 1749 | + | |
| 1750 | + | |
| 1751 | + | |
| 1752 | + | |
| 1753 | + | |
| 1754 | + | |
| 1755 | + | |
| 1756 | + | |
| 1757 | + | |
| 1758 | + | |
| 1759 | + | |
| 1760 | + | |
| 1761 | + | |
| 1762 | + | |
| 1763 | + | |
| 1764 | + | |
| 1765 | + | |
| 1766 | + | |
| 1767 | + | |
| 1768 | + | |
| 1769 | + | |
| 1770 | + | |
| 1771 | + | |
| 1772 | + | |
| 1773 | + | |
| 1774 | + | |
| 1775 | + | |
| 1776 | + | |
| 1777 | + | |
| 1778 | + | |
| 1779 | + | |
| 1780 | + | |
1734 | 1781 |
| |
1735 | 1782 |
| |
1736 | 1783 |
| |
| |||
1783 | 1830 |
| |
1784 | 1831 |
| |
1785 | 1832 |
| |
1786 |
| - | |
1787 |
| - | |
1788 |
| - | |
1789 |
| - | |
1790 |
| - | |
1791 |
| - | |
1792 |
| - | |
1793 |
| - | |
1794 |
| - | |
1795 |
| - | |
1796 |
| - | |
1797 |
| - | |
1798 |
| - | |
1799 |
| - | |
1800 |
| - | |
1801 |
| - | |
1802 |
| - | |
1803 |
| - | |
1804 |
| - | |
1805 |
| - | |
1806 |
| - | |
| 1833 | + | |
| 1834 | + | |
| 1835 | + | |
| 1836 | + | |
| 1837 | + | |
| 1838 | + | |
| 1839 | + | |
1807 | 1840 |
| |
1808 | 1841 |
| |
1809 | 1842 |
| |
| |||
1865 | 1898 |
| |
1866 | 1899 |
| |
1867 | 1900 |
| |
1868 |
| - | |
1869 |
| - | |
1870 |
| - | |
1871 |
| - | |
1872 |
| - | |
1873 |
| - | |
1874 |
| - | |
1875 |
| - | |
1876 |
| - | |
1877 |
| - | |
1878 |
| - | |
1879 |
| - | |
1880 |
| - | |
1881 |
| - | |
1882 |
| - | |
1883 |
| - | |
1884 |
| - | |
1885 |
| - | |
1886 |
| - | |
1887 |
| - | |
1888 |
| - | |
| 1901 | + | |
| 1902 | + | |
| 1903 | + | |
| 1904 | + | |
| 1905 | + | |
| 1906 | + | |
| 1907 | + | |
1889 | 1908 |
| |
1890 | 1909 |
| |
1891 | 1910 |
| |
|
Lines changed: 13 additions & 6 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
207 | 207 |
| |
208 | 208 |
| |
209 | 209 |
| |
210 |
| - | |
211 |
| - | |
212 |
| - | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
213 | 217 |
| |
214 | 218 |
| |
215 | 219 |
| |
216 | 220 |
| |
217 | 221 |
| |
218 | 222 |
| |
219 |
| - | |
| 223 | + | |
220 | 224 |
| |
221 | 225 |
| |
222 | 226 |
| |
| |||
330 | 334 |
| |
331 | 335 |
| |
332 | 336 |
| |
333 |
| - | |
| 337 | + | |
334 | 338 |
| |
335 | 339 |
| |
336 | 340 |
| |
| 341 | + | |
337 | 342 |
| |
338 | 343 |
| |
339 | 344 |
| |
| |||
356 | 361 |
| |
357 | 362 |
| |
358 | 363 |
| |
359 |
| - | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
360 | 367 |
| |
361 | 368 |
| |
362 | 369 |
| |
|
Lines changed: 2 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
123 | 123 |
| |
124 | 124 |
| |
125 | 125 |
| |
126 |
| - | |
| 126 | + | |
| 127 | + | |
127 | 128 |
| |
128 | 129 |
| |
129 | 130 |
| |
|
Lines changed: 1 addition & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
655 | 655 |
| |
656 | 656 |
| |
657 | 657 |
| |
| 658 | + | |
658 | 659 |
| |
659 | 660 |
| |
660 | 661 |
| |
|
Lines changed: 6 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
128 | 128 |
| |
129 | 129 |
| |
130 | 130 |
| |
| 131 | + | |
| 132 | + | |
| 133 | + | |
131 | 134 |
| |
132 | 135 |
| |
133 | 136 |
| |
| |||
559 | 562 |
| |
560 | 563 |
| |
561 | 564 |
| |
| 565 | + | |
| 566 | + | |
| 567 | + | |
562 | 568 |
| |
563 | 569 |
| |
564 | 570 |
| |
|
0 commit comments
Comments
(0)