- Notifications
You must be signed in to change notification settings - Fork5
Commite7cb7ee
committed
Allow FDWs and custom scan providers to replace joins with scans.
Foreign data wrappers can use this capability for so-called "joinpushdown"; that is, instead of executing two separate foreign scansand then joining the results locally, they can generate a path whichperforms the join on the remote server and then is scanned locally.This commit does not extend postgres_fdw to take advantage of thiscapability; it just provides the infrastructure.Custom scan providers can use this in a similar way. Previously,it was only possible for a custom scan provider to scan a singlerelation. Now, it can scan an entire join tree, provided of coursethat it knows how to produce the same results that the join wouldhave produced if executed normally.KaiGai Kohei, reviewed by Shigeru Hanada, Ashutosh Bapat, and me.1 parent2b22795 commite7cb7ee
File tree
20 files changed
+449
-72
lines changed- doc/src/sgml
- src
- backend
- commands
- executor
- foreign
- nodes
- optimizer
- path
- plan
- util
- utils/adt
- include
- foreign
- nodes
- optimizer
20 files changed
+449
-72
lines changedLines changed: 40 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
81 | 81 |
| |
82 | 82 |
| |
83 | 83 |
| |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
84 | 106 |
| |
85 | 107 |
| |
86 | 108 |
| |
| |||
124 | 146 |
| |
125 | 147 |
| |
126 | 148 |
| |
| 149 | + | |
127 | 150 |
| |
| 151 | + | |
128 | 152 |
| |
129 | 153 |
| |
130 | 154 |
| |
| |||
141 | 165 |
| |
142 | 166 |
| |
143 | 167 |
| |
| 168 | + | |
| 169 | + | |
| 170 | + | |
144 | 171 |
| |
145 | 172 |
| |
146 | 173 |
| |
147 | 174 |
| |
148 | 175 |
| |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
149 | 189 |
| |
150 | 190 |
| |
151 | 191 |
| |
|
Lines changed: 36 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
598 | 598 |
| |
599 | 599 |
| |
600 | 600 |
| |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
601 | 637 |
| |
602 | 638 |
| |
603 | 639 |
| |
|
Lines changed: 12 additions & 3 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
730 | 730 |
| |
731 | 731 |
| |
732 | 732 |
| |
733 |
| - | |
734 |
| - | |
735 | 733 |
| |
736 | 734 |
| |
737 | 735 |
| |
| 736 | + | |
| 737 | + | |
| 738 | + | |
| 739 | + | |
| 740 | + | |
| 741 | + | |
| 742 | + | |
| 743 | + | |
738 | 744 |
| |
739 | 745 |
| |
740 | 746 |
| |
| |||
1072 | 1078 |
| |
1073 | 1079 |
| |
1074 | 1080 |
| |
| 1081 | + | |
| 1082 | + | |
1075 | 1083 |
| |
1076 | 1084 |
| |
1077 |
| - | |
| 1085 | + | |
| 1086 | + | |
1078 | 1087 |
| |
1079 | 1088 |
| |
1080 | 1089 |
| |
|
Lines changed: 6 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
251 | 251 |
| |
252 | 252 |
| |
253 | 253 |
| |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
254 | 260 |
| |
255 | 261 |
| |
256 | 262 |
| |
|
Lines changed: 24 additions & 10 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
23 | 23 |
| |
24 | 24 |
| |
25 | 25 |
| |
26 |
| - | |
| 26 | + | |
27 | 27 |
| |
28 | 28 |
| |
29 | 29 |
| |
| |||
48 | 48 |
| |
49 | 49 |
| |
50 | 50 |
| |
51 |
| - | |
52 |
| - | |
53 |
| - | |
54 |
| - | |
55 |
| - | |
56 |
| - | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
57 | 71 |
| |
58 | 72 |
| |
59 | 73 |
| |
| |||
89 | 103 |
| |
90 | 104 |
| |
91 | 105 |
| |
92 |
| - | |
93 |
| - | |
| 106 | + | |
94 | 107 |
| |
95 | 108 |
| |
96 |
| - | |
| 109 | + | |
| 110 | + | |
97 | 111 |
| |
98 | 112 |
| |
99 | 113 |
| |
|
Lines changed: 20 additions & 11 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
102 | 102 |
| |
103 | 103 |
| |
104 | 104 |
| |
105 |
| - | |
| 105 | + | |
106 | 106 |
| |
107 | 107 |
| |
108 | 108 |
| |
| |||
141 | 141 |
| |
142 | 142 |
| |
143 | 143 |
| |
144 |
| - | |
| 144 | + | |
| 145 | + | |
145 | 146 |
| |
146 |
| - | |
147 |
| - | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
148 | 150 |
| |
149 |
| - | |
150 |
| - | |
151 |
| - | |
152 |
| - | |
153 |
| - | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
154 | 162 |
| |
155 | 163 |
| |
156 | 164 |
| |
| |||
161 | 169 |
| |
162 | 170 |
| |
163 | 171 |
| |
164 |
| - | |
| 172 | + | |
165 | 173 |
| |
166 | 174 |
| |
167 | 175 |
| |
| |||
193 | 201 |
| |
194 | 202 |
| |
195 | 203 |
| |
196 |
| - | |
| 204 | + | |
| 205 | + | |
197 | 206 |
| |
198 | 207 |
| |
199 | 208 |
| |
|
Lines changed: 16 additions & 5 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
304 | 304 |
| |
305 | 305 |
| |
306 | 306 |
| |
307 |
| - | |
308 |
| - | |
| 307 | + | |
| 308 | + | |
309 | 309 |
| |
310 |
| - | |
311 |
| - | |
| 310 | + | |
| 311 | + | |
312 | 312 |
| |
313 | 313 |
| |
314 | 314 |
| |
| |||
350 | 350 |
| |
351 | 351 |
| |
352 | 352 |
| |
353 |
| - | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
354 | 365 |
| |
355 | 366 |
| |
356 | 367 |
| |
|
Lines changed: 5 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
592 | 592 |
| |
593 | 593 |
| |
594 | 594 |
| |
| 595 | + | |
595 | 596 |
| |
| 597 | + | |
596 | 598 |
| |
| 599 | + | |
597 | 600 |
| |
598 | 601 |
| |
599 | 602 |
| |
| |||
617 | 620 |
| |
618 | 621 |
| |
619 | 622 |
| |
| 623 | + | |
620 | 624 |
| |
| 625 | + | |
621 | 626 |
| |
622 | 627 |
| |
623 | 628 |
| |
|
Lines changed: 5 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
558 | 558 |
| |
559 | 559 |
| |
560 | 560 |
| |
| 561 | + | |
561 | 562 |
| |
| 563 | + | |
562 | 564 |
| |
| 565 | + | |
563 | 566 |
| |
564 | 567 |
| |
565 | 568 |
| |
| |||
572 | 575 |
| |
573 | 576 |
| |
574 | 577 |
| |
| 578 | + | |
575 | 579 |
| |
| 580 | + | |
576 | 581 |
| |
577 | 582 |
| |
578 | 583 |
| |
|
Lines changed: 24 additions & 0 deletions
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 |
| |
| 25 | + | |
| 26 | + | |
24 | 27 |
| |
25 | 28 |
| |
26 | 29 |
| |
| |||
260 | 263 |
| |
261 | 264 |
| |
262 | 265 |
| |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
263 | 287 |
| |
264 | 288 |
| |
265 | 289 |
| |
|
0 commit comments
Comments
(0)