forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit16dc270
committed
Support "Right Anti Join" plan shapes.
Merge and hash joins can support antijoin with the non-nullable inputon the right, using very simple combinations of their existing logicfor right join and anti join. This gives the planner more freedomabout how to order the join. It's particularly useful for hash join,since we may now have the option to hash the smaller table insteadof the larger.Richard Guo, reviewed by Ronan Dunklau and myselfDiscussion:https://postgr.es/m/CAMbWs48xh9hMzXzSy3VaPzGAz+fkxXXTUbCLohX1_L8THFRm2Q@mail.gmail.com1 parentdad50f6 commit16dc270
File tree
12 files changed
+244
-194
lines changed- src
- backend
- commands
- executor
- optimizer
- path
- prep
- include/nodes
- test/regress/expected
12 files changed
+244
-194
lines changedLines changed: 3 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1561 | 1561 |
| |
1562 | 1562 |
| |
1563 | 1563 |
| |
| 1564 | + | |
| 1565 | + | |
| 1566 | + | |
1564 | 1567 |
| |
1565 | 1568 |
| |
1566 | 1569 |
| |
|
Lines changed: 23 additions & 12 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
86 | 86 |
| |
87 | 87 |
| |
88 | 88 |
| |
89 |
| - | |
| 89 | + | |
90 | 90 |
| |
91 | 91 |
| |
92 | 92 |
| |
| |||
228 | 228 |
| |
229 | 229 |
| |
230 | 230 |
| |
231 |
| - | |
232 |
| - | |
233 |
| - | |
234 |
| - | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
235 | 235 |
| |
236 | 236 |
| |
237 | 237 |
| |
| |||
519 | 519 |
| |
520 | 520 |
| |
521 | 521 |
| |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
522 | 530 |
| |
523 | 531 |
| |
524 | 532 |
| |
| |||
564 | 572 |
| |
565 | 573 |
| |
566 | 574 |
| |
567 |
| - | |
568 |
| - | |
569 |
| - | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
570 | 579 |
| |
571 | 580 |
| |
572 | 581 |
| |
| |||
732 | 741 |
| |
733 | 742 |
| |
734 | 743 |
| |
| 744 | + | |
735 | 745 |
| |
736 | 746 |
| |
737 | 747 |
| |
| |||
1027 | 1037 |
| |
1028 | 1038 |
| |
1029 | 1039 |
| |
1030 |
| - | |
1031 |
| - | |
| 1040 | + | |
| 1041 | + | |
| 1042 | + | |
1032 | 1043 |
| |
1033 | 1044 |
| |
1034 | 1045 |
| |
| |||
1349 | 1360 |
| |
1350 | 1361 |
| |
1351 | 1362 |
| |
1352 |
| - | |
1353 |
| - | |
| 1363 | + | |
| 1364 | + | |
1354 | 1365 |
| |
1355 | 1366 |
| |
1356 | 1367 |
| |
|
Lines changed: 21 additions & 12 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
805 | 805 |
| |
806 | 806 |
| |
807 | 807 |
| |
| 808 | + | |
| 809 | + | |
| 810 | + | |
| 811 | + | |
| 812 | + | |
| 813 | + | |
| 814 | + | |
| 815 | + | |
808 | 816 |
| |
809 | 817 |
| |
810 | 818 |
| |
| |||
1063 | 1071 |
| |
1064 | 1072 |
| |
1065 | 1073 |
| |
1066 |
| - | |
1067 |
| - | |
1068 |
| - | |
1069 |
| - | |
1070 |
| - | |
1071 |
| - | |
| 1074 | + | |
| 1075 | + | |
| 1076 | + | |
| 1077 | + | |
| 1078 | + | |
| 1079 | + | |
1072 | 1080 |
| |
1073 | 1081 |
| |
1074 | 1082 |
| |
| |||
1332 | 1340 |
| |
1333 | 1341 |
| |
1334 | 1342 |
| |
1335 |
| - | |
1336 |
| - | |
| 1343 | + | |
| 1344 | + | |
1337 | 1345 |
| |
1338 | 1346 |
| |
1339 | 1347 |
| |
| |||
1554 | 1562 |
| |
1555 | 1563 |
| |
1556 | 1564 |
| |
| 1565 | + | |
1557 | 1566 |
| |
1558 | 1567 |
| |
1559 | 1568 |
| |
1560 | 1569 |
| |
1561 | 1570 |
| |
1562 | 1571 |
| |
1563 |
| - | |
1564 |
| - | |
| 1572 | + | |
| 1573 | + | |
1565 | 1574 |
| |
1566 | 1575 |
| |
1567 | 1576 |
| |
| |||
1578 | 1587 |
| |
1579 | 1588 |
| |
1580 | 1589 |
| |
1581 |
| - | |
1582 |
| - | |
| 1590 | + | |
| 1591 | + | |
1583 | 1592 |
| |
1584 | 1593 |
| |
1585 | 1594 |
| |
|
Lines changed: 2 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
3330 | 3330 |
| |
3331 | 3331 |
| |
3332 | 3332 |
| |
3333 |
| - | |
| 3333 | + | |
| 3334 | + | |
3334 | 3335 |
| |
3335 | 3336 |
| |
3336 | 3337 |
| |
|
Lines changed: 28 additions & 21 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
286 | 286 |
| |
287 | 287 |
| |
288 | 288 |
| |
289 |
| - | |
290 |
| - | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
291 | 292 |
| |
292 | 293 |
| |
293 | 294 |
| |
| |||
1261 | 1262 |
| |
1262 | 1263 |
| |
1263 | 1264 |
| |
1264 |
| - | |
1265 |
| - | |
1266 |
| - | |
| 1265 | + | |
| 1266 | + | |
| 1267 | + | |
1267 | 1268 |
| |
1268 | 1269 |
| |
1269 | 1270 |
| |
1270 | 1271 |
| |
1271 | 1272 |
| |
| 1273 | + | |
1272 | 1274 |
| |
1273 | 1275 |
| |
1274 | 1276 |
| |
| |||
1663 | 1665 |
| |
1664 | 1666 |
| |
1665 | 1667 |
| |
1666 |
| - | |
1667 |
| - | |
1668 |
| - | |
1669 |
| - | |
| 1668 | + | |
| 1669 | + | |
| 1670 | + | |
| 1671 | + | |
1670 | 1672 |
| |
1671 | 1673 |
| |
1672 | 1674 |
| |
| |||
1678 | 1680 |
| |
1679 | 1681 |
| |
1680 | 1682 |
| |
| 1683 | + | |
1681 | 1684 |
| |
1682 | 1685 |
| |
1683 | 1686 |
| |
| |||
1849 | 1852 |
| |
1850 | 1853 |
| |
1851 | 1854 |
| |
1852 |
| - | |
1853 |
| - | |
| 1855 | + | |
| 1856 | + | |
1854 | 1857 |
| |
1855 | 1858 |
| |
1856 | 1859 |
| |
1857 | 1860 |
| |
1858 | 1861 |
| |
| 1862 | + | |
1859 | 1863 |
| |
1860 | 1864 |
| |
1861 | 1865 |
| |
| |||
2228 | 2232 |
| |
2229 | 2233 |
| |
2230 | 2234 |
| |
2231 |
| - | |
2232 |
| - | |
2233 |
| - | |
| 2235 | + | |
| 2236 | + | |
| 2237 | + | |
2234 | 2238 |
| |
2235 |
| - | |
| 2239 | + | |
| 2240 | + | |
| 2241 | + | |
2236 | 2242 |
| |
2237 | 2243 |
| |
2238 | 2244 |
| |
| |||
2256 | 2262 |
| |
2257 | 2263 |
| |
2258 | 2264 |
| |
2259 |
| - | |
2260 |
| - | |
2261 |
| - | |
2262 |
| - | |
| 2265 | + | |
| 2266 | + | |
| 2267 | + | |
| 2268 | + | |
2263 | 2269 |
| |
2264 | 2270 |
| |
2265 | 2271 |
| |
| |||
2305 | 2311 |
| |
2306 | 2312 |
| |
2307 | 2313 |
| |
2308 |
| - | |
2309 |
| - | |
| 2314 | + | |
| 2315 | + | |
2310 | 2316 |
| |
2311 | 2317 |
| |
2312 | 2318 |
| |
| |||
2349 | 2355 |
| |
2350 | 2356 |
| |
2351 | 2357 |
| |
| 2358 | + | |
2352 | 2359 |
| |
2353 | 2360 |
| |
2354 | 2361 |
| |
|
Lines changed: 3 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
925 | 925 |
| |
926 | 926 |
| |
927 | 927 |
| |
| 928 | + | |
| 929 | + | |
| 930 | + | |
928 | 931 |
| |
929 | 932 |
| |
930 | 933 |
| |
|
Lines changed: 6 additions & 4 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1077 | 1077 |
| |
1078 | 1078 |
| |
1079 | 1079 |
| |
1080 |
| - | |
1081 |
| - | |
1082 |
| - | |
| 1080 | + | |
| 1081 | + | |
| 1082 | + | |
1083 | 1083 |
| |
1084 | 1084 |
| |
1085 | 1085 |
| |
| |||
1095 | 1095 |
| |
1096 | 1096 |
| |
1097 | 1097 |
| |
1098 |
| - | |
| 1098 | + | |
| 1099 | + | |
| 1100 | + | |
1099 | 1101 |
| |
1100 | 1102 |
| |
1101 | 1103 |
| |
|
Lines changed: 8 additions & 6 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
406 | 406 |
| |
407 | 407 |
| |
408 | 408 |
| |
409 |
| - | |
410 |
| - | |
| 409 | + | |
| 410 | + | |
411 | 411 |
| |
412 | 412 |
| |
413 | 413 |
| |
| |||
2640 | 2640 |
| |
2641 | 2641 |
| |
2642 | 2642 |
| |
2643 |
| - | |
2644 |
| - | |
2645 |
| - | |
| 2643 | + | |
| 2644 | + | |
| 2645 | + | |
| 2646 | + | |
2646 | 2647 |
| |
2647 | 2648 |
| |
2648 | 2649 |
| |
| |||
2896 | 2897 |
| |
2897 | 2898 |
| |
2898 | 2899 |
| |
2899 |
| - | |
| 2900 | + | |
| 2901 | + | |
2900 | 2902 |
| |
2901 | 2903 |
| |
2902 | 2904 |
| |
|
Lines changed: 2 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
2073 | 2073 |
| |
2074 | 2074 |
| |
2075 | 2075 |
| |
2076 |
| - | |
| 2076 | + | |
| 2077 | + | |
2077 | 2078 |
| |
2078 | 2079 |
| |
2079 | 2080 |
| |
|
Lines changed: 3 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
317 | 317 |
| |
318 | 318 |
| |
319 | 319 |
| |
| 320 | + | |
320 | 321 |
| |
321 | 322 |
| |
322 | 323 |
| |
| |||
349 | 350 |
| |
350 | 351 |
| |
351 | 352 |
| |
352 |
| - | |
| 353 | + | |
| 354 | + | |
353 | 355 |
| |
354 | 356 |
| |
355 | 357 |
| |
|
0 commit comments
Comments
(0)