Browse Source
Fix bug lp:813473
Fix bug lp:813473
The bug is a duplicate of MySQL's Bug#11764086, however MySQL's fix is incomplete for MariaDB, so this fix is slightly different. In addition, this patch renames Item_func_not_all::top_level() to is_top_level_item() to make it in line with the analogous methods of Item_in_optimizer, and Item_subselect. Analysis: It is possible to determine whether a predicate is NULL-rejecting only if it is a top-level one. However, this was not taken into account for Item_in_optimizer. As a result, a NOT IN predicate was erroneously considered as NULL-rejecting, and the NULL-complemented rows generated by the outer join were rejected before being checked by the NOT IN predicate. Solution: Change Item_in_optimizer to be considered as NULL-rejecting only if it a top-level predicate.pull/374/head
9 changed files with 464 additions and 4 deletions
-
73mysql-test/r/subselect.result
-
73mysql-test/r/subselect_no_mat.result
-
73mysql-test/r/subselect_no_opts.result
-
73mysql-test/r/subselect_no_semijoin.result
-
73mysql-test/r/subselect_scache.result
-
74mysql-test/t/subselect.test
-
23sql/item_cmpfunc.cc
-
4sql/item_cmpfunc.h
-
2sql/item_subselect.cc
Write
Preview
Loading…
Cancel
Save
Reference in new issue