forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commite2159f3
committed
Teach the planner to remove SubqueryScan nodes from the plan if they
aren't doing anything useful (ie, neither selection nor projection).Also, extend to SubqueryScan the hacks already in place to avoidunnecessary ExecProject calls when the result would just be the sametuple the subquery already delivered. This saves some overhead inUNION and other set operations, as well as avoiding overhead forunflatten-able subqueries. Per example from Sokolov Yura.1 parentc61207b commite2159f3
File tree
13 files changed
+603
-175
lines changed- src
- backend
- executor
- optimizer
- plan
- prep
- util
- include/optimizer
13 files changed
+603
-175
lines changedLines changed: 5 additions & 11 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
26 | 26 |
| |
27 | 27 |
| |
28 | 28 |
| |
29 |
| - | |
| 29 | + | |
30 | 30 |
| |
31 | 31 |
| |
32 | 32 |
| |
| |||
353 | 353 |
| |
354 | 354 |
| |
355 | 355 |
| |
356 |
| - | |
357 |
| - | |
358 |
| - | |
359 |
| - | |
360 |
| - | |
361 |
| - | |
362 |
| - | |
363 |
| - | |
364 |
| - | |
365 |
| - | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
366 | 360 |
| |
367 | 361 |
| |
368 | 362 |
| |
|
Lines changed: 9 additions & 4 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
12 | 12 |
| |
13 | 13 |
| |
14 | 14 |
| |
15 |
| - | |
| 15 | + | |
16 | 16 |
| |
17 | 17 |
| |
18 | 18 |
| |
| |||
48 | 48 |
| |
49 | 49 |
| |
50 | 50 |
| |
51 |
| - | |
52 | 51 |
| |
53 | 52 |
| |
54 | 53 |
| |
| |||
58 | 57 |
| |
59 | 58 |
| |
60 | 59 |
| |
61 |
| - | |
62 |
| - | |
63 | 60 |
| |
64 | 61 |
| |
65 | 62 |
| |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
66 | 70 |
| |
67 | 71 |
| |
68 | 72 |
| |
| |||
83 | 87 |
| |
84 | 88 |
| |
85 | 89 |
| |
| 90 | + | |
86 | 91 |
| |
87 | 92 |
| |
88 | 93 |
| |
|
Lines changed: 32 additions & 47 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
8 | 8 |
| |
9 | 9 |
| |
10 | 10 |
| |
11 |
| - | |
| 11 | + | |
12 | 12 |
| |
13 | 13 |
| |
14 | 14 |
| |
| |||
251 | 251 |
| |
252 | 252 |
| |
253 | 253 |
| |
254 |
| - | |
| 254 | + | |
255 | 255 |
| |
256 | 256 |
| |
257 | 257 |
| |
258 | 258 |
| |
259 | 259 |
| |
260 |
| - | |
261 |
| - | |
262 |
| - | |
263 |
| - | |
264 |
| - | |
265 |
| - | |
266 |
| - | |
267 |
| - | |
268 |
| - | |
269 |
| - | |
270 |
| - | |
271 |
| - | |
272 |
| - | |
273 |
| - | |
274 |
| - | |
275 |
| - | |
276 |
| - | |
277 |
| - | |
278 |
| - | |
279 |
| - | |
280 |
| - | |
281 |
| - | |
282 |
| - | |
283 |
| - | |
284 |
| - | |
285 |
| - | |
| 260 | + | |
286 | 261 |
| |
| 262 | + | |
| 263 | + | |
| 264 | + | |
287 | 265 |
| |
288 |
| - | |
289 |
| - | |
290 |
| - | |
291 |
| - | |
| 266 | + | |
292 | 267 |
| |
293 |
| - | |
294 |
| - | |
295 |
| - | |
296 |
| - | |
| 268 | + | |
| 269 | + | |
297 | 270 |
| |
298 |
| - | |
299 |
| - | |
| 271 | + | |
300 | 272 |
| |
301 |
| - | |
302 |
| - | |
303 |
| - | |
304 |
| - | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
305 | 286 |
| |
306 | 287 |
| |
307 |
| - | |
308 |
| - | |
| 288 | + | |
| 289 | + | |
309 | 290 |
| |
310 | 291 |
| |
311 |
| - | |
312 |
| - | |
| 292 | + | |
| 293 | + | |
313 | 294 |
| |
314 |
| - | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
315 | 300 |
| |
316 | 301 |
| |
317 | 302 |
| |
|
Lines changed: 3 additions & 4 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
8 | 8 |
| |
9 | 9 |
| |
10 | 10 |
| |
11 |
| - | |
| 11 | + | |
12 | 12 |
| |
13 | 13 |
| |
14 | 14 |
| |
| |||
219 | 219 |
| |
220 | 220 |
| |
221 | 221 |
| |
222 |
| - | |
223 |
| - | |
| 222 | + | |
224 | 223 |
| |
225 | 224 |
| |
226 | 225 |
| |
| |||
235 | 234 |
| |
236 | 235 |
| |
237 | 236 |
| |
238 |
| - | |
| 237 | + | |
239 | 238 |
| |
240 | 239 |
| |
241 | 240 |
| |
|
Lines changed: 21 additions & 4 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
12 | 12 |
| |
13 | 13 |
| |
14 | 14 |
| |
15 |
| - | |
| 15 | + | |
16 | 16 |
| |
17 | 17 |
| |
18 | 18 |
| |
| |||
78 | 78 |
| |
79 | 79 |
| |
80 | 80 |
| |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
81 | 85 |
| |
82 | 86 |
| |
83 | 87 |
| |
| |||
144 | 148 |
| |
145 | 149 |
| |
146 | 150 |
| |
147 |
| - | |
| 151 | + | |
148 | 152 |
| |
149 | 153 |
| |
150 | 154 |
| |
151 | 155 |
| |
152 | 156 |
| |
| 157 | + | |
153 | 158 |
| |
154 | 159 |
| |
155 | 160 |
| |
| |||
159 | 164 |
| |
160 | 165 |
| |
161 | 166 |
| |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
162 | 172 |
| |
163 | 173 |
| |
164 | 174 |
| |
| |||
187 | 197 |
| |
188 | 198 |
| |
189 | 199 |
| |
190 |
| - | |
191 | 200 |
| |
192 | 201 |
| |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
193 | 209 |
| |
194 | 210 |
| |
195 | 211 |
| |
196 | 212 |
| |
197 |
| - | |
| 213 | + | |
198 | 214 |
| |
199 | 215 |
| |
200 | 216 |
| |
| |||
230 | 246 |
| |
231 | 247 |
| |
232 | 248 |
| |
| 249 | + | |
233 | 250 |
| |
234 | 251 |
| |
235 | 252 |
| |
|
Lines changed: 5 additions & 4 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
10 | 10 |
| |
11 | 11 |
| |
12 | 12 |
| |
13 |
| - | |
| 13 | + | |
14 | 14 |
| |
15 | 15 |
| |
16 | 16 |
| |
| |||
308 | 308 |
| |
309 | 309 |
| |
310 | 310 |
| |
311 |
| - | |
312 |
| - | |
313 |
| - | |
| 311 | + | |
| 312 | + | |
314 | 313 |
| |
| 314 | + | |
| 315 | + | |
315 | 316 |
| |
316 | 317 |
| |
317 | 318 |
| |
|
Lines changed: 4 additions & 4 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
8 | 8 |
| |
9 | 9 |
| |
10 | 10 |
| |
11 |
| - | |
| 11 | + | |
12 | 12 |
| |
13 | 13 |
| |
14 | 14 |
| |
| |||
144 | 144 |
| |
145 | 145 |
| |
146 | 146 |
| |
| 147 | + | |
| 148 | + | |
| 149 | + | |
147 | 150 |
| |
148 | 151 |
| |
149 | 152 |
| |
150 |
| - | |
151 |
| - | |
152 |
| - | |
153 | 153 |
| |
154 | 154 |
| |
155 | 155 |
| |
|
0 commit comments
Comments
(0)