• unknown's avatar
    Fixed bug #14896. · a15f5736
    unknown authored
    This bug in Field_string::cmp resulted in a wrong comparison 
    with keys in partial indexes over multi-byte character fields.
    Given field a is declared as a varchar(16) collate utf8_unicode_ci
    INDEX(a(4)) gives us an example of such an index.
      
    Wrong key comparisons could lead to wrong result sets if 
    the selected query execution plan used a range scan by 
    a partial index over a utf8 character field.
    This also caused wrong results in many other cases.
    
    
    mysql-test/t/ctype_utf8.test:
      Added test cases for bug #14896.
    mysql-test/r/ctype_utf8.result:
      Added test cases for bug #14896.
    sql/field.cc:
      Fixed bug #14896.
      This bug in Field_string::cmp resulted in a wrong comparison 
      with keys in partial indexes over multi-byte character fields.
      Given field a is declared as a varchar(16) collate utf8_unicode_ci
      INDEX(a(4)) gives us an example of such an index.
           
      Wrong key comparisons could lead to wrong result sets if 
      the selected query execution plan used a range scan by 
      a partial index over a utf8 character field.
      This also caused wrong results in many other cases.
    a15f5736
field.cc 179 KB