forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commitdb436ad
committed
Major revision of sort-node handling: push knowledge of query
sort order down into planner, instead of handling it only at the very toplevel of the planner. This fixes many things. An explicit sort is nowavoided if there is a cheaper alternative (typically an indexscan) notonly for ORDER BY, but also for the internal sort of GROUP BY. It workseven when there is no other reason (such as a WHERE condition) to considerthe indexscan. It works for indexes on functions. It works for indexeson functions, backwards. It's just so cool...CAUTION: I have changed the representation of SortClause nodes, thereforeTHIS UPDATE BREAKS STORED RULES. You will need to initdb.1 parent5588c55 commitdb436ad
File tree
33 files changed
+961
-996
lines changed- src
- backend
- executor
- nodes
- optimizer
- path
- plan
- prep
- util
- parser
- rewrite
- utils/adt
- include
- nodes
- optimizer
- parser
33 files changed
+961
-996
lines changedLines changed: 31 additions & 20 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
23 | 23 |
| |
24 | 24 |
| |
25 | 25 |
| |
| 26 | + | |
26 | 27 |
| |
27 | 28 |
| |
28 | 29 |
| |
| |||
91 | 92 |
| |
92 | 93 |
| |
93 | 94 |
| |
94 |
| - | |
| 95 | + | |
95 | 96 |
| |
96 | 97 |
| |
97 | 98 |
| |
| |||
128 | 129 |
| |
129 | 130 |
| |
130 | 131 |
| |
131 |
| - | |
| 132 | + | |
132 | 133 |
| |
133 | 134 |
| |
134 | 135 |
| |
135 | 136 |
| |
136 |
| - | |
137 |
| - | |
| 137 | + | |
| 138 | + | |
138 | 139 |
| |
139 |
| - | |
140 |
| - | |
| 140 | + | |
| 141 | + | |
141 | 142 |
| |
142 |
| - | |
143 |
| - | |
| 143 | + | |
| 144 | + | |
144 | 145 |
| |
145 | 146 |
| |
146 | 147 |
| |
147 | 148 |
| |
148 | 149 |
| |
149 | 150 |
| |
150 | 151 |
| |
151 |
| - | |
| 152 | + | |
152 | 153 |
| |
153 | 154 |
| |
154 | 155 |
| |
| |||
269 | 270 |
| |
270 | 271 |
| |
271 | 272 |
| |
272 |
| - | |
| 273 | + | |
273 | 274 |
| |
274 | 275 |
| |
275 | 276 |
| |
| |||
367 | 368 |
| |
368 | 369 |
| |
369 | 370 |
| |
370 |
| - | |
| 371 | + | |
371 | 372 |
| |
372 | 373 |
| |
373 | 374 |
| |
| |||
467 | 468 |
| |
468 | 469 |
| |
469 | 470 |
| |
| 471 | + | |
470 | 472 |
| |
471 | 473 |
| |
472 | 474 |
| |
| |||
478 | 480 |
| |
479 | 481 |
| |
480 | 482 |
| |
481 |
| - | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
482 | 493 |
| |
483 | 494 |
| |
484 | 495 |
| |
| |||
495 | 506 |
| |
496 | 507 |
| |
497 | 508 |
| |
498 |
| - | |
499 |
| - | |
500 |
| - | |
501 |
| - | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
502 | 513 |
| |
503 | 514 |
| |
504 | 515 |
| |
| |||
510 | 521 |
| |
511 | 522 |
| |
512 | 523 |
| |
513 |
| - | |
| 524 | + | |
514 | 525 |
| |
515 | 526 |
| |
516 | 527 |
| |
| |||
645 | 656 |
| |
646 | 657 |
| |
647 | 658 |
| |
648 |
| - | |
649 |
| - | |
650 |
| - | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
651 | 662 |
| |
652 | 663 |
| |
653 | 664 |
| |
|
Lines changed: 19 additions & 30 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
7 | 7 |
| |
8 | 8 |
| |
9 | 9 |
| |
10 |
| - | |
| 10 | + | |
11 | 11 |
| |
12 | 12 |
| |
13 | 13 |
| |
| |||
456 | 456 |
| |
457 | 457 |
| |
458 | 458 |
| |
459 |
| - | |
460 |
| - | |
461 |
| - | |
462 |
| - | |
463 |
| - | |
464 |
| - | |
465 | 459 |
| |
466 | 460 |
| |
467 | 461 |
| |
| |||
474 | 468 |
| |
475 | 469 |
| |
476 | 470 |
| |
477 |
| - | |
478 |
| - | |
| 471 | + | |
| 472 | + | |
479 | 473 |
| |
480 | 474 |
| |
481 | 475 |
| |
| |||
567 | 561 |
| |
568 | 562 |
| |
569 | 563 |
| |
570 |
| - | |
571 | 564 |
| |
572 | 565 |
| |
| 566 | + | |
573 | 567 |
| |
574 | 568 |
| |
575 |
| - | |
576 | 569 |
| |
577 | 570 |
| |
578 | 571 |
| |
| |||
862 | 855 |
| |
863 | 856 |
| |
864 | 857 |
| |
865 |
| - | |
866 | 858 |
| |
| 859 | + | |
867 | 860 |
| |
868 | 861 |
| |
869 | 862 |
| |
| |||
1345 | 1338 |
| |
1346 | 1339 |
| |
1347 | 1340 |
| |
1348 |
| - | |
1349 |
| - | |
| 1341 | + | |
| 1342 | + | |
1350 | 1343 |
| |
1351 | 1344 |
| |
1352 | 1345 |
| |
| |||
1398 | 1391 |
| |
1399 | 1392 |
| |
1400 | 1393 |
| |
1401 |
| - | |
1402 |
| - | |
1403 |
| - | |
| 1394 | + | |
| 1395 | + | |
| 1396 | + | |
1404 | 1397 |
| |
1405 | 1398 |
| |
1406 | 1399 |
| |
| 1400 | + | |
1407 | 1401 |
| |
| 1402 | + | |
| 1403 | + | |
| 1404 | + | |
1408 | 1405 |
| |
1409 | 1406 |
| |
1410 | 1407 |
| |
1411 |
| - | |
1412 |
| - | |
1413 |
| - | |
1414 |
| - | |
1415 |
| - | |
1416 |
| - | |
1417 |
| - | |
1418 |
| - | |
1419 |
| - | |
1420 |
| - | |
1421 |
| - | |
1422 |
| - | |
| 1408 | + | |
| 1409 | + | |
1423 | 1410 |
| |
1424 | 1411 |
| |
1425 | 1412 |
| |
1426 | 1413 |
| |
1427 |
| - | |
| 1414 | + | |
| 1415 | + | |
| 1416 | + | |
1428 | 1417 |
| |
1429 | 1418 |
| |
1430 | 1419 |
| |
|
Lines changed: 25 additions & 17 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
7 | 7 |
| |
8 | 8 |
| |
9 | 9 |
| |
10 |
| - | |
| 10 | + | |
11 | 11 |
| |
12 | 12 |
| |
13 | 13 |
| |
| |||
34 | 34 |
| |
35 | 35 |
| |
36 | 36 |
| |
37 |
| - | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
38 | 49 |
| |
39 | 50 |
| |
40 | 51 |
| |
41 | 52 |
| |
42 | 53 |
| |
43 |
| - | |
44 |
| - | |
45 | 54 |
| |
46 | 55 |
| |
47 | 56 |
| |
| |||
208 | 217 |
| |
209 | 218 |
| |
210 | 219 |
| |
211 |
| - | |
212 |
| - | |
213 | 220 |
| |
214 | 221 |
| |
| 222 | + | |
215 | 223 |
| |
216 | 224 |
| |
217 | 225 |
| |
| |||
503 | 511 |
| |
504 | 512 |
| |
505 | 513 |
| |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
506 | 522 |
| |
507 | 523 |
| |
508 | 524 |
| |
| |||
515 | 531 |
| |
516 | 532 |
| |
517 | 533 |
| |
518 |
| - | |
519 |
| - | |
520 |
| - | |
521 |
| - | |
522 |
| - | |
523 |
| - | |
524 |
| - | |
525 |
| - | |
526 | 534 |
| |
527 | 535 |
| |
528 | 536 |
| |
| |||
537 | 545 |
| |
538 | 546 |
| |
539 | 547 |
| |
540 |
| - | |
541 |
| - | |
542 |
| - | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
543 | 551 |
| |
544 | 552 |
| |
545 | 553 |
| |
|
Lines changed: 8 additions & 9 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
7 | 7 |
| |
8 | 8 |
| |
9 | 9 |
| |
10 |
| - | |
| 10 | + | |
11 | 11 |
| |
12 | 12 |
| |
13 | 13 |
| |
| |||
371 | 371 |
| |
372 | 372 |
| |
373 | 373 |
| |
374 |
| - | |
375 |
| - | |
376 | 374 |
| |
377 | 375 |
| |
378 | 376 |
| |
| |||
964 | 962 |
| |
965 | 963 |
| |
966 | 964 |
| |
967 |
| - | |
968 |
| - | |
969 | 965 |
| |
970 | 966 |
| |
971 | 967 |
| |
| |||
1000 | 996 |
| |
1001 | 997 |
| |
1002 | 998 |
| |
| 999 | + | |
| 1000 | + | |
| 1001 | + | |
| 1002 | + | |
1003 | 1003 |
| |
1004 | 1004 |
| |
1005 | 1005 |
| |
1006 | 1006 |
| |
1007 |
| - | |
1008 |
| - | |
1009 |
| - | |
1010 | 1007 |
| |
1011 | 1008 |
| |
| 1009 | + | |
1012 | 1010 |
| |
1013 | 1011 |
| |
1014 | 1012 |
| |
1015 |
| - | |
| 1013 | + | |
| 1014 | + | |
1016 | 1015 |
| |
1017 | 1016 |
| |
1018 | 1017 |
| |
|
0 commit comments
Comments
(0)