- Notifications
You must be signed in to change notification settings - Fork5
Commiteb22950
committed
Fix PlaceHolderVar mechanism's interaction with outer joins.
The point of a PlaceHolderVar is to allow a non-strict expression to beevaluated below an outer join, after which its value bubbles up like a Varand can be forced to NULL when the outer join's semantics require that.However, there was a serious design oversight in that, namely that wedidn't ensure that there was actually a correct place in the plan treeto evaluate the placeholder :-(. It may be necessary to delay evaluationof an outer join to ensure that a placeholder that should be evaluatedbelow the join can be evaluated there. Per recent bug report from KirillSimonov.Back-patch to 8.4 where the PlaceHolderVar mechanism was introduced.1 parent9c5f4f6 commiteb22950
File tree
11 files changed
+374
-36
lines changed- src
- backend
- nodes
- optimizer
- plan
- util
- include
- nodes
- optimizer
- test/regress
- expected
- sql
11 files changed
+374
-36
lines changedLines changed: 1 addition & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1806 | 1806 |
| |
1807 | 1807 |
| |
1808 | 1808 |
| |
| 1809 | + | |
1809 | 1810 |
| |
1810 | 1811 |
| |
1811 | 1812 |
| |
|
Lines changed: 1 addition & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
838 | 838 |
| |
839 | 839 |
| |
840 | 840 |
| |
| 841 | + | |
841 | 842 |
| |
842 | 843 |
| |
843 | 844 |
| |
|
Lines changed: 1 addition & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1768 | 1768 |
| |
1769 | 1769 |
| |
1770 | 1770 |
| |
| 1771 | + | |
1771 | 1772 |
| |
1772 | 1773 |
| |
1773 | 1774 |
| |
|
Lines changed: 2 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
396 | 396 |
| |
397 | 397 |
| |
398 | 398 |
| |
| 399 | + | |
| 400 | + | |
399 | 401 |
| |
400 | 402 |
| |
401 | 403 |
| |
|
Lines changed: 37 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
187 | 187 |
| |
188 | 188 |
| |
189 | 189 |
| |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
190 | 197 |
| |
191 | 198 |
| |
192 | 199 |
| |
| |||
465 | 472 |
| |
466 | 473 |
| |
467 | 474 |
| |
| 475 | + | |
468 | 476 |
| |
| 477 | + | |
| 478 | + | |
| 479 | + | |
469 | 480 |
| |
470 | 481 |
| |
471 | 482 |
| |
| |||
687 | 698 |
| |
688 | 699 |
| |
689 | 700 |
| |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
| 710 | + | |
| 711 | + | |
| 712 | + | |
| 713 | + | |
| 714 | + | |
| 715 | + | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
| 719 | + | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
690 | 727 |
| |
691 | 728 |
| |
692 | 729 |
| |
|
Lines changed: 15 additions & 8 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
180 | 180 |
| |
181 | 181 |
| |
182 | 182 |
| |
183 |
| - | |
184 |
| - | |
185 |
| - | |
186 |
| - | |
187 |
| - | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
188 | 191 |
| |
189 | 192 |
| |
190 | 193 |
| |
| 194 | + | |
| 195 | + | |
191 | 196 |
| |
192 | 197 |
| |
193 | 198 |
| |
| |||
218 | 223 |
| |
219 | 224 |
| |
220 | 225 |
| |
221 |
| - | |
222 |
| - | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
223 | 230 |
| |
224 |
| - | |
| 231 | + | |
225 | 232 |
| |
226 | 233 |
| |
227 | 234 |
| |
|
0 commit comments
Comments
(0)