forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit428b260
committed
Speed up planning when partitions can be pruned at plan time.
Previously, the planner created RangeTblEntry and RelOptInfo structsfor every partition of a partitioned table, even though many of themmight later be deemed uninteresting thanks to partition pruning logic.This incurred significant overhead when there are many partitions.Arrange to postpone creation of these data structures until afterwe've processed the query enough to identify restriction quals forthe partitioned table, and then apply partition pruning before notafter creation of each partition's data structures. In this waywe need not open the partition relations at all for partitions thatthe planner has no real interest in.For queries that can be proven at plan time to access only a smallnumber of partitions, this patch improves the practical maximumnumber of partitions from under 100 to perhaps a few thousand.Amit Langote, reviewed at various times by Dilip Kumar, Jesper Pedersen,Yoshikazu Imai, and David RowleyDiscussion:https://postgr.es/m/9d7c5112-cb99-6a47-d3be-cf1ee6862a1d@lab.ntt.co.jp1 parentad3107b commit428b260
File tree
16 files changed
+887
-621
lines changed- contrib/postgres_fdw/expected
- src
- backend
- executor
- optimizer
- path
- plan
- prep
- util
- partitioning
- include
- nodes
- optimizer
- test/regress
- expected
- sql
16 files changed
+887
-621
lines changedLines changed: 21 additions & 21 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
7141 | 7141 |
| |
7142 | 7142 |
| |
7143 | 7143 |
| |
7144 |
| - | |
| 7144 | + | |
7145 | 7145 |
| |
7146 |
| - | |
| 7146 | + | |
7147 | 7147 |
| |
7148 | 7148 |
| |
7149 | 7149 |
| |
| |||
7153 | 7153 |
| |
7154 | 7154 |
| |
7155 | 7155 |
| |
7156 |
| - | |
| 7156 | + | |
7157 | 7157 |
| |
7158 |
| - | |
| 7158 | + | |
7159 | 7159 |
| |
7160 | 7160 |
| |
7161 | 7161 |
| |
7162 |
| - | |
| 7162 | + | |
7163 | 7163 |
| |
7164 |
| - | |
| 7164 | + | |
7165 | 7165 |
| |
7166 | 7166 |
| |
7167 | 7167 |
| |
| |||
7179 | 7179 |
| |
7180 | 7180 |
| |
7181 | 7181 |
| |
7182 |
| - | |
| 7182 | + | |
7183 | 7183 |
| |
7184 |
| - | |
| 7184 | + | |
7185 | 7185 |
| |
7186 | 7186 |
| |
7187 | 7187 |
| |
| |||
7191 | 7191 |
| |
7192 | 7192 |
| |
7193 | 7193 |
| |
7194 |
| - | |
| 7194 | + | |
7195 | 7195 |
| |
7196 |
| - | |
| 7196 | + | |
7197 | 7197 |
| |
7198 | 7198 |
| |
7199 | 7199 |
| |
7200 |
| - | |
| 7200 | + | |
7201 | 7201 |
| |
7202 |
| - | |
| 7202 | + | |
7203 | 7203 |
| |
7204 | 7204 |
| |
7205 | 7205 |
| |
| |||
7228 | 7228 |
| |
7229 | 7229 |
| |
7230 | 7230 |
| |
7231 |
| - | |
| 7231 | + | |
7232 | 7232 |
| |
7233 |
| - | |
| 7233 | + | |
7234 | 7234 |
| |
7235 | 7235 |
| |
7236 | 7236 |
| |
7237 |
| - | |
| 7237 | + | |
7238 | 7238 |
| |
7239 |
| - | |
| 7239 | + | |
7240 | 7240 |
| |
7241 | 7241 |
| |
7242 | 7242 |
| |
| |||
7246 | 7246 |
| |
7247 | 7247 |
| |
7248 | 7248 |
| |
7249 |
| - | |
| 7249 | + | |
7250 | 7250 |
| |
7251 |
| - | |
| 7251 | + | |
7252 | 7252 |
| |
7253 | 7253 |
| |
7254 | 7254 |
| |
7255 |
| - | |
| 7255 | + | |
7256 | 7256 |
| |
7257 |
| - | |
| 7257 | + | |
7258 | 7258 |
| |
7259 | 7259 |
| |
7260 | 7260 |
| |
| |||
8460 | 8460 |
| |
8461 | 8461 |
| |
8462 | 8462 |
| |
8463 |
| - | |
| 8463 | + | |
8464 | 8464 |
| |
8465 | 8465 |
| |
8466 | 8466 |
| |
|
Lines changed: 11 additions & 3 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1654 | 1654 |
| |
1655 | 1655 |
| |
1656 | 1656 |
| |
1657 |
| - | |
1658 |
| - | |
1659 |
| - | |
| 1657 | + | |
| 1658 | + | |
| 1659 | + | |
| 1660 | + | |
| 1661 | + | |
| 1662 | + | |
| 1663 | + | |
| 1664 | + | |
| 1665 | + | |
| 1666 | + | |
| 1667 | + | |
1660 | 1668 |
| |
1661 | 1669 |
| |
1662 | 1670 |
| |
|
Lines changed: 11 additions & 169 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
139 | 139 |
| |
140 | 140 |
| |
141 | 141 |
| |
142 |
| - | |
143 |
| - | |
144 |
| - | |
145 | 142 |
| |
146 | 143 |
| |
147 | 144 |
| |
| |||
396 | 393 |
| |
397 | 394 |
| |
398 | 395 |
| |
399 |
| - | |
400 |
| - | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
401 | 399 |
| |
402 | 400 |
| |
403 | 401 |
| |
| |||
946 | 944 |
| |
947 | 945 |
| |
948 | 946 |
| |
949 |
| - | |
950 |
| - | |
951 | 947 |
| |
952 | 948 |
| |
953 | 949 |
| |
| |||
965 | 961 |
| |
966 | 962 |
| |
967 | 963 |
| |
968 |
| - | |
969 |
| - | |
970 |
| - | |
971 |
| - | |
972 |
| - | |
973 |
| - | |
974 |
| - | |
975 |
| - | |
976 |
| - | |
977 |
| - | |
978 |
| - | |
979 |
| - | |
980 |
| - | |
981 |
| - | |
982 |
| - | |
983 | 964 |
| |
984 | 965 |
| |
985 | 966 |
| |
| |||
1034 | 1015 |
| |
1035 | 1016 |
| |
1036 | 1017 |
| |
1037 |
| - | |
1038 |
| - | |
1039 |
| - | |
1040 |
| - | |
| 1018 | + | |
| 1019 | + | |
1041 | 1020 |
| |
1042 |
| - | |
1043 | 1021 |
| |
1044 | 1022 |
| |
1045 | 1023 |
| |
1046 |
| - | |
1047 |
| - | |
1048 |
| - | |
1049 |
| - | |
| 1024 | + | |
| 1025 | + | |
| 1026 | + | |
| 1027 | + | |
1050 | 1028 |
| |
1051 |
| - | |
1052 |
| - | |
1053 |
| - | |
1054 |
| - | |
1055 |
| - | |
1056 |
| - | |
1057 |
| - | |
1058 |
| - | |
1059 |
| - | |
1060 |
| - | |
1061 | 1029 |
| |
1062 | 1030 |
| |
1063 | 1031 |
| |
| |||
1069 | 1037 |
| |
1070 | 1038 |
| |
1071 | 1039 |
| |
1072 |
| - | |
| 1040 | + | |
| 1041 | + | |
1073 | 1042 |
| |
1074 | 1043 |
| |
1075 | 1044 |
| |
| |||
3596 | 3565 |
| |
3597 | 3566 |
| |
3598 | 3567 |
| |
3599 |
| - | |
3600 |
| - | |
3601 |
| - | |
3602 |
| - | |
3603 |
| - | |
3604 |
| - | |
3605 |
| - | |
3606 |
| - | |
3607 |
| - | |
3608 |
| - | |
3609 |
| - | |
3610 |
| - | |
3611 |
| - | |
3612 |
| - | |
3613 |
| - | |
3614 |
| - | |
3615 |
| - | |
3616 |
| - | |
3617 |
| - | |
3618 |
| - | |
3619 |
| - | |
3620 |
| - | |
3621 |
| - | |
3622 |
| - | |
3623 |
| - | |
3624 |
| - | |
3625 |
| - | |
3626 |
| - | |
3627 |
| - | |
3628 |
| - | |
3629 |
| - | |
3630 |
| - | |
3631 |
| - | |
3632 |
| - | |
3633 |
| - | |
3634 |
| - | |
3635 |
| - | |
3636 |
| - | |
3637 |
| - | |
3638 |
| - | |
3639 |
| - | |
3640 |
| - | |
3641 |
| - | |
3642 |
| - | |
3643 |
| - | |
3644 |
| - | |
3645 |
| - | |
3646 |
| - | |
3647 |
| - | |
3648 |
| - | |
3649 |
| - | |
3650 |
| - | |
3651 |
| - | |
3652 |
| - | |
3653 |
| - | |
3654 |
| - | |
3655 |
| - | |
3656 |
| - | |
3657 |
| - | |
3658 |
| - | |
3659 |
| - | |
3660 |
| - | |
3661 |
| - | |
3662 |
| - | |
3663 |
| - | |
3664 |
| - | |
3665 |
| - | |
3666 |
| - | |
3667 |
| - | |
3668 |
| - | |
3669 |
| - | |
3670 |
| - | |
3671 |
| - | |
3672 |
| - | |
3673 |
| - | |
3674 |
| - | |
3675 |
| - | |
3676 |
| - | |
3677 |
| - | |
3678 |
| - | |
3679 |
| - | |
3680 |
| - | |
3681 |
| - | |
3682 |
| - | |
3683 |
| - | |
3684 |
| - | |
3685 |
| - | |
3686 |
| - | |
3687 |
| - | |
3688 |
| - | |
3689 |
| - | |
3690 |
| - | |
3691 |
| - | |
3692 |
| - | |
3693 |
| - | |
3694 |
| - | |
3695 |
| - | |
3696 |
| - | |
3697 |
| - | |
3698 |
| - | |
3699 |
| - | |
3700 |
| - | |
3701 |
| - | |
3702 |
| - | |
3703 |
| - | |
3704 |
| - | |
3705 |
| - | |
3706 |
| - | |
3707 |
| - | |
3708 |
| - | |
3709 |
| - | |
3710 |
| - | |
3711 |
| - | |
3712 |
| - | |
3713 |
| - | |
3714 |
| - | |
3715 |
| - | |
3716 |
| - | |
3717 |
| - | |
3718 |
| - | |
3719 |
| - | |
3720 |
| - | |
3721 |
| - | |
3722 |
| - | |
3723 |
| - | |
3724 |
| - | |
3725 |
| - | |
3726 | 3568 |
| |
3727 | 3569 |
| |
3728 | 3570 |
| |
|
Lines changed: 2 additions & 6 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
20 | 20 |
| |
21 | 21 |
| |
22 | 22 |
| |
| 23 | + | |
23 | 24 |
| |
24 | 25 |
| |
25 | 26 |
| |
| |||
159 | 160 |
| |
160 | 161 |
| |
161 | 162 |
| |
162 |
| - | |
163 |
| - | |
164 |
| - | |
165 |
| - | |
166 |
| - | |
167 |
| - | |
| 163 | + | |
168 | 164 |
| |
169 | 165 |
| |
170 | 166 |
| |
|
0 commit comments
Comments
(0)