Commit 702a322
authored
ESQL: Add Warning for Sort Under Lookup Join (elastic#141482)
Adds a warning when a SORT (or TopN) is followed by a LOOKUP JOIN without a subsequent SORT to restore order. Since LOOKUP JOIN does not preserve the order of its input, users may get unexpected results if they expect sorted output. The warning is generated by a new optimizer rule WarnLostSortOrder that runs once after optimization, traversing the plan tree to detect this pattern.
This PR has been developed partially with the help of GenAI tools (Cursor).1 parent 333357a commit 702a322
File tree
14 files changed
+338
-1
lines changed- docs/changelog
- x-pack/plugin
- esql
- qa/testFixtures/src/main/resources
- src
- main/java/org/elasticsearch/xpack/esql
- action
- optimizer
- rules/logical
- test/java/org/elasticsearch/xpack/esql/optimizer
- src/yamlRestTest/resources/rest-api-spec/test/esql
14 files changed
+338
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
164 | 164 | | |
165 | 165 | | |
166 | 166 | | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
167 | 174 | | |
168 | 175 | | |
169 | 176 | | |
| |||
Lines changed: 3 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
682 | 682 | | |
683 | 683 | | |
684 | 684 | | |
| 685 | + | |
685 | 686 | | |
686 | 687 | | |
687 | 688 | | |
| |||
691 | 692 | | |
692 | 693 | | |
693 | 694 | | |
| 695 | + | |
| 696 | + | |
694 | 697 | | |
695 | 698 | | |
696 | 699 | | |
| |||
Lines changed: 29 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
| 40 | + | |
40 | 41 | | |
41 | 42 | | |
42 | 43 | | |
| |||
46 | 47 | | |
47 | 48 | | |
48 | 49 | | |
| 50 | + | |
| 51 | + | |
49 | 52 | | |
50 | 53 | | |
51 | 54 | | |
| |||
72 | 75 | | |
73 | 76 | | |
74 | 77 | | |
| 78 | + | |
75 | 79 | | |
76 | 80 | | |
77 | 81 | | |
| |||
82 | 86 | | |
83 | 87 | | |
84 | 88 | | |
| 89 | + | |
| 90 | + | |
85 | 91 | | |
86 | 92 | | |
87 | 93 | | |
| |||
90 | 96 | | |
91 | 97 | | |
92 | 98 | | |
| 99 | + | |
93 | 100 | | |
94 | 101 | | |
95 | 102 | | |
| |||
99 | 106 | | |
100 | 107 | | |
101 | 108 | | |
| 109 | + | |
| 110 | + | |
102 | 111 | | |
103 | 112 | | |
104 | 113 | | |
| |||
267 | 276 | | |
268 | 277 | | |
269 | 278 | | |
| 279 | + | |
270 | 280 | | |
271 | 281 | | |
272 | 282 | | |
| |||
277 | 287 | | |
278 | 288 | | |
279 | 289 | | |
| 290 | + | |
| 291 | + | |
280 | 292 | | |
281 | 293 | | |
282 | 294 | | |
| |||
294 | 306 | | |
295 | 307 | | |
296 | 308 | | |
| 309 | + | |
297 | 310 | | |
298 | 311 | | |
299 | 312 | | |
| |||
303 | 316 | | |
304 | 317 | | |
305 | 318 | | |
| 319 | + | |
| 320 | + | |
306 | 321 | | |
307 | 322 | | |
308 | 323 | | |
| |||
686 | 701 | | |
687 | 702 | | |
688 | 703 | | |
| 704 | + | |
689 | 705 | | |
690 | 706 | | |
691 | 707 | | |
| |||
696 | 712 | | |
697 | 713 | | |
698 | 714 | | |
| 715 | + | |
| 716 | + | |
699 | 717 | | |
700 | 718 | | |
701 | 719 | | |
702 | 720 | | |
703 | 721 | | |
704 | 722 | | |
| 723 | + | |
705 | 724 | | |
706 | 725 | | |
707 | 726 | | |
| |||
712 | 731 | | |
713 | 732 | | |
714 | 733 | | |
| 734 | + | |
| 735 | + | |
715 | 736 | | |
716 | 737 | | |
717 | 738 | | |
718 | 739 | | |
719 | 740 | | |
720 | 741 | | |
| 742 | + | |
721 | 743 | | |
722 | 744 | | |
723 | 745 | | |
| |||
728 | 750 | | |
729 | 751 | | |
730 | 752 | | |
| 753 | + | |
| 754 | + | |
731 | 755 | | |
732 | 756 | | |
733 | 757 | | |
| |||
1798 | 1822 | | |
1799 | 1823 | | |
1800 | 1824 | | |
| 1825 | + | |
1801 | 1826 | | |
1802 | 1827 | | |
1803 | 1828 | | |
| |||
1819 | 1844 | | |
1820 | 1845 | | |
1821 | 1846 | | |
| 1847 | + | |
| 1848 | + | |
1822 | 1849 | | |
1823 | 1850 | | |
1824 | 1851 | | |
| |||
5686 | 5713 | | |
5687 | 5714 | | |
5688 | 5715 | | |
| 5716 | + | |
5689 | 5717 | | |
5690 | 5718 | | |
5691 | 5719 | | |
| |||
5702 | 5730 | | |
5703 | 5731 | | |
5704 | 5732 | | |
| 5733 | + | |
5705 | 5734 | | |
5706 | 5735 | | |
5707 | 5736 | | |
| |||
Lines changed: 5 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1786 | 1786 | | |
1787 | 1787 | | |
1788 | 1788 | | |
| 1789 | + | |
| 1790 | + | |
| 1791 | + | |
| 1792 | + | |
| 1793 | + | |
1789 | 1794 | | |
1790 | 1795 | | |
1791 | 1796 | | |
| |||
Lines changed: 6 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
75 | 75 | | |
76 | 76 | | |
77 | 77 | | |
| 78 | + | |
78 | 79 | | |
79 | 80 | | |
80 | 81 | | |
| |||
112 | 113 | | |
113 | 114 | | |
114 | 115 | | |
| 116 | + | |
115 | 117 | | |
116 | 118 | | |
117 | 119 | | |
| |||
248 | 250 | | |
249 | 251 | | |
250 | 252 | | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
251 | 257 | | |
Lines changed: 72 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
Lines changed: 12 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1070 | 1070 | | |
1071 | 1071 | | |
1072 | 1072 | | |
| 1073 | + | |
| 1074 | + | |
| 1075 | + | |
| 1076 | + | |
| 1077 | + | |
1073 | 1078 | | |
1074 | 1079 | | |
1075 | 1080 | | |
| |||
1092 | 1097 | | |
1093 | 1098 | | |
1094 | 1099 | | |
| 1100 | + | |
| 1101 | + | |
| 1102 | + | |
| 1103 | + | |
| 1104 | + | |
| 1105 | + | |
| 1106 | + | |
1095 | 1107 | | |
1096 | 1108 | | |
1097 | 1109 | | |
0 commit comments