Commit 2677c27
authored
Note this targets the branch-51 release branch
## Which issue does this PR close?
- part of #17558
- resolves #17801 in the 51
release branch
## Rationale for this change
- We merged some clever rewrites for `coalesce` and `nvl2` to use `CASE`
which are faster and more correct (👏 @chenkovsky @kosiew )
- However, these rewrites cause subtle schema mismatches in some cases
planning (b/c the CASE simplification nullability logic can't determine
the correct nullability in some cases - see
#17801)
- @pepijnve has some heroic efforts to fix the schema mismatch in
#17813 (comment),
but it is non trivial and I am worried about merging it so close to the
51 release and introducing new edge cases
## What changes are included in this PR?
1. Revert #17357 /
e5dcc8c
3. Revert #17991 /
ea83c26
2. Revert #18191 /
22c4214
2. Cherry-pick 6202254, a test that
reproduces the schema mismatch issue (from
#18536)
3. Cherry-pick 735cacf, a fix for the
benchmarks that regressed due to the revert (from
#17833)
4. Update datafusion-testing (see separate PR here) for extended tests
(see apache/datafusion-testing#15)
## Are these changes tested?
Yes I added a new test
## Are there any user-facing changes?
<!--
If there are user-facing changes then we may require documentation to be
updated before approving the PR.
-->
<!--
If there are any breaking changes to public APIs, please add the `api
change` label.
-->
1 parent ff96b3b commit 2677c27
File tree
14 files changed
+329
-276
lines changed- datafusion
- core
- benches
- tests
- dataframe
- expr_api
- expr/src
- functions/src/core
- optimizer/src
- sqllogictest/test_files
- string
- docs/source/user-guide/sql
14 files changed
+329
-276
lines changedSubmodule datafusion-testing updated 85 files
- data/sqlite/random/expr/slt_good_0.slt+3-3
- data/sqlite/random/expr/slt_good_10.slt+10-10
- data/sqlite/random/expr/slt_good_100.slt+5-3
- data/sqlite/random/expr/slt_good_101.slt+3-3
- data/sqlite/random/expr/slt_good_102.slt+12-12
- data/sqlite/random/expr/slt_good_104.slt+7-7
- data/sqlite/random/expr/slt_good_105.slt+9-9
- data/sqlite/random/expr/slt_good_106.slt+8-6
- data/sqlite/random/expr/slt_good_107.slt+3-3
- data/sqlite/random/expr/slt_good_108.slt+6-6
- data/sqlite/random/expr/slt_good_11.slt+3-3
- data/sqlite/random/expr/slt_good_110.slt+6-6
- data/sqlite/random/expr/slt_good_111.slt+6-6
- data/sqlite/random/expr/slt_good_112.slt+7-7
- data/sqlite/random/expr/slt_good_113.slt+6-6
- data/sqlite/random/expr/slt_good_116.slt+3-3
- data/sqlite/random/expr/slt_good_118.slt+3-3
- data/sqlite/random/expr/slt_good_119.slt+4-4
- data/sqlite/random/expr/slt_good_12.slt+9-7
- data/sqlite/random/expr/slt_good_13.slt+14-12
- data/sqlite/random/expr/slt_good_14.slt+6-6
- data/sqlite/random/expr/slt_good_16.slt+6-6
- data/sqlite/random/expr/slt_good_17.slt+3-3
- data/sqlite/random/expr/slt_good_2.slt+3-3
- data/sqlite/random/expr/slt_good_22.slt+6-6
- data/sqlite/random/expr/slt_good_23.slt+10-6
- data/sqlite/random/expr/slt_good_24.slt+3-3
- data/sqlite/random/expr/slt_good_25.slt+12-13
- data/sqlite/random/expr/slt_good_26.slt+6-6
- data/sqlite/random/expr/slt_good_27.slt+6-6
- data/sqlite/random/expr/slt_good_28.slt+3-3
- data/sqlite/random/expr/slt_good_29.slt+14-12
- data/sqlite/random/expr/slt_good_3.slt+3-3
- data/sqlite/random/expr/slt_good_30.slt+3-3
- data/sqlite/random/expr/slt_good_31.slt+9-10
- data/sqlite/random/expr/slt_good_33.slt+9-9
- data/sqlite/random/expr/slt_good_34.slt+3-3
- data/sqlite/random/expr/slt_good_36.slt+3-3
- data/sqlite/random/expr/slt_good_38.slt+3-3
- data/sqlite/random/expr/slt_good_39.slt+3-3
- data/sqlite/random/expr/slt_good_4.slt+3-3
- data/sqlite/random/expr/slt_good_41.slt+3-3
- data/sqlite/random/expr/slt_good_44.slt+6-6
- data/sqlite/random/expr/slt_good_45.slt+3-3
- data/sqlite/random/expr/slt_good_47.slt+3-3
- data/sqlite/random/expr/slt_good_49.slt+3-3
- data/sqlite/random/expr/slt_good_5.slt+3-3
- data/sqlite/random/expr/slt_good_50.slt+3-3
- data/sqlite/random/expr/slt_good_55.slt+3-3
- data/sqlite/random/expr/slt_good_56.slt+9-9
- data/sqlite/random/expr/slt_good_57.slt+5-3
- data/sqlite/random/expr/slt_good_58.slt+4-4
- data/sqlite/random/expr/slt_good_6.slt+9-9
- data/sqlite/random/expr/slt_good_60.slt+3-3
- data/sqlite/random/expr/slt_good_61.slt+3-3
- data/sqlite/random/expr/slt_good_62.slt+3-3
- data/sqlite/random/expr/slt_good_63.slt+6-6
- data/sqlite/random/expr/slt_good_64.slt+3-3
- data/sqlite/random/expr/slt_good_66.slt+3-3
- data/sqlite/random/expr/slt_good_67.slt+14-12
- data/sqlite/random/expr/slt_good_68.slt+5-3
- data/sqlite/random/expr/slt_good_69.slt+3-3
- data/sqlite/random/expr/slt_good_7.slt+3-3
- data/sqlite/random/expr/slt_good_72.slt+5-3
- data/sqlite/random/expr/slt_good_75.slt+3-3
- data/sqlite/random/expr/slt_good_77.slt+5-3
- data/sqlite/random/expr/slt_good_78.slt+3-3
- data/sqlite/random/expr/slt_good_79.slt+3-3
- data/sqlite/random/expr/slt_good_8.slt+3-3
- data/sqlite/random/expr/slt_good_80.slt+3-3
- data/sqlite/random/expr/slt_good_81.slt+10-10
- data/sqlite/random/expr/slt_good_82.slt+10-10
- data/sqlite/random/expr/slt_good_83.slt+6-6
- data/sqlite/random/expr/slt_good_84.slt+11-12
- data/sqlite/random/expr/slt_good_85.slt+7-7
- data/sqlite/random/expr/slt_good_88.slt+3-3
- data/sqlite/random/expr/slt_good_89.slt+3-3
- data/sqlite/random/expr/slt_good_92.slt+6-9
- data/sqlite/random/expr/slt_good_93.slt+8-6
- data/sqlite/random/expr/slt_good_94.slt+3-3
- data/sqlite/random/expr/slt_good_96.slt+3-3
- data/sqlite/random/expr/slt_good_97.slt+6-6
- data/sqlite/random/groupby/slt_good_12.slt+2-2
- data/sqlite/random/groupby/slt_good_4.slt+4-4
- data/sqlite/random/groupby/slt_good_7.slt+5-5
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
477 | 477 | | |
478 | 478 | | |
479 | 479 | | |
480 | | - | |
481 | | - | |
482 | | - | |
483 | 480 | | |
484 | 481 | | |
485 | 482 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
274 | 274 | | |
275 | 275 | | |
276 | 276 | | |
277 | | - | |
278 | | - | |
279 | | - | |
280 | | - | |
281 | | - | |
282 | | - | |
283 | | - | |
284 | | - | |
285 | | - | |
286 | | - | |
287 | | - | |
288 | | - | |
289 | | - | |
290 | | - | |
291 | | - | |
292 | | - | |
293 | | - | |
294 | | - | |
295 | | - | |
296 | | - | |
297 | | - | |
298 | | - | |
299 | | - | |
300 | | - | |
301 | | - | |
302 | | - | |
303 | | - | |
304 | 277 | | |
305 | 278 | | |
306 | 279 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
320 | 320 | | |
321 | 321 | | |
322 | 322 | | |
323 | | - | |
324 | | - | |
325 | | - | |
326 | | - | |
327 | | - | |
328 | | - | |
329 | | - | |
330 | | - | |
331 | | - | |
332 | | - | |
333 | | - | |
334 | | - | |
335 | | - | |
336 | | - | |
337 | | - | |
338 | | - | |
339 | | - | |
340 | | - | |
341 | | - | |
342 | | - | |
343 | 323 | | |
344 | 324 | | |
345 | 325 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1051 | 1051 | | |
1052 | 1052 | | |
1053 | 1053 | | |
1054 | | - | |
1055 | | - | |
1056 | | - | |
1057 | | - | |
| 1054 | + | |
| 1055 | + | |
| 1056 | + | |
| 1057 | + | |
| 1058 | + | |
| 1059 | + | |
| 1060 | + | |
1058 | 1061 | | |
1059 | 1062 | | |
1060 | 1063 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
252 | 252 | | |
253 | 253 | | |
254 | 254 | | |
255 | | - | |
256 | | - | |
257 | | - | |
258 | | - | |
259 | | - | |
260 | | - | |
261 | | - | |
262 | | - | |
263 | | - | |
264 | | - | |
265 | | - | |
266 | | - | |
267 | | - | |
268 | | - | |
269 | | - | |
| 255 | + | |
270 | 256 | | |
271 | 257 | | |
272 | 258 | | |
| |||
696 | 682 | | |
697 | 683 | | |
698 | 684 | | |
699 | | - | |
700 | | - | |
701 | | - | |
702 | | - | |
703 | 685 | | |
704 | 686 | | |
705 | 687 | | |
706 | 688 | | |
707 | | - | |
708 | | - | |
709 | | - | |
710 | | - | |
711 | | - | |
712 | | - | |
713 | | - | |
714 | | - | |
715 | | - | |
716 | | - | |
717 | | - | |
718 | | - | |
719 | | - | |
720 | | - | |
721 | | - | |
722 | | - | |
723 | | - | |
724 | | - | |
725 | | - | |
726 | | - | |
727 | | - | |
728 | | - | |
729 | | - | |
730 | | - | |
731 | | - | |
732 | | - | |
733 | | - | |
734 | | - | |
735 | 689 | | |
736 | 690 | | |
737 | 691 | | |
| |||
921 | 875 | | |
922 | 876 | | |
923 | 877 | | |
924 | | - | |
925 | | - | |
926 | | - | |
927 | | - | |
928 | | - | |
929 | | - | |
930 | | - | |
931 | 878 | | |
932 | 879 | | |
933 | 880 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
18 | 21 | | |
19 | | - | |
| 22 | + | |
20 | 23 | | |
21 | | - | |
22 | | - | |
23 | 24 | | |
24 | | - | |
| 25 | + | |
25 | 26 | | |
26 | 27 | | |
27 | 28 | | |
| |||
47 | 48 | | |
48 | 49 | | |
49 | 50 | | |
50 | | - | |
| 51 | + | |
51 | 52 | | |
52 | 53 | | |
53 | 54 | | |
| |||
94 | 95 | | |
95 | 96 | | |
96 | 97 | | |
97 | | - | |
98 | | - | |
99 | | - | |
100 | | - | |
101 | | - | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
102 | 102 | | |
103 | | - | |
104 | | - | |
105 | | - | |
106 | | - | |
107 | | - | |
108 | | - | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
109 | 107 | | |
110 | 108 | | |
111 | | - | |
112 | | - | |
113 | | - | |
114 | | - | |
115 | | - | |
116 | | - | |
117 | | - | |
118 | | - | |
119 | | - | |
120 | | - | |
121 | | - | |
122 | | - | |
123 | | - | |
124 | | - | |
125 | | - | |
126 | | - | |
127 | | - | |
128 | | - | |
129 | | - | |
130 | | - | |
131 | | - | |
132 | | - | |
133 | | - | |
134 | | - | |
135 | | - | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
136 | 153 | | |
137 | 154 | | |
138 | 155 | | |
| |||
0 commit comments