forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit8a14bdb
committed
Fix nested PlaceHolderVar expressions that appear only in targetlists.
A PlaceHolderVar's expression might contain another, lower-levelPlaceHolderVar. If the outer PlaceHolderVar is used, the inner onecertainly will be also, and so we have to make sure that both of them getinto the placeholder_list with correct ph_may_need values during theinitial pre-scan of the query (before deconstruct_jointree starts).We did this correctly for PlaceHolderVars appearing in the query quals,but overlooked the issue for those appearing in the top-level targetlist;with the result that nested placeholders referenced only in the targetlistdid not work correctly, as illustrated in bug #6154.While at it, add some error checking to find_placeholder_info to ensurethat we don't try to create new placeholders after it's too late to do so;they have to all be created before deconstruct_jointree starts.Back-patch to 8.4 where the PlaceHolderVar mechanism was introduced.1 parentf600782 commit8a14bdb
File tree
8 files changed
+164
-41
lines changed- src
- backend/optimizer
- path
- plan
- util
- include/optimizer
- test/regress
- expected
- sql
8 files changed
+164
-41
lines changedLines changed: 1 addition & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
3230 | 3230 |
| |
3231 | 3231 |
| |
3232 | 3232 |
| |
3233 |
| - | |
| 3233 | + | |
3234 | 3234 |
| |
3235 | 3235 |
| |
3236 | 3236 |
| |
|
Lines changed: 1 addition & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
709 | 709 |
| |
710 | 710 |
| |
711 | 711 |
| |
712 |
| - | |
| 712 | + | |
713 | 713 |
| |
714 | 714 |
| |
715 | 715 |
| |
|
Lines changed: 17 additions & 10 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
135 | 135 |
| |
136 | 136 |
| |
137 | 137 |
| |
138 |
| - | |
| 138 | + | |
139 | 139 |
| |
140 | 140 |
| |
141 | 141 |
| |
| |||
149 | 149 |
| |
150 | 150 |
| |
151 | 151 |
| |
152 |
| - | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
153 | 157 |
| |
154 | 158 |
| |
155 |
| - | |
| 159 | + | |
| 160 | + | |
156 | 161 |
| |
157 | 162 |
| |
158 | 163 |
| |
| |||
183 | 188 |
| |
184 | 189 |
| |
185 | 190 |
| |
186 |
| - | |
| 191 | + | |
| 192 | + | |
187 | 193 |
| |
| 194 | + | |
188 | 195 |
| |
189 | 196 |
| |
190 | 197 |
| |
191 |
| - | |
192 |
| - | |
193 |
| - | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
194 | 201 |
| |
195 |
| - | |
196 |
| - | |
| 202 | + | |
| 203 | + | |
197 | 204 |
| |
198 | 205 |
| |
199 | 206 |
| |
| |||
1030 | 1037 |
| |
1031 | 1038 |
| |
1032 | 1039 |
| |
1033 |
| - | |
| 1040 | + | |
1034 | 1041 |
| |
1035 | 1042 |
| |
1036 | 1043 |
| |
|
Lines changed: 59 additions & 27 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
24 | 24 |
| |
25 | 25 |
| |
26 | 26 |
| |
27 |
| - | |
28 |
| - | |
| 27 | + | |
| 28 | + | |
29 | 29 |
| |
30 | 30 |
| |
31 | 31 |
| |
| |||
50 | 50 |
| |
51 | 51 |
| |
52 | 52 |
| |
53 |
| - | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
54 | 57 |
| |
55 | 58 |
| |
56 | 59 |
| |
57 | 60 |
| |
58 | 61 |
| |
59 | 62 |
| |
60 | 63 |
| |
61 |
| - | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
62 | 67 |
| |
63 | 68 |
| |
64 |
| - | |
| 69 | + | |
| 70 | + | |
65 | 71 |
| |
66 | 72 |
| |
67 | 73 |
| |
| |||
77 | 83 |
| |
78 | 84 |
| |
79 | 85 |
| |
| 86 | + | |
| 87 | + | |
| 88 | + | |
80 | 89 |
| |
81 | 90 |
| |
82 | 91 |
| |
| |||
157 | 166 |
| |
158 | 167 |
| |
159 | 168 |
| |
160 |
| - | |
| 169 | + | |
161 | 170 |
| |
162 | 171 |
| |
163 | 172 |
| |
| |||
173 | 182 |
| |
174 | 183 |
| |
175 | 184 |
| |
176 |
| - | |
| 185 | + | |
177 | 186 |
| |
178 | 187 |
| |
179 | 188 |
| |
| |||
185 | 194 |
| |
186 | 195 |
| |
187 | 196 |
| |
188 |
| - | |
189 |
| - | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
190 | 200 |
| |
191 | 201 |
| |
192 |
| - | |
| 202 | + | |
193 | 203 |
| |
194 | 204 |
| |
195 |
| - | |
| 205 | + | |
196 | 206 |
| |
197 | 207 |
| |
198 | 208 |
| |
| |||
201 | 211 |
| |
202 | 212 |
| |
203 | 213 |
| |
204 |
| - | |
| 214 | + | |
205 | 215 |
| |
206 | 216 |
| |
207 | 217 |
| |
| |||
212 | 222 |
| |
213 | 223 |
| |
214 | 224 |
| |
215 |
| - | |
216 |
| - | |
217 |
| - | |
218 |
| - | |
| 225 | + | |
219 | 226 |
| |
220 |
| - | |
221 |
| - | |
222 |
| - | |
223 |
| - | |
224 |
| - | |
225 |
| - | |
226 |
| - | |
227 |
| - | |
228 |
| - | |
229 |
| - | |
| 227 | + | |
| 228 | + | |
230 | 229 |
| |
231 | 230 |
| |
232 | 231 |
| |
233 | 232 |
| |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
234 | 266 |
| |
235 | 267 |
| |
236 | 268 |
| |
| |||
350 | 382 |
| |
351 | 383 |
| |
352 | 384 |
| |
353 |
| - | |
| 385 | + | |
354 | 386 |
| |
355 | 387 |
| |
356 | 388 |
| |
|
Lines changed: 3 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
20 | 20 |
| |
21 | 21 |
| |
22 | 22 |
| |
23 |
| - | |
| 23 | + | |
24 | 24 |
| |
| 25 | + | |
| 26 | + | |
25 | 27 |
| |
26 | 28 |
| |
27 | 29 |
| |
|
Lines changed: 1 addition & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
92 | 92 |
| |
93 | 93 |
| |
94 | 94 |
| |
95 |
| - | |
| 95 | + | |
96 | 96 |
| |
97 | 97 |
| |
98 | 98 |
| |
|
Lines changed: 45 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
2488 | 2488 |
| |
2489 | 2489 |
| |
2490 | 2490 |
| |
| 2491 | + | |
| 2492 | + | |
| 2493 | + | |
| 2494 | + | |
| 2495 | + | |
| 2496 | + | |
| 2497 | + | |
| 2498 | + | |
| 2499 | + | |
| 2500 | + | |
| 2501 | + | |
| 2502 | + | |
| 2503 | + | |
| 2504 | + | |
| 2505 | + | |
| 2506 | + | |
| 2507 | + | |
| 2508 | + | |
| 2509 | + | |
| 2510 | + | |
| 2511 | + | |
| 2512 | + | |
| 2513 | + | |
| 2514 | + | |
| 2515 | + | |
| 2516 | + | |
| 2517 | + | |
| 2518 | + | |
| 2519 | + | |
| 2520 | + | |
| 2521 | + | |
| 2522 | + | |
| 2523 | + | |
| 2524 | + | |
| 2525 | + | |
| 2526 | + | |
| 2527 | + | |
| 2528 | + | |
| 2529 | + | |
| 2530 | + | |
| 2531 | + | |
| 2532 | + | |
| 2533 | + | |
| 2534 | + | |
| 2535 | + | |
2491 | 2536 |
| |
2492 | 2537 |
| |
2493 | 2538 |
| |
|
Lines changed: 37 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
602 | 602 |
| |
603 | 603 |
| |
604 | 604 |
| |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
605 | 642 |
| |
606 | 643 |
| |
607 | 644 |
| |
|
0 commit comments
Comments
(0)