~maria-captains/maria/5.3

Viewing all changes in revision 3163.

  • Committer: timour at askmonty
  • Date: 2011-08-17 11:10:32 UTC
  • Revision ID: timour@askmonty.org-20110817111032-nbegqxzq30iq7bim
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.

expand all expand all

Show diffs side-by-side

added added

removed removed

Lines of Context: