forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit9e9931d

Etsuro Fujita
Re-allow FDWs and custom scan providers to replace joins with pseudoconstant quals.
This was disabled in commit6f80a8d due to the lack of support forhandling of pseudoconstant quals assigned to replaced joins increateplan.c. To re-allow it, this patch adds the support by 1)modifying the ForeignPath and CustomPath structs so that if theyrepresent foreign and custom scans replacing a join with a scan, theystore the list of RestrictInfo nodes to apply to the join, as inJoinPaths, and by 2) modifying create_scan_plan() in createplan.c sothat it uses that list in that case, instead of the baserestrictinfolist, to get pseudoconstant quals assigned to the join, as mentioned inthe commit message for that commit.Important item for the release notes: this is non-backwards-compatiblesince it modifies the ForeignPath and CustomPath structs, as mentionedabove, and changes the argument lists for FDW helper functionscreate_foreignscan_path(), create_foreign_join_path(), andcreate_foreign_upper_path().Richard Guo, with some additional changes by me, reviewed by NishantSharma, Suraj Kharage, and Richard Guo.Discussion:https://postgr.es/m/CADrsxdbcN1vejBaf8a%2BQhrZY5PXL-04mCd4GDu6qm6FigDZd6Q%40mail.gmail.com1 parent5ffb7c7 commit9e9931d
File tree
13 files changed
+99
-76
lines changed- contrib
- file_fdw
- postgres_fdw
- expected
- sql
- doc/src/sgml
- src
- backend/optimizer
- path
- plan
- util
- include
- nodes
- optimizer
13 files changed
+99
-76
lines changedLines changed: 1 addition & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
581 | 581 |
| |
582 | 582 |
| |
583 | 583 |
| |
| 584 | + | |
584 | 585 |
| |
585 | 586 |
| |
586 | 587 |
| |
|
Lines changed: 10 additions & 20 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
2316 | 2316 |
| |
2317 | 2317 |
| |
2318 | 2318 |
| |
2319 |
| - | |
| 2319 | + | |
2320 | 2320 |
| |
2321 | 2321 |
| |
2322 |
| - | |
2323 |
| - | |
| 2322 | + | |
| 2323 | + | |
2324 | 2324 |
| |
2325 | 2325 |
| |
2326 |
| - | |
| 2326 | + | |
2327 | 2327 |
| |
2328 |
| - | |
2329 |
| - | |
2330 |
| - | |
2331 |
| - | |
2332 |
| - | |
2333 |
| - | |
2334 |
| - | |
2335 |
| - | |
2336 |
| - | |
2337 |
| - | |
2338 |
| - | |
2339 |
| - | |
2340 |
| - | |
2341 |
| - | |
2342 |
| - | |
2343 |
| - | |
| 2328 | + | |
| 2329 | + | |
| 2330 | + | |
| 2331 | + | |
| 2332 | + | |
| 2333 | + | |
2344 | 2334 |
| |
2345 | 2335 |
| |
2346 | 2336 |
| |
|
Lines changed: 15 additions & 5 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
524 | 524 |
| |
525 | 525 |
| |
526 | 526 |
| |
527 |
| - | |
| 527 | + | |
528 | 528 |
| |
529 | 529 |
| |
530 | 530 |
| |
| |||
1034 | 1034 |
| |
1035 | 1035 |
| |
1036 | 1036 |
| |
| 1037 | + | |
1037 | 1038 |
| |
1038 | 1039 |
| |
1039 | 1040 |
| |
1040 | 1041 |
| |
1041 |
| - | |
| 1042 | + | |
1042 | 1043 |
| |
1043 | 1044 |
| |
1044 | 1045 |
| |
| |||
1206 | 1207 |
| |
1207 | 1208 |
| |
1208 | 1209 |
| |
| 1210 | + | |
1209 | 1211 |
| |
1210 | 1212 |
| |
1211 | 1213 |
| |
| |||
5991 | 5993 |
| |
5992 | 5994 |
| |
5993 | 5995 |
| |
5994 |
| - | |
| 5996 | + | |
5995 | 5997 |
| |
5996 | 5998 |
| |
5997 | 5999 |
| |
| |||
6085 | 6087 |
| |
6086 | 6088 |
| |
6087 | 6089 |
| |
| 6090 | + | |
6088 | 6091 |
| |
6089 | 6092 |
| |
6090 | 6093 |
| |
| |||
6096 | 6099 |
| |
6097 | 6100 |
| |
6098 | 6101 |
| |
| 6102 | + | |
6099 | 6103 |
| |
6100 | 6104 |
| |
6101 | 6105 |
| |
| |||
6348 | 6352 |
| |
6349 | 6353 |
| |
6350 | 6354 |
| |
| 6355 | + | |
6351 | 6356 |
| |
6352 | 6357 |
| |
6353 | 6358 |
| |
6354 | 6359 |
| |
6355 | 6360 |
| |
6356 | 6361 |
| |
6357 |
| - | |
| 6362 | + | |
| 6363 | + | |
6358 | 6364 |
| |
6359 | 6365 |
| |
6360 | 6366 |
| |
| |||
6735 | 6741 |
| |
6736 | 6742 |
| |
6737 | 6743 |
| |
| 6744 | + | |
6738 | 6745 |
| |
6739 | 6746 |
| |
6740 | 6747 |
| |
| |||
6868 | 6875 |
| |
6869 | 6876 |
| |
6870 | 6877 |
| |
| 6878 | + | |
6871 | 6879 |
| |
6872 | 6880 |
| |
6873 | 6881 |
| |
| |||
6983 | 6991 |
| |
6984 | 6992 |
| |
6985 | 6993 |
| |
6986 |
| - | |
| 6994 | + | |
| 6995 | + | |
6987 | 6996 |
| |
6988 | 6997 |
| |
6989 | 6998 |
| |
| |||
7103 | 7112 |
| |
7104 | 7113 |
| |
7105 | 7114 |
| |
| 7115 | + | |
7106 | 7116 |
| |
7107 | 7117 |
| |
7108 | 7118 |
| |
|
Lines changed: 1 addition & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
640 | 640 |
| |
641 | 641 |
| |
642 | 642 |
| |
643 |
| - | |
| 643 | + | |
644 | 644 |
| |
645 | 645 |
| |
646 | 646 |
| |
|
Lines changed: 16 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
62 | 62 |
| |
63 | 63 |
| |
64 | 64 |
| |
| 65 | + | |
65 | 66 |
| |
66 | 67 |
| |
67 | 68 |
| |
| |||
85 | 86 |
| |
86 | 87 |
| |
87 | 88 |
| |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
88 | 93 |
| |
89 | 94 |
| |
90 | 95 |
| |
| |||
114 | 119 |
| |
115 | 120 |
| |
116 | 121 |
| |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
117 | 133 |
| |
118 | 134 |
| |
119 | 135 |
| |
|
Lines changed: 11 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
333 | 333 |
| |
334 | 334 |
| |
335 | 335 |
| |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
336 | 347 |
| |
337 | 348 |
| |
338 | 349 |
| |
|
Lines changed: 2 additions & 17 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
24 | 24 |
| |
25 | 25 |
| |
26 | 26 |
| |
27 |
| - | |
28 | 27 |
| |
29 | 28 |
| |
30 | 29 |
| |
| |||
131 | 130 |
| |
132 | 131 |
| |
133 | 132 |
| |
134 |
| - | |
135 | 133 |
| |
136 | 134 |
| |
137 | 135 |
| |
| |||
323 | 321 |
| |
324 | 322 |
| |
325 | 323 |
| |
326 |
| - | |
327 |
| - | |
328 |
| - | |
329 |
| - | |
330 |
| - | |
331 |
| - | |
332 |
| - | |
333 |
| - | |
334 |
| - | |
335 |
| - | |
336 |
| - | |
337 | 324 |
| |
338 | 325 |
| |
339 | 326 |
| |
340 | 327 |
| |
341 | 328 |
| |
342 | 329 |
| |
343 |
| - | |
344 |
| - | |
| 330 | + | |
345 | 331 |
| |
346 | 332 |
| |
347 | 333 |
| |
348 | 334 |
| |
349 | 335 |
| |
350 | 336 |
| |
351 | 337 |
| |
352 |
| - | |
353 |
| - | |
| 338 | + | |
354 | 339 |
| |
355 | 340 |
| |
356 | 341 |
| |
|
Lines changed: 20 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
599 | 599 |
| |
600 | 600 |
| |
601 | 601 |
| |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
602 | 607 |
| |
603 |
| - | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
604 | 623 |
| |
605 | 624 |
| |
606 | 625 |
| |
|
Lines changed: 10 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
2229 | 2229 |
| |
2230 | 2230 |
| |
2231 | 2231 |
| |
| 2232 | + | |
2232 | 2233 |
| |
2233 | 2234 |
| |
2234 | 2235 |
| |
| |||
2250 | 2251 |
| |
2251 | 2252 |
| |
2252 | 2253 |
| |
| 2254 | + | |
2253 | 2255 |
| |
2254 | 2256 |
| |
2255 | 2257 |
| |
| |||
2273 | 2275 |
| |
2274 | 2276 |
| |
2275 | 2277 |
| |
| 2278 | + | |
2276 | 2279 |
| |
2277 | 2280 |
| |
2278 | 2281 |
| |
| |||
2300 | 2303 |
| |
2301 | 2304 |
| |
2302 | 2305 |
| |
| 2306 | + | |
2303 | 2307 |
| |
2304 | 2308 |
| |
2305 | 2309 |
| |
| |||
2322 | 2326 |
| |
2323 | 2327 |
| |
2324 | 2328 |
| |
| 2329 | + | |
2325 | 2330 |
| |
2326 | 2331 |
| |
2327 | 2332 |
| |
| |||
2345 | 2350 |
| |
2346 | 2351 |
| |
2347 | 2352 |
| |
| 2353 | + | |
2348 | 2354 |
| |
2349 | 2355 |
| |
2350 | 2356 |
| |
| |||
4149 | 4155 |
| |
4150 | 4156 |
| |
4151 | 4157 |
| |
| 4158 | + | |
| 4159 | + | |
4152 | 4160 |
| |
4153 | 4161 |
| |
4154 | 4162 |
| |
| |||
4166 | 4174 |
| |
4167 | 4175 |
| |
4168 | 4176 |
| |
| 4177 | + | |
| 4178 | + | |
4169 | 4179 |
| |
4170 | 4180 |
| |
4171 | 4181 |
| |
|
0 commit comments
Comments
(0)