forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commite2fa76d
committed
Use parameterized paths to generate inner indexscans more flexibly.
This patch fixes the planner so that it can generate nestloop-with-inner-indexscan plans even with one or more levels of joining betweenthe indexscan and the nestloop join that is supplying the parameter.The executor was fixed to handle such cases some time ago, but theplanner was not ready. This should improve our plans in many situationswhere join ordering restrictions formerly forced complete table scans.There is probably a fair amount of tuning work yet to be done, becauseof various heuristics that have been added to limit the number ofparameterized paths considered. However, we are not going to find outwhat needs to be adjusted until the code gets some real-world use, soit's time to get it in there where it can be tested easily.Note API change for index AM amcostestimate functions. I'm not aware ofany non-core index AMs, but if there are any, they will need minoradjustments.1 parentb376ec6 commite2fa76d
File tree
26 files changed
+3883
-2291
lines changed- doc/src/sgml
- src
- backend
- nodes
- optimizer
- path
- plan
- util
- utils/adt
- include
- nodes
- optimizer
26 files changed
+3883
-2291
lines changedLines changed: 12 additions & 13 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
289 | 289 |
| |
290 | 290 |
| |
291 | 291 |
| |
292 |
| - | |
| 292 | + | |
293 | 293 |
| |
294 | 294 |
| |
295 | 295 |
| |
| |||
928 | 928 |
| |
929 | 929 |
| |
930 | 930 |
| |
931 |
| - | |
| 931 | + | |
932 | 932 |
| |
933 | 933 |
| |
934 | 934 |
| |
| |||
958 | 958 |
| |
959 | 959 |
| |
960 | 960 |
| |
961 |
| - | |
| 961 | + | |
962 | 962 |
| |
963 | 963 |
| |
964 |
| - | |
965 |
| - | |
966 |
| - | |
967 |
| - | |
968 |
| - | |
969 |
| - | |
970 |
| - | |
| 964 | + | |
| 965 | + | |
| 966 | + | |
| 967 | + | |
| 968 | + | |
| 969 | + | |
971 | 970 |
| |
972 | 971 |
| |
973 | 972 |
| |
| |||
1062 | 1061 |
| |
1063 | 1062 |
| |
1064 | 1063 |
| |
1065 |
| - | |
1066 |
| - | |
| 1064 | + | |
| 1065 | + | |
1067 | 1066 |
| |
1068 | 1067 |
| |
1069 | 1068 |
| |
| |||
1121 | 1120 |
| |
1122 | 1121 |
| |
1123 | 1122 |
| |
1124 |
| - | |
| 1123 | + | |
1125 | 1124 |
| |
1126 | 1125 |
| |
1127 | 1126 |
| |
|
Lines changed: 77 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
335 | 335 |
| |
336 | 336 |
| |
337 | 337 |
| |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
338 | 415 |
| |
339 | 416 |
| |
340 | 417 |
| |
|
Lines changed: 5 additions & 20 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1475 | 1475 |
| |
1476 | 1476 |
| |
1477 | 1477 |
| |
| 1478 | + | |
1478 | 1479 |
| |
1479 | 1480 |
| |
1480 | 1481 |
| |
| 1482 | + | |
| 1483 | + | |
1481 | 1484 |
| |
1482 | 1485 |
| |
1483 | 1486 |
| |
| |||
1515 | 1518 |
| |
1516 | 1519 |
| |
1517 | 1520 |
| |
1518 |
| - | |
1519 | 1521 |
| |
1520 | 1522 |
| |
1521 | 1523 |
| |
1522 |
| - | |
1523 | 1524 |
| |
1524 | 1525 |
| |
1525 | 1526 |
| |
| |||
1530 | 1531 |
| |
1531 | 1532 |
| |
1532 | 1533 |
| |
1533 |
| - | |
1534 |
| - | |
1535 | 1534 |
| |
1536 | 1535 |
| |
1537 | 1536 |
| |
| |||
1628 | 1627 |
| |
1629 | 1628 |
| |
1630 | 1629 |
| |
1631 |
| - | |
1632 | 1630 |
| |
1633 | 1631 |
| |
1634 | 1632 |
| |
| |||
1691 | 1689 |
| |
1692 | 1690 |
| |
1693 | 1691 |
| |
| 1692 | + | |
1694 | 1693 |
| |
1695 | 1694 |
| |
1696 | 1695 |
| |
| |||
1738 | 1737 |
| |
1739 | 1738 |
| |
1740 | 1739 |
| |
| 1740 | + | |
1741 | 1741 |
| |
1742 | 1742 |
| |
1743 | 1743 |
| |
| |||
1752 | 1752 |
| |
1753 | 1753 |
| |
1754 | 1754 |
| |
1755 |
| - | |
1756 |
| - | |
1757 | 1755 |
| |
1758 | 1756 |
| |
1759 | 1757 |
| |
| |||
1854 | 1852 |
| |
1855 | 1853 |
| |
1856 | 1854 |
| |
1857 |
| - | |
1858 |
| - | |
1859 |
| - | |
1860 |
| - | |
1861 |
| - | |
1862 |
| - | |
1863 |
| - | |
1864 |
| - | |
1865 |
| - | |
1866 |
| - | |
1867 | 1855 |
| |
1868 | 1856 |
| |
1869 | 1857 |
| |
| |||
3015 | 3003 |
| |
3016 | 3004 |
| |
3017 | 3005 |
| |
3018 |
| - | |
3019 |
| - | |
3020 |
| - | |
3021 | 3006 |
| |
3022 | 3007 |
| |
3023 | 3008 |
| |
|
Lines changed: 113 additions & 16 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
78 | 78 |
| |
79 | 79 |
| |
80 | 80 |
| |
81 |
| - | |
82 |
| - | |
83 |
| - | |
84 |
| - | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
85 | 85 |
| |
86 | 86 |
| |
87 | 87 |
| |
| |||
173 | 173 |
| |
174 | 174 |
| |
175 | 175 |
| |
176 |
| - | |
177 |
| - | |
178 |
| - | |
179 |
| - | |
180 |
| - | |
181 |
| - | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
182 | 182 |
| |
183 | 183 |
| |
184 | 184 |
| |
| |||
526 | 526 |
| |
527 | 527 |
| |
528 | 528 |
| |
529 |
| - | |
530 |
| - | |
531 |
| - | |
532 |
| - | |
533 |
| - | |
534 |
| - | |
| 529 | + | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
535 | 534 |
| |
536 | 535 |
| |
537 | 536 |
| |
| |||
668 | 667 |
| |
669 | 668 |
| |
670 | 669 |
| |
| 670 | + | |
| 671 | + | |
| 672 | + | |
| 673 | + | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
| 678 | + | |
| 679 | + | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
| 685 | + | |
| 686 | + | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
| 710 | + | |
| 711 | + | |
| 712 | + | |
| 713 | + | |
| 714 | + | |
| 715 | + | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
| 719 | + | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
| 729 | + | |
| 730 | + | |
| 731 | + | |
| 732 | + | |
| 733 | + | |
| 734 | + | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
| 738 | + | |
| 739 | + | |
| 740 | + | |
| 741 | + | |
| 742 | + | |
| 743 | + | |
| 744 | + | |
| 745 | + | |
| 746 | + | |
| 747 | + | |
| 748 | + | |
| 749 | + | |
| 750 | + | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
| 756 | + | |
| 757 | + | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
671 | 768 |
|
0 commit comments
Comments
(0)