- Notifications
You must be signed in to change notification settings - Fork5
Commit4387cf9
committed
Avoid inserting Result nodes that only compute identity projections.
The planner sometimes inserts Result nodes to perform column projections(ie, arbitrary scalar calculations) above plan nodes that lack projectionlogic of their own. However, we did that even if the lower plan node wasin fact producing the required column set already; which is a pretty commoncase given the popularity of "SELECT * FROM ...". Measurements show thatthe useless plan node adds non-negligible overhead, especially when thereare many columns in the result. So add a check to avoid inserting a Resultnode unless there's something useful for it to do.There are a couple of remaining places where unnecessary Result nodescould get inserted, but they are (a) much less performance-critical,and (b) coded in such a way that it's hard to avoid inserting a Result,because the desired tlist is changed on-the-fly in subsequent logic.We'll leave those alone for now.Kyotaro Horiguchi; reviewed and further hacked on by Amit Kapila andTom Lane.1 parenta5ff502 commit4387cf9
File tree
7 files changed
+163
-128
lines changed- src
- backend/optimizer
- plan
- util
- include/optimizer
- test/regress/expected
7 files changed
+163
-128
lines changedLines changed: 5 additions & 3 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
937 | 937 |
| |
938 | 938 |
| |
939 | 939 |
| |
940 |
| - | |
941 |
| - | |
| 940 | + | |
| 941 | + | |
| 942 | + | |
942 | 943 |
| |
943 |
| - | |
| 944 | + | |
| 945 | + | |
944 | 946 |
| |
945 | 947 |
| |
946 | 948 |
| |
|
Lines changed: 11 additions & 6 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1379 | 1379 |
| |
1380 | 1380 |
| |
1381 | 1381 |
| |
1382 |
| - | |
| 1382 | + | |
| 1383 | + | |
1383 | 1384 |
| |
1384 | 1385 |
| |
1385 |
| - | |
| 1386 | + | |
| 1387 | + | |
1386 | 1388 |
| |
1387 | 1389 |
| |
1388 | 1390 |
| |
| |||
1542 | 1544 |
| |
1543 | 1545 |
| |
1544 | 1546 |
| |
1545 |
| - | |
1546 |
| - | |
1547 |
| - | |
1548 |
| - | |
| 1547 | + | |
| 1548 | + | |
| 1549 | + | |
| 1550 | + | |
| 1551 | + | |
| 1552 | + | |
| 1553 | + | |
1549 | 1554 |
| |
1550 | 1555 |
| |
1551 | 1556 |
| |
|
Lines changed: 37 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
158 | 158 |
| |
159 | 159 |
| |
160 | 160 |
| |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
161 | 198 |
| |
162 | 199 |
| |
163 | 200 |
| |
|
Lines changed: 3 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
25 | 25 |
| |
26 | 26 |
| |
27 | 27 |
| |
| 28 | + | |
| 29 | + | |
| 30 | + | |
28 | 31 |
| |
29 | 32 |
| |
30 | 33 |
| |
|
Lines changed: 42 additions & 46 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
385 | 385 |
| |
386 | 386 |
| |
387 | 387 |
| |
388 |
| - | |
389 |
| - | |
390 |
| - | |
391 |
| - | |
392 |
| - | |
393 |
| - | |
394 |
| - | |
395 |
| - | |
396 |
| - | |
397 |
| - | |
398 |
| - | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
399 | 398 |
| |
400 | 399 |
| |
401 | 400 |
| |
402 |
| - | |
403 |
| - | |
404 |
| - | |
405 |
| - | |
406 |
| - | |
407 |
| - | |
408 |
| - | |
409 |
| - | |
410 |
| - | |
411 |
| - | |
412 |
| - | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
413 | 411 |
| |
414 | 412 |
| |
415 |
| - | |
416 |
| - | |
417 |
| - | |
418 |
| - | |
419 |
| - | |
420 |
| - | |
421 |
| - | |
422 |
| - | |
423 |
| - | |
424 |
| - | |
425 |
| - | |
426 |
| - | |
427 |
| - | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
428 | 425 |
| |
429 | 426 |
| |
430 | 427 |
| |
431 | 428 |
| |
432 |
| - | |
433 |
| - | |
434 |
| - | |
435 |
| - | |
436 |
| - | |
437 |
| - | |
438 |
| - | |
439 |
| - | |
440 |
| - | |
441 |
| - | |
442 |
| - | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
443 | 439 |
| |
444 | 440 |
| |
445 | 441 |
| |
|
Lines changed: 52 additions & 58 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1210 | 1210 |
| |
1211 | 1211 |
| |
1212 | 1212 |
| |
1213 |
| - | |
1214 |
| - | |
1215 |
| - | |
1216 |
| - | |
1217 |
| - | |
1218 |
| - | |
1219 |
| - | |
1220 |
| - | |
1221 |
| - | |
1222 |
| - | |
1223 |
| - | |
1224 |
| - | |
1225 |
| - | |
1226 |
| - | |
1227 |
| - | |
1228 |
| - | |
1229 |
| - | |
1230 |
| - | |
| 1213 | + | |
| 1214 | + | |
| 1215 | + | |
| 1216 | + | |
| 1217 | + | |
| 1218 | + | |
| 1219 | + | |
| 1220 | + | |
| 1221 | + | |
| 1222 | + | |
| 1223 | + | |
| 1224 | + | |
| 1225 | + | |
| 1226 | + | |
| 1227 | + | |
| 1228 | + | |
1231 | 1229 |
| |
1232 | 1230 |
| |
1233 | 1231 |
| |
| |||
1258 | 1256 |
| |
1259 | 1257 |
| |
1260 | 1258 |
| |
1261 |
| - | |
1262 |
| - | |
1263 |
| - | |
1264 |
| - | |
1265 |
| - | |
1266 |
| - | |
1267 |
| - | |
1268 |
| - | |
1269 |
| - | |
1270 |
| - | |
| 1259 | + | |
| 1260 | + | |
| 1261 | + | |
| 1262 | + | |
| 1263 | + | |
| 1264 | + | |
| 1265 | + | |
| 1266 | + | |
| 1267 | + | |
1271 | 1268 |
| |
1272 | 1269 |
| |
1273 | 1270 |
| |
1274 | 1271 |
| |
1275 | 1272 |
| |
1276 | 1273 |
| |
1277 |
| - | |
1278 |
| - | |
1279 |
| - | |
1280 |
| - | |
1281 |
| - | |
1282 |
| - | |
1283 |
| - | |
1284 |
| - | |
1285 |
| - | |
1286 |
| - | |
| 1274 | + | |
| 1275 | + | |
| 1276 | + | |
| 1277 | + | |
| 1278 | + | |
| 1279 | + | |
| 1280 | + | |
| 1281 | + | |
| 1282 | + | |
1287 | 1283 |
| |
1288 | 1284 |
| |
1289 | 1285 |
| |
1290 | 1286 |
| |
1291 | 1287 |
| |
1292 | 1288 |
| |
1293 |
| - | |
1294 |
| - | |
1295 |
| - | |
1296 |
| - | |
1297 |
| - | |
1298 |
| - | |
1299 |
| - | |
1300 |
| - | |
1301 |
| - | |
1302 |
| - | |
| 1289 | + | |
| 1290 | + | |
| 1291 | + | |
| 1292 | + | |
| 1293 | + | |
| 1294 | + | |
| 1295 | + | |
| 1296 | + | |
| 1297 | + | |
1303 | 1298 |
| |
1304 | 1299 |
| |
1305 | 1300 |
| |
| |||
1345 | 1340 |
| |
1346 | 1341 |
| |
1347 | 1342 |
| |
1348 |
| - | |
1349 |
| - | |
1350 |
| - | |
1351 |
| - | |
1352 |
| - | |
1353 |
| - | |
1354 |
| - | |
1355 |
| - | |
1356 |
| - | |
1357 |
| - | |
| 1343 | + | |
| 1344 | + | |
| 1345 | + | |
| 1346 | + | |
| 1347 | + | |
| 1348 | + | |
| 1349 | + | |
| 1350 | + | |
| 1351 | + | |
1358 | 1352 |
| |
1359 | 1353 |
| |
1360 | 1354 |
| |
|
Lines changed: 13 additions & 15 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
474 | 474 |
| |
475 | 475 |
| |
476 | 476 |
| |
477 |
| - | |
478 |
| - | |
479 |
| - | |
480 |
| - | |
481 |
| - | |
482 |
| - | |
483 |
| - | |
484 |
| - | |
485 |
| - | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
486 | 485 |
| |
487 | 486 |
| |
488 | 487 |
| |
| |||
510 | 509 |
| |
511 | 510 |
| |
512 | 511 |
| |
513 |
| - | |
514 |
| - | |
515 |
| - | |
516 |
| - | |
517 |
| - | |
518 |
| - | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
519 | 517 |
|
0 commit comments
Comments
(0)