mariadb/storage
unknown 438d21189c Null Merge from mysql-5.1 with second fix for Bug#12637786
Bug#12637786 was fixed with rb:692 by marko.  But that fix has a remaining
bug.  It added this assert;
    ut_ad(ind_field->prefix_len);
before a section of code that assumes there is a prefix_len.  

The patch replaced code that explicitly avoided this with a check for
prefix_len.  It turns out that the purge thread can get to that assert
without a prefix_len because it does not use a row_ext_t* .
When UNIV_DEBUG is not defined, the affect of this is that the purge thread
sets the dfield->len to zero and then cannot find the entry in the index to
purge.  So secondary index entries remain unpurged.

This patch does not do the assert.  Instead, it uses
    'if (ind_field->prefix_len) {...}'
around the section of code that assumes a prefix_len.  This is the way the
patch I provided to Marko did it.

The test case is simply modified to do a sleep(10) in order to give the
purge thread a chance to run. Without the code change to row0row.c, this
modified testcase will assert if InnoDB was compiled with UNIV_DEBUG.
I tried to sleep(5), but it did not always assert.
2011-07-08 08:16:23 -05:00
..
archive Updated/added copyright headers 2011-07-04 01:25:49 +02:00
blackhole Updated/added copyright headers 2011-06-30 17:46:53 +02:00
csv Updated/added copyright headers 2011-06-30 17:46:53 +02:00
example Updated/added copyright headers 2011-06-30 17:46:53 +02:00
federated Updated/added copyright headers 2011-06-30 17:46:53 +02:00
heap Updated/added copyright headers 2011-07-04 01:25:49 +02:00
innobase Null Merge from mysql-5.1 with second fix for Bug#12637786 2011-07-08 08:16:23 -05:00
myisam Updated/added copyright headers 2011-07-04 01:25:49 +02:00
myisammrg Updated/added copyright headers 2011-07-04 01:25:49 +02:00
ndb Merge from mysql-5.5.14-release 2011-07-06 01:13:50 +02:00
perfschema Bug#12727287: Maintainer mode compilation fails with gcc 4.6 2011-07-07 08:22:43 -03:00