Bug #12101 | Invalid outer join elimination for a query with NOT BETWEEN condition | ||
---|---|---|---|
Submitted: | 22 Jul 2005 2:57 | Modified: | 9 Sep 2005 20:22 |
Reporter: | Igor Babaev | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server | Severity: | S2 (Serious) |
Version: | 4.1.13, 5.0.10 | OS: | Any (all) |
Assigned to: | Alexander Ivanov | CPU Architecture: | Any |
[22 Jul 2005 2:57]
Igor Babaev
[22 Jul 2005 17:58]
Igor Babaev
Correction: Suggested fix: Correct calculation of the not_null_tables attribute for NOT BETWEEN conditions.
[1 Sep 2005 10:41]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/internals/29162
[2 Sep 2005 15:37]
Sergey Petrunya
See also BUG#12102
[7 Sep 2005 20:21]
Alexander Ivanov
ChangeSet 1.2403 05/09/06 18:03:08 aivanov@mysql.com +6 -0 item_cmpfunc.h: Fixed bugs #12101, #12102: wrong calculation of not_null_tables() for some expressions. The classes Item_func_between, Item_func_if, Item_func_in are modified. Item_func_between/in objects can represent now [NOT]BETWEEN/IN expressions. The class Item_func_opt_neg is added to factor out the functionality common for the modified classes Item_func_between and Item_func_in. item_cmpfunc.cc: Fixed bugs #12101, #12102: wrong calculation of not_null_tables() for some expressions. Added Item_func_between::fix_fields(), Item_func_if::fix_fields(), Item_func_in::fix_fields(). They correct generic calculation of the not_null_tables attribute when it is needed. Modified Item_func_between::val_int(), Item_func_in::val_int(). opt_range.cc: Fixed bugs #12101, #12102: wrong calculation of not_null_tables() for some expressions. The function get_mm_tree() is modified. There cannot be NOT before BETWEEN/IN anymore. Rather Item_func_between/in objects can represent now [NOT]BETWEEN/IN expressions. sql_yacc.yy: Fixed bugs #12101, #12102: wrong calculation of not_null_tables() for some expressions. Item_func_between/in objects can represent now [NOT]BETWEEN/IN expresions. join_outer.result: Fixed some testcases results (bugs #12101, #12102) join_outer.test: Added testcases for bugs #12101, #12102 Perfomed a merge 4.1->5.0 sql_select.cc is changed in 5.0 The fix will appear in 4.1.15 and 5.0.13
[9 Sep 2005 15:01]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/internals/29570
[9 Sep 2005 20:22]
Paul DuBois
Noted in 4.1.15, 5.0.13 changelogs.