summaryrefslogtreecommitdiff
path: root/sql-bench
diff options
context:
space:
mode:
authorunknown <timour@askmonty.org>2011-11-17 01:25:10 +0200
committerunknown <timour@askmonty.org>2011-11-17 01:25:10 +0200
commit42221abaed700f6dc5d280b462755851780e8487 (patch)
treede3407cdfbd18cfe5d5c77a2ae2fa44cb6f02e19 /sql-bench
parentc05e5b9c65f76ba2d3a6844add88c03076b2cb5d (diff)
downloadmariadb-git-42221abaed700f6dc5d280b462755851780e8487.tar.gz
Fix bug lp:869036
Apart from the fix, the patch also adds few more unrelated test cases for partial matching, and fixes few typos. Analysis: This bug uncovered that partial matching via rowid intersection didn't handle the case when: - the left IN argument has some NULLs, - there are no non-null value matches, and there is no non-null column, - the subquery columns that are not covered with the NULLs in the left IN argument contain at least one row, such that it has NULL values in all columns where the left IN operand has no NULLs. In this case there is a partial match. In addition the analysis of the related code uncovered incorrect handling of few other related cases. Solution: The solution for the bug is to check if there exists a row with NULLs in all columns other than the ones having NULL in the let IN operand. The check is implemented via checking whether the bitmaps that store NULL information in class Ordered_key have a non-empty intersection for the relevant columns. The intersection itself is implemented via the function bitmap_exists_intersection() in my_bitmap.c.
Diffstat (limited to 'sql-bench')
0 files changed, 0 insertions, 0 deletions