- Notifications
You must be signed in to change notification settings - Fork5k
Commit767c598
committed
Work around implementation restriction in adjust_appendrel_attrs.
adjust_appendrel_attrs can't transfer nullingrel labeling to a non-Vartranslation expression (mainly because it's too late to wrap such anexpression in a PlaceHolderVar). I'd supposed in commit2489d76that that restriction was unreachable because we'd not attempt to pushproblematic clauses down to an appendrel child relation. I forgot thatset_append_rel_size blindly converts all the parent rel's joininfoclauses to child clauses, and that list could well contain clausesfrom above a nulling outer join.We might eventually have to devise a direct fix for this implementationrestriction, but for now it seems enough to filter out troublesomeclauses while constructing the child's joininfo list. Such clausesare certainly not useful while constructing paths for the child rel;they'll have to be applied later when we join the completed appendrelto something else. So we don't need them here, and omitting them fromthe list should save a few cycles while processing the child rel.Per bug #17832 from Marko Tiikkaja.Discussion:https://postgr.es/m/17832-d0a8106cdf1b722e@postgresql.org1 parent872e3d1 commit767c598
File tree
3 files changed
+53
-4
lines changed- src
- backend/optimizer/path
- test/regress
- expected
- sql
3 files changed
+53
-4
lines changedLines changed: 24 additions & 4 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
979 | 979 |
| |
980 | 980 |
| |
981 | 981 |
| |
| 982 | + | |
982 | 983 |
| |
983 | 984 |
| |
| 985 | + | |
984 | 986 |
| |
985 | 987 |
| |
986 | 988 |
| |
| |||
1021 | 1023 |
| |
1022 | 1024 |
| |
1023 | 1025 |
| |
| 1026 | + | |
| 1027 | + | |
| 1028 | + | |
| 1029 | + | |
| 1030 | + | |
| 1031 | + | |
| 1032 | + | |
| 1033 | + | |
| 1034 | + | |
| 1035 | + | |
| 1036 | + | |
| 1037 | + | |
| 1038 | + | |
| 1039 | + | |
| 1040 | + | |
| 1041 | + | |
| 1042 | + | |
| 1043 | + | |
| 1044 | + | |
| 1045 | + | |
| 1046 | + | |
| 1047 | + | |
1024 | 1048 |
| |
1025 | 1049 |
| |
1026 | 1050 |
| |
1027 | 1051 |
| |
1028 | 1052 |
| |
1029 | 1053 |
| |
1030 | 1054 |
| |
1031 |
| - | |
1032 |
| - | |
1033 |
| - | |
1034 |
| - | |
1035 | 1055 |
| |
1036 | 1056 |
| |
1037 | 1057 |
| |
|
Lines changed: 22 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
3613 | 3613 |
| |
3614 | 3614 |
| |
3615 | 3615 |
| |
| 3616 | + | |
| 3617 | + | |
| 3618 | + | |
| 3619 | + | |
| 3620 | + | |
| 3621 | + | |
| 3622 | + | |
| 3623 | + | |
| 3624 | + | |
| 3625 | + | |
| 3626 | + | |
| 3627 | + | |
| 3628 | + | |
| 3629 | + | |
| 3630 | + | |
| 3631 | + | |
| 3632 | + | |
| 3633 | + | |
| 3634 | + | |
| 3635 | + | |
| 3636 | + | |
| 3637 | + | |
3616 | 3638 |
| |
3617 | 3639 |
| |
3618 | 3640 |
| |
|
Lines changed: 7 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1189 | 1189 |
| |
1190 | 1190 |
| |
1191 | 1191 |
| |
| 1192 | + | |
| 1193 | + | |
| 1194 | + | |
| 1195 | + | |
| 1196 | + | |
| 1197 | + | |
| 1198 | + | |
1192 | 1199 |
| |
1193 | 1200 |
| |
1194 | 1201 |
| |
|
0 commit comments
Comments
(0)