- Notifications
You must be signed in to change notification settings - Fork5
Commit57664ed
committed
Wrap appendrel member outputs in PlaceHolderVars in additional cases.
Add PlaceHolderVar wrappers as needed to make UNION ALL sub-select outputexpressions appear non-constant and distinct from each other. This makesthe world safe for add_child_rel_equivalences to do what it does. Before,it was possible for that function to add identical expressions to differentEquivalenceClasses, which logically should imply merging such ECs, whichwould be wrong; or to improperly add a constant to an EquivalenceClass,drastically changing its behavior. Per report from Teodor Sigaev.The only currently known consequence of this bug is "MergeAppend child'stargetlist doesn't match MergeAppend" planner failures in 9.1 and later.I am suspicious that there may be other failure modes that could affectolder release branches; but in the absence of any hard evidence, I'llrefrain from back-patching further than 9.1.1 parent3b81617 commit57664ed
File tree
6 files changed
+134
-22
lines changed- src
- backend/optimizer
- plan
- prep
- util
- include/optimizer
- test/regress
- expected
- sql
6 files changed
+134
-22
lines changedLines changed: 1 addition & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
176 | 176 |
| |
177 | 177 |
| |
178 | 178 |
| |
179 |
| - | |
| 179 | + | |
180 | 180 |
| |
181 | 181 |
| |
182 | 182 |
| |
|
Lines changed: 23 additions & 13 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
784 | 784 |
| |
785 | 785 |
| |
786 | 786 |
| |
787 |
| - | |
788 |
| - | |
789 |
| - | |
790 |
| - | |
791 |
| - | |
| 787 | + | |
| 788 | + | |
792 | 789 |
| |
793 | 790 |
| |
794 | 791 |
| |
795 | 792 |
| |
796 |
| - | |
797 | 793 |
| |
798 |
| - | |
799 |
| - | |
800 | 794 |
| |
801 | 795 |
| |
802 |
| - | |
803 | 796 |
| |
804 | 797 |
| |
805 | 798 |
| |
| |||
1407 | 1400 |
| |
1408 | 1401 |
| |
1409 | 1402 |
| |
1410 |
| - | |
1411 |
| - | |
| 1403 | + | |
| 1404 | + | |
| 1405 | + | |
| 1406 | + | |
| 1407 | + | |
| 1408 | + | |
| 1409 | + | |
| 1410 | + | |
| 1411 | + | |
| 1412 | + | |
| 1413 | + | |
| 1414 | + | |
| 1415 | + | |
| 1416 | + | |
| 1417 | + | |
1412 | 1418 |
| |
1413 | 1419 |
| |
1414 | 1420 |
| |
1415 | 1421 |
| |
1416 |
| - | |
1417 |
| - | |
| 1422 | + | |
| 1423 | + | |
| 1424 | + | |
| 1425 | + | |
| 1426 | + | |
| 1427 | + | |
1418 | 1428 |
| |
1419 | 1429 |
| |
1420 | 1430 |
| |
|
Lines changed: 20 additions & 7 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
104 | 104 |
| |
105 | 105 |
| |
106 | 106 |
| |
107 |
| - | |
108 |
| - | |
| 107 | + | |
| 108 | + | |
109 | 109 |
| |
110 |
| - | |
111 |
| - | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
112 | 118 |
| |
113 | 119 |
| |
114 |
| - | |
| 120 | + | |
115 | 121 |
| |
116 | 122 |
| |
117 | 123 |
| |
118 | 124 |
| |
119 |
| - | |
| 125 | + | |
120 | 126 |
| |
121 | 127 |
| |
122 | 128 |
| |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
123 | 136 |
| |
124 | 137 |
| |
125 | 138 |
| |
126 | 139 |
| |
127 | 140 |
| |
128 |
| - | |
| 141 | + | |
129 | 142 |
| |
130 | 143 |
| |
131 | 144 |
| |
|
Lines changed: 1 addition & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
21 | 21 |
| |
22 | 22 |
| |
23 | 23 |
| |
24 |
| - | |
| 24 | + | |
25 | 25 |
| |
26 | 26 |
| |
27 | 27 |
| |
|
Lines changed: 58 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1242 | 1242 |
| |
1243 | 1243 |
| |
1244 | 1244 |
| |
| 1245 | + | |
| 1246 | + | |
| 1247 | + | |
| 1248 | + | |
| 1249 | + | |
| 1250 | + | |
| 1251 | + | |
| 1252 | + | |
| 1253 | + | |
| 1254 | + | |
| 1255 | + | |
| 1256 | + | |
| 1257 | + | |
| 1258 | + | |
| 1259 | + | |
| 1260 | + | |
| 1261 | + | |
| 1262 | + | |
| 1263 | + | |
| 1264 | + | |
| 1265 | + | |
| 1266 | + | |
| 1267 | + | |
| 1268 | + | |
| 1269 | + | |
| 1270 | + | |
| 1271 | + | |
| 1272 | + | |
| 1273 | + | |
| 1274 | + | |
| 1275 | + | |
| 1276 | + | |
| 1277 | + | |
| 1278 | + | |
| 1279 | + | |
| 1280 | + | |
| 1281 | + | |
| 1282 | + | |
| 1283 | + | |
| 1284 | + | |
| 1285 | + | |
| 1286 | + | |
| 1287 | + | |
| 1288 | + | |
| 1289 | + | |
| 1290 | + | |
| 1291 | + | |
| 1292 | + | |
| 1293 | + | |
| 1294 | + | |
| 1295 | + | |
| 1296 | + | |
| 1297 | + | |
| 1298 | + | |
| 1299 | + | |
| 1300 | + | |
| 1301 | + | |
| 1302 | + |
Lines changed: 31 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
406 | 406 |
| |
407 | 407 |
| |
408 | 408 |
| |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + |
0 commit comments
Comments
(0)