- Notifications
You must be signed in to change notification settings - Fork5
Commit2378d79
committed
Make LATERAL implicit for functions in FROM.
The SQL standard does not have general functions-in-FROM, but it doesallow UNNEST() there (see the <collection derived table> production),and the semantics of that are defined to include lateral references.So spec compliance requires allowing lateral references within UNNEST()even without an explicit LATERAL keyword. Rather than making UNNEST()a special case, it seems best to extend this flexibility to anyfunction-in-FROM. We'll still allow LATERAL to be written explicitlyfor clarity's sake, but it's now a noise word in this context.In theory this change could result in a change in behavior of existingqueries, by allowing what had been an outer reference in a function-in-FROMto be captured by an earlier FROM-item at the same level. However, allpre-9.3 PG releases have a bug that causes them to match variablereferences to earlier FROM-items in preference to outer references (andthen throw an error). So no previously-working query could contain thetype of ambiguity that would risk a change of behavior.Per a suggestion from Andrew Gierth, though I didn't use his patch.1 parent8865fe0 commit2378d79
File tree
7 files changed
+101
-46
lines changed- doc/src/sgml
- ref
- src
- backend/parser
- test/regress
- expected
- sql
7 files changed
+101
-46
lines changedLines changed: 16 additions & 4 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
717 | 717 |
| |
718 | 718 |
| |
719 | 719 |
| |
720 |
| - | |
| 720 | + | |
721 | 721 |
| |
722 | 722 |
| |
723 |
| - | |
| 723 | + | |
724 | 724 |
| |
725 | 725 |
| |
| 726 | + | |
| 727 | + | |
| 728 | + | |
| 729 | + | |
| 730 | + | |
| 731 | + | |
| 732 | + | |
| 733 | + | |
| 734 | + | |
| 735 | + | |
726 | 736 |
| |
727 |
| - | |
| 737 | + | |
728 | 738 |
| |
729 | 739 |
| |
730 | 740 |
| |
| |||
770 | 780 |
| |
771 | 781 |
| |
772 | 782 |
| |
773 |
| - | |
| 783 | + | |
| 784 | + | |
| 785 | + | |
774 | 786 |
| |
775 | 787 |
| |
776 | 788 |
| |
|
Lines changed: 28 additions & 13 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
504 | 504 |
| |
505 | 505 |
| |
506 | 506 |
| |
507 |
| - | |
508 |
| - | |
509 |
| - | |
510 |
| - | |
511 |
| - | |
512 |
| - | |
513 |
| - | |
514 |
| - | |
515 |
| - | |
516 |
| - | |
517 |
| - | |
518 |
| - | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
519 | 529 |
| |
520 | 530 |
| |
521 | 531 |
| |
| |||
1738 | 1748 |
| |
1739 | 1749 |
| |
1740 | 1750 |
| |
1741 |
| - | |
| 1751 | + | |
| 1752 | + | |
| 1753 | + | |
| 1754 | + | |
| 1755 | + | |
| 1756 | + | |
1742 | 1757 |
| |
1743 | 1758 |
| |
1744 | 1759 |
| |
|
Lines changed: 16 additions & 5 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
503 | 503 |
| |
504 | 504 |
| |
505 | 505 |
| |
| 506 | + | |
506 | 507 |
| |
507 | 508 |
| |
508 | 509 |
| |
| |||
514 | 515 |
| |
515 | 516 |
| |
516 | 517 |
| |
517 |
| - | |
518 |
| - | |
519 |
| - | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
520 | 525 |
| |
521 | 526 |
| |
522 |
| - | |
| 527 | + | |
523 | 528 |
| |
524 | 529 |
| |
525 | 530 |
| |
| |||
533 | 538 |
| |
534 | 539 |
| |
535 | 540 |
| |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
536 | 547 |
| |
537 | 548 |
| |
538 | 549 |
| |
539 | 550 |
| |
540 |
| - | |
| 551 | + | |
541 | 552 |
| |
542 | 553 |
| |
543 | 554 |
| |
|
Lines changed: 24 additions & 13 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
3157 | 3157 |
| |
3158 | 3158 |
| |
3159 | 3159 |
| |
3160 |
| - | |
| 3160 | + | |
3161 | 3161 |
| |
3162 | 3162 |
| |
3163 | 3163 |
| |
| |||
3184 | 3184 |
| |
3185 | 3185 |
| |
3186 | 3186 |
| |
| 3187 | + | |
| 3188 | + | |
| 3189 | + | |
| 3190 | + | |
| 3191 | + | |
| 3192 | + | |
| 3193 | + | |
| 3194 | + | |
| 3195 | + | |
| 3196 | + | |
| 3197 | + | |
3187 | 3198 |
| |
3188 | 3199 |
| |
3189 | 3200 |
| |
| |||
3578 | 3589 |
| |
3579 | 3590 |
| |
3580 | 3591 |
| |
3581 |
| - | |
| 3592 | + | |
3582 | 3593 |
| |
3583 |
| - | |
3584 |
| - | |
| 3594 | + | |
| 3595 | + | |
3585 | 3596 |
| |
3586 |
| - | |
| 3597 | + | |
3587 | 3598 |
| |
3588 |
| - | |
3589 |
| - | |
| 3599 | + | |
| 3600 | + | |
3590 | 3601 |
| |
3591 |
| - | |
| 3602 | + | |
3592 | 3603 |
| |
3593 |
| - | |
3594 |
| - | |
| 3604 | + | |
| 3605 | + | |
3595 | 3606 |
| |
3596 |
| - | |
| 3607 | + | |
3597 | 3608 |
| |
3598 |
| - | |
3599 |
| - | |
| 3609 | + | |
| 3610 | + | |
3600 | 3611 |
| |
3601 | 3612 |
| |
3602 | 3613 |
| |
|
Lines changed: 8 additions & 5 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
19 | 19 |
| |
20 | 20 |
| |
21 | 21 |
| |
22 |
| - | |
| 22 | + | |
23 | 23 |
| |
24 |
| - | |
25 |
| - | |
26 |
| - | |
27 |
| - | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
28 | 31 |
| |
29 | 32 |
| |
30 | 33 |
| |
|
Lines changed: 8 additions & 5 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
901 | 901 |
| |
902 | 902 |
| |
903 | 903 |
| |
904 |
| - | |
| 904 | + | |
905 | 905 |
| |
906 | 906 |
| |
907 | 907 |
| |
908 | 908 |
| |
909 | 909 |
| |
| 910 | + | |
| 911 | + | |
| 912 | + | |
910 | 913 |
| |
911 | 914 |
| |
912 | 915 |
| |
| |||
987 | 990 |
| |
988 | 991 |
| |
989 | 992 |
| |
990 |
| - | |
991 |
| - | |
992 |
| - | |
993 |
| - | |
| 993 | + | |
| 994 | + | |
| 995 | + | |
| 996 | + | |
994 | 997 |
| |
995 | 998 |
| |
996 | 999 |
| |
|
Lines changed: 1 addition & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
7 | 7 |
| |
8 | 8 |
| |
9 | 9 |
| |
10 |
| - | |
| 10 | + | |
11 | 11 |
| |
12 | 12 |
| |
13 | 13 |
| |
|
0 commit comments
Comments
(0)