Commit bfc78d7
committed
Rewrite interaction of parallel mode with parallel executor support.
In the previous coding, before returning from ExecutorRun, we'd shut
down all parallel workers. This was dead wrong if ExecutorRun was
called with a non-zero tuple count; it had the effect of truncating
the query output. To fix, give ExecutePlan control over whether to
enter parallel mode, and have it refuse to do so if the tuple count
is non-zero. Rewrite the Gather logic so that it can cope with being
called outside parallel mode.
Commit 7aea8e4 is largely to blame
for this problem, though this patch modifies some subsequently-committed
code which relied on the guarantees it purported to make.1 parent 816e336 commit bfc78d7
File tree
5 files changed
+95
-70
lines changed- src
- backend/executor
- include
- executor
- nodes
5 files changed
+95
-70
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
76 | 76 | | |
77 | 77 | | |
78 | 78 | | |
| 79 | + | |
79 | 80 | | |
80 | 81 | | |
81 | 82 | | |
| |||
243 | 244 | | |
244 | 245 | | |
245 | 246 | | |
246 | | - | |
247 | | - | |
248 | | - | |
249 | | - | |
250 | | - | |
251 | 247 | | |
252 | 248 | | |
253 | 249 | | |
| |||
341 | 337 | | |
342 | 338 | | |
343 | 339 | | |
| 340 | + | |
344 | 341 | | |
345 | 342 | | |
346 | 343 | | |
347 | 344 | | |
348 | 345 | | |
349 | 346 | | |
350 | | - | |
351 | | - | |
352 | | - | |
353 | 347 | | |
354 | 348 | | |
355 | 349 | | |
| |||
482 | 476 | | |
483 | 477 | | |
484 | 478 | | |
485 | | - | |
486 | | - | |
487 | | - | |
488 | | - | |
489 | | - | |
490 | 479 | | |
491 | 480 | | |
492 | 481 | | |
| |||
1529 | 1518 | | |
1530 | 1519 | | |
1531 | 1520 | | |
| 1521 | + | |
1532 | 1522 | | |
1533 | 1523 | | |
1534 | 1524 | | |
| |||
1548 | 1538 | | |
1549 | 1539 | | |
1550 | 1540 | | |
| 1541 | + | |
| 1542 | + | |
| 1543 | + | |
| 1544 | + | |
| 1545 | + | |
| 1546 | + | |
| 1547 | + | |
| 1548 | + | |
| 1549 | + | |
| 1550 | + | |
| 1551 | + | |
| 1552 | + | |
| 1553 | + | |
| 1554 | + | |
1551 | 1555 | | |
1552 | 1556 | | |
1553 | 1557 | | |
| |||
1566 | 1570 | | |
1567 | 1571 | | |
1568 | 1572 | | |
| 1573 | + | |
| 1574 | + | |
| 1575 | + | |
1569 | 1576 | | |
| 1577 | + | |
1570 | 1578 | | |
1571 | 1579 | | |
1572 | 1580 | | |
| |||
1603 | 1611 | | |
1604 | 1612 | | |
1605 | 1613 | | |
| 1614 | + | |
| 1615 | + | |
| 1616 | + | |
1606 | 1617 | | |
1607 | 1618 | | |
1608 | 1619 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
442 | 442 | | |
443 | 443 | | |
444 | 444 | | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
445 | 462 | | |
446 | 463 | | |
447 | 464 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| 19 | + | |
19 | 20 | | |
20 | 21 | | |
21 | 22 | | |
| |||
45 | 46 | | |
46 | 47 | | |
47 | 48 | | |
48 | | - | |
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
| |||
106 | 106 | | |
107 | 107 | | |
108 | 108 | | |
109 | | - | |
| 109 | + | |
110 | 110 | | |
111 | 111 | | |
112 | | - | |
113 | | - | |
114 | | - | |
115 | | - | |
116 | | - | |
| 112 | + | |
117 | 113 | | |
118 | 114 | | |
119 | | - | |
120 | | - | |
121 | | - | |
122 | | - | |
| 115 | + | |
| 116 | + | |
123 | 117 | | |
124 | | - | |
125 | | - | |
126 | | - | |
127 | | - | |
128 | | - | |
| 118 | + | |
129 | 119 | | |
130 | | - | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
131 | 136 | | |
132 | | - | |
133 | | - | |
134 | | - | |
135 | | - | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
136 | 145 | | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
137 | 150 | | |
138 | 151 | | |
139 | | - | |
140 | | - | |
141 | | - | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
142 | 156 | | |
143 | 157 | | |
144 | 158 | | |
145 | 159 | | |
146 | | - | |
147 | | - | |
148 | | - | |
149 | | - | |
150 | | - | |
151 | | - | |
152 | | - | |
153 | | - | |
154 | | - | |
155 | 160 | | |
156 | 161 | | |
157 | 162 | | |
| |||
194 | 199 | | |
195 | 200 | | |
196 | 201 | | |
197 | | - | |
198 | | - | |
| 202 | + | |
199 | 203 | | |
200 | | - | |
| 204 | + | |
201 | 205 | | |
202 | 206 | | |
203 | 207 | | |
| |||
206 | 210 | | |
207 | 211 | | |
208 | 212 | | |
209 | | - | |
| 213 | + | |
210 | 214 | | |
211 | 215 | | |
212 | 216 | | |
| |||
247 | 251 | | |
248 | 252 | | |
249 | 253 | | |
250 | | - | |
251 | | - | |
252 | | - | |
253 | | - | |
254 | | - | |
255 | | - | |
256 | | - | |
257 | | - | |
258 | | - | |
259 | | - | |
| 254 | + | |
| 255 | + | |
260 | 256 | | |
261 | 257 | | |
262 | 258 | | |
263 | 259 | | |
264 | 260 | | |
265 | | - | |
266 | | - | |
267 | | - | |
268 | | - | |
269 | | - | |
270 | | - | |
271 | | - | |
272 | | - | |
273 | | - | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
274 | 268 | | |
275 | 269 | | |
276 | 270 | | |
| |||
295 | 289 | | |
296 | 290 | | |
297 | 291 | | |
| 292 | + | |
| 293 | + | |
298 | 294 | | |
299 | 295 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
| 35 | + | |
35 | 36 | | |
36 | 37 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1961 | 1961 | | |
1962 | 1962 | | |
1963 | 1963 | | |
| 1964 | + | |
1964 | 1965 | | |
1965 | 1966 | | |
1966 | | - | |
1967 | 1967 | | |
1968 | 1968 | | |
1969 | 1969 | | |
| |||
0 commit comments