mariadb/mysys
unknown 42221abaed 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.
2011-11-17 01:25:10 +02:00
..
.cvsignore
array.c Merge MySQL 5.1.39 into MariaDB 5.1. 2009-10-15 23:38:29 +02:00
base64.c fixed compilation warnings. addendum to the fix for bug 29125 2009-03-20 16:27:53 +02:00
ChangeLog
charset-def.c Applied Antony T Curtis patch for declaring many CHARSET objects as const 2010-01-06 21:20:16 +02:00
charset.c Rewritten patch of percona - switching query cache on and off, removing comments. 2011-05-18 16:27:19 +03:00
checksum.c Bug#29125 Windows Server X64: so many compiler warnings 2009-02-13 11:41:47 -05:00
CMakeLists.txt merge 2011-10-11 12:55:42 +02:00
default.c Recommit of Bug#49447. 2010-02-04 13:39:42 +01:00
default_modify.c Backport Fix for Bug#24509 - 2048 file descriptor limit on windows needs increasing. 2011-06-12 15:52:07 +02:00
errors.c Merge with MySQL 5.1.55 2011-02-20 18:51:43 +02:00
hash.c Merge with 5.2 2011-03-09 15:47:59 +02:00
lf_alloc-pin.c post-review fixes 2009-01-15 22:27:36 +01:00
lf_dynarray.c
lf_hash.c Remove compiler warnings (Including some warnings from -Wstrict-aliasing) 2009-11-30 01:08:56 +02:00
list.c
ma_dyncol.c Compiler warning about assigned but not used variables fixed. 2011-10-18 13:44:12 +03:00
make-ccc
make-conf.c
Makefile.am merge Windows performance patches into 5.3 2011-07-05 21:46:53 +02:00
md5.c Bug #42434: license of mysys MD5 implementation is not GPL-compatible 2009-03-09 20:57:03 +02:00
mf_arr_appstr.c
mf_brkhant.c
mf_cache.c
mf_dirname.c
mf_fn_ext.c
mf_format.c BUG#43949 Initialization of slave produces a warning message in Valgrind 2009-04-19 02:21:33 +01:00
mf_getdate.c fix compilation warning 2011-04-03 16:30:29 +02:00
mf_iocache.c Merge with 5.2 2011-09-10 18:01:27 +03:00
mf_iocache2.c Merge MySQL->MariaDB 2009-09-08 00:50:10 +04:00
mf_keycache.c Bug#58057: 5.1 libmysql/libmysql.c unused variable/compile failure 2010-11-10 19:14:47 -02:00
mf_keycaches.c
mf_loadpath.c Bug#53445: Build with -Wall and fix warnings that it generates 2010-07-02 15:30:47 -03:00
mf_pack.c Merge 2010-12-29 00:47:05 +01:00
mf_path.c
mf_qsort.c We are now using Valgrind rather than purify, and have for quite some time. 2009-05-06 14:03:24 +02:00
mf_qsort2.c
mf_radix.c
mf_same.c
mf_sort.c
mf_soundex.c Added extra argument to longlong2str() to make it have same prototype is int2str() 2010-08-07 15:27:23 +03:00
mf_tempdir.c Bug#29125 Windows Server X64: so many compiler warnings 2009-02-13 11:41:47 -05:00
mf_tempfile.c
mf_unixpath.c
mf_util.c
mf_wcomp.c
mf_wfile.c Bug#42733: Type-punning warnings when compiling MySQL -- 2010-06-10 17:16:43 -03:00
mulalloc.c
my_access.c
my_aes.c
my_alarm.c
my_alloc.c Merge with MySQL 5.1.49 2010-08-02 12:01:24 +03:00
my_append.c Bug#29125 Windows Server X64: so many compiler warnings 2009-02-13 11:41:47 -05:00
my_atomic.c Bug#22320: my_atomic-t unit test fails 2010-07-05 09:00:39 -03:00
my_bit.c
my_bitmap.c Fix bug lp:869036 2011-11-17 01:25:10 +02:00
my_chmod.c
my_chsize.c Backport Fix for Bug#24509 - 2048 file descriptor limit on windows needs increasing. 2011-06-12 15:52:07 +02:00
my_clock.c
my_compare.c Merge with MariaDB 5.2 2011-05-10 18:17:43 +03:00
my_compress.c Fix most Compiler warnings seen in buildbot. 2009-09-03 15:20:22 +02:00
my_conio.c Bug#29125 Windows Server X64: so many compiler warnings 2009-02-13 11:41:47 -05:00
my_copy.c mysqltest now gives error messages with error code for my_delete, my_rename, my_copy etc. 2010-09-15 15:48:15 +03:00
my_crc32.c
my_create.c Backport Fix for Bug#24509 - 2048 file descriptor limit on windows needs increasing. 2011-06-12 15:52:07 +02:00
my_delete.c
my_div.c
my_dup.c Backport Fix for Bug#24509 - 2048 file descriptor limit on windows needs increasing. 2011-06-12 15:52:07 +02:00
my_error.c Merged with mysql-5.1 tree. 2009-04-25 13:05:32 +03:00
my_file.c Backport Fix for Bug#24509 - 2048 file descriptor limit on windows needs increasing. 2011-06-12 15:52:07 +02:00
my_fopen.c Backport Fix for Bug#24509 - 2048 file descriptor limit on windows needs increasing. 2011-06-12 15:52:07 +02:00
my_fstream.c Backport Fix for Bug#24509 - 2048 file descriptor limit on windows needs increasing. 2011-06-12 15:52:07 +02:00
my_gethwaddr.c merge 5.2 2011-10-19 21:01:42 +02:00
my_getncpus.c Merge with MySQL 5.1.55 2011-02-20 18:51:43 +02:00
my_getopt.c Fixed wrong info message for mysqld --general-log 2011-10-16 21:55:53 +03:00
my_getpagesize.c
my_getsystime.c Merge with 5.1-microseconds 2011-05-28 05:11:32 +03:00
my_getwd.c missing DBUG_RETURNs 2010-08-14 18:44:45 +04:00
my_handler_errors.h Added HA_ERR_DISK_FULL handler error 2011-05-18 13:36:12 +03:00
my_init.c Merge 5.2->5.3 2011-09-02 15:10:10 +03:00
my_largepage.c Bug #43606: 4GB Limit on huge_pages shared memory set-up 2009-09-18 11:19:02 +04:00
my_lib.c Backport Fix for Bug#24509 - 2048 file descriptor limit on windows needs increasing. 2011-06-12 15:52:07 +02:00
my_libwrap.c
my_lock.c Backport Fix for Bug#24509 - 2048 file descriptor limit on windows needs increasing. 2011-06-12 15:52:07 +02:00
my_lockmem.c
my_malloc.c Added logging of all errors from my_read/my_write/my_pread/my_pwrite/my_open & my_malloc to mysqld error log if one sets log-warning to 10 or 11 2011-09-02 01:22:34 +03:00
my_memmem.c
my_messnc.c
my_mkdir.c
my_mmap.c Backport Fix for Bug#24509 - 2048 file descriptor limit on windows needs increasing. 2011-06-12 15:52:07 +02:00
my_net.c Bug #11758687: 50924: object names not resolved correctly 2011-04-04 16:04:15 +03:00
my_netware.c
my_new.cc Bug#43461: invalid comparison with string literal in default.c 2009-03-19 17:20:15 -03:00
my_once.c Fix build error after last push with --with-debug=full due to SAFEMALLOC now being 2009-03-31 10:06:51 +02:00
my_open.c Merge 5.2->5.3 2011-09-02 15:10:10 +03:00
my_port.c Merge with MySQL 5.1.57/58 2011-05-02 20:58:45 +03:00
my_pread.c Merge 5.2->5.3 2011-09-02 15:10:10 +03:00
my_pthread.c WL#3262 add mutex lock order checking to safemutex (also called safe_mutex_deadlock_detector) 2008-12-03 00:02:52 +02:00
my_quick.c Backport Fix for Bug#24509 - 2048 file descriptor limit on windows needs increasing. 2011-06-12 15:52:07 +02:00
my_read.c Merge 5.2->5.3 2011-09-02 15:10:10 +03:00
my_realloc.c Fix build error after last push with --with-debug=full due to SAFEMALLOC now being 2009-03-31 10:06:51 +02:00
my_redel.c Added option BACKUP_ALL to mysqld --myisam-recover to also get a backup of the index file before it's repaired. 2010-11-07 14:25:29 +02:00
my_rename.c
my_rnd.c We are now using Valgrind rather than purify, and have for quite some time. 2009-05-06 14:03:24 +02:00
my_safehash.c
my_safehash.h
my_seek.c Backport Fix for Bug#24509 - 2048 file descriptor limit on windows needs increasing. 2011-06-12 15:52:07 +02:00
my_sleep.c WL#3262 add mutex lock order checking to safemutex (also called safe_mutex_deadlock_detector) 2008-12-03 00:02:52 +02:00
my_static.c Merge with 5.2 2011-09-10 18:01:27 +03:00
my_static.h wl#173 - temporal types with sub-second resolution 2011-03-01 13:24:36 +01:00
my_symlink.c Merge with MySQL 5.1.55 2011-02-20 18:51:43 +02:00
my_symlink2.c Fix for: LP #634955: Assert in _ma_update_at_original_place() 2010-11-02 17:22:57 +02:00
my_sync.c Backport Fix for Bug#24509 - 2048 file descriptor limit on windows needs increasing. 2011-06-12 15:52:07 +02:00
my_thr_init.c Merge MySQL 5.1.44 into MariaDB. 2010-03-04 09:03:07 +01:00
my_uuid.c Merge with 5.1-microseconds 2011-05-28 05:11:32 +03:00
my_vle.c
my_wincond.c merge Windows performance patches into 5.3 2011-07-05 21:46:53 +02:00
my_windac.c
my_winerr.c Backport Fix for Bug#24509 - 2048 file descriptor limit on windows needs increasing. 2011-06-12 15:52:07 +02:00
my_winfile.c Backport Fix for Bug#24509 - 2048 file descriptor limit on windows needs increasing. 2011-06-12 15:52:07 +02:00
my_winthread.c Backport fix for MySQL bug #56405 : 2011-06-12 16:09:28 +02:00
my_write.c Merge 5.2->5.3 2011-09-02 15:10:10 +03:00
mysys_priv.h Backport Fix for Bug#24509 - 2048 file descriptor limit on windows needs increasing. 2011-06-12 15:52:07 +02:00
ptr_cmp.c
queues.c many changes to my_getsystime.c: 2011-05-19 19:05:35 +02:00
rijndael.c
safemalloc.c Merge with 5.1 to get in changes from MySQL 5.1.55 2011-02-28 19:39:30 +02:00
sha1.c Bug #56427 : Replace copyright notice removed from SHA1 code 2010-10-05 17:03:04 +03:00
stacktrace.c Workaround a GCC warning about a pointer being cast to a larger 2010-11-30 21:07:55 -02:00
string.c Adding support for Dynamic columns (WL#34): 2011-05-08 13:24:06 +03:00
test_charset.c
test_dir.c
test_fn.c
test_thr_mutex.c Add missing file: Testing of mutex-wrong-usage-detector 2008-12-03 00:09:37 +02:00
test_xml.c
testhash.c
thr_alarm.c Implementation of MWL#172: Add support for prepared statements to HANDLER READ 2011-01-04 00:55:41 +02:00
thr_lock.c Merge with 5.2 to get bug fixes for thr_lock 2011-06-06 19:37:33 +03:00
thr_mutex.c Fixed lp:814238 "safe_mutex issues must be assertions in debug binary" 2011-09-02 12:41:20 +03:00
thr_rwlock.c Backport fix for MySQL bug #56405 : 2011-06-12 16:09:28 +02:00
tree.c Merge in new handler and handlersocket code into 5.3 main 2011-02-22 11:15:47 +02:00
trie.c
typelib.c Merge the last bit of MySQL 5.1.41 into MariaDB. 2009-11-18 12:47:59 +01:00
waiting_threads.c Merge with 5.1-microseconds 2011-05-28 05:11:32 +03:00
wqueue.c