forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit9ea2614
committed
Stabilise incremental sort cost calculation.
Carefully identify an expression that can represent the path key on sortestimation. Columns may have different distinct estimations that can triggerwrong cost estimations and choice of sort strategy.Sorting has only pathkeys as input for the cost estimation. This patch, insteadof a blind choice of the first equivalence class member, attempts to find anexpression that chooses the most negligible ndistinct value.TODO: Filtering expressions from outer query subtrees is not a big deal. Butin that case, information about underlying relids is necessary for the costcalculation routine that causes API change. So, just wait for some time forthe community decision.Add into EquivalenceMember the number of distinct values - em_ndistinct.It may be additionally used later in groups number estimations.Task: 9578.Tags: optimized_group_by.1 parentb8aa44f commit9ea2614
File tree
5 files changed
+152
-5
lines changed- src
- backend/optimizer/path
- include/nodes
- test/regress
- expected
- sql
5 files changed
+152
-5
lines changedLines changed: 67 additions & 5 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
192 | 192 |
| |
193 | 193 |
| |
194 | 194 |
| |
| 195 | + | |
| 196 | + | |
195 | 197 |
| |
196 | 198 |
| |
197 | 199 |
| |
| |||
2016 | 2018 |
| |
2017 | 2019 |
| |
2018 | 2020 |
| |
2019 |
| - | |
2020 |
| - | |
2021 |
| - | |
| 2021 | + | |
| 2022 | + | |
2022 | 2023 |
| |
2023 | 2024 |
| |
2024 | 2025 |
| |
2025 | 2026 |
| |
2026 | 2027 |
| |
2027 |
| - | |
| 2028 | + | |
2028 | 2029 |
| |
2029 | 2030 |
| |
2030 | 2031 |
| |
2031 | 2032 |
| |
2032 | 2033 |
| |
2033 | 2034 |
| |
2034 |
| - | |
| 2035 | + | |
2035 | 2036 |
| |
2036 | 2037 |
| |
2037 | 2038 |
| |
| |||
6491 | 6492 |
| |
6492 | 6493 |
| |
6493 | 6494 |
| |
| 6495 | + | |
| 6496 | + | |
| 6497 | + | |
| 6498 | + | |
| 6499 | + | |
| 6500 | + | |
| 6501 | + | |
| 6502 | + | |
| 6503 | + | |
| 6504 | + | |
| 6505 | + | |
| 6506 | + | |
| 6507 | + | |
| 6508 | + | |
| 6509 | + | |
| 6510 | + | |
| 6511 | + | |
| 6512 | + | |
| 6513 | + | |
| 6514 | + | |
| 6515 | + | |
| 6516 | + | |
| 6517 | + | |
| 6518 | + | |
| 6519 | + | |
| 6520 | + | |
| 6521 | + | |
| 6522 | + | |
| 6523 | + | |
| 6524 | + | |
| 6525 | + | |
| 6526 | + | |
| 6527 | + | |
| 6528 | + | |
| 6529 | + | |
| 6530 | + | |
| 6531 | + | |
| 6532 | + | |
| 6533 | + | |
| 6534 | + | |
| 6535 | + | |
| 6536 | + | |
| 6537 | + | |
| 6538 | + | |
| 6539 | + | |
| 6540 | + | |
| 6541 | + | |
| 6542 | + | |
| 6543 | + | |
| 6544 | + | |
| 6545 | + | |
| 6546 | + | |
| 6547 | + | |
| 6548 | + | |
| 6549 | + | |
| 6550 | + | |
| 6551 | + | |
| 6552 | + | |
| 6553 | + | |
| 6554 | + | |
| 6555 | + |
Lines changed: 1 addition & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
526 | 526 |
| |
527 | 527 |
| |
528 | 528 |
| |
| 529 | + | |
529 | 530 |
| |
530 | 531 |
| |
531 | 532 |
| |
|
Lines changed: 2 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1439 | 1439 |
| |
1440 | 1440 |
| |
1441 | 1441 |
| |
| 1442 | + | |
| 1443 | + | |
1442 | 1444 |
| |
1443 | 1445 |
| |
1444 | 1446 |
| |
|
Lines changed: 51 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1698 | 1698 |
| |
1699 | 1699 |
| |
1700 | 1700 |
| |
| 1701 | + | |
| 1702 | + | |
| 1703 | + | |
| 1704 | + | |
| 1705 | + | |
| 1706 | + | |
| 1707 | + | |
| 1708 | + | |
| 1709 | + | |
| 1710 | + | |
| 1711 | + | |
| 1712 | + | |
| 1713 | + | |
| 1714 | + | |
| 1715 | + | |
| 1716 | + | |
| 1717 | + | |
| 1718 | + | |
| 1719 | + | |
| 1720 | + | |
| 1721 | + | |
| 1722 | + | |
| 1723 | + | |
| 1724 | + | |
| 1725 | + | |
| 1726 | + | |
| 1727 | + | |
| 1728 | + | |
| 1729 | + | |
| 1730 | + | |
| 1731 | + | |
| 1732 | + | |
| 1733 | + | |
| 1734 | + | |
| 1735 | + | |
| 1736 | + | |
| 1737 | + | |
| 1738 | + | |
| 1739 | + | |
| 1740 | + | |
| 1741 | + | |
| 1742 | + | |
| 1743 | + | |
| 1744 | + | |
| 1745 | + | |
| 1746 | + | |
| 1747 | + | |
| 1748 | + | |
| 1749 | + | |
| 1750 | + | |
| 1751 | + |
Lines changed: 31 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
292 | 292 |
| |
293 | 293 |
| |
294 | 294 |
| |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + |
0 commit comments
Comments
(0)