• unknown's avatar
    Fixed unique prefix key bug for multibyte character sets (BUG #4521) for · dc704231
    unknown authored
    InnoDB. This fixes also a second part of the same problem with prefix keys
    on a multibyte string column for InnoDB.
    
    
    innobase/btr/btr0btr.c:
      Multibyte character set prefix indexes are not any more fixed size. Therefore,
      we have to chect that length of the index field in not greater than
      prefix length.
    innobase/rem/rem0cmp.c:
      Remove unnecessary changes.
    innobase/row/row0ins.c:
      Fixed unique prefix key or prefix key using multibyte character set bugs for
      InnoDB (BUG #4521). For prefix keys we have to get the storage length
      for the prefix length of characters in the key.
    innobase/row/row0row.c:
      Fixed unique prefix key or prefix key using multibyte character set bugs for
      InnoDB (BUG #4521). For prefix keys we have to get the storage length
      for the prefix length of characters in the key.
    innobase/row/row0sel.c:
      Fixed unique prefix key or prefix key using multibyte character set bugs for
      InnoDB (BUG #4521). For prefix keys we have to get the storage length
      for the prefix length of characters in the key.
    innobase/row/row0upd.c:
      Fixed unique prefix key or prefix key using multibyte character set bugs for
      InnoDB (BUG #4521). For prefix keys we have to get the storage length
      for the prefix length of characters in the key.
    mysql-test/r/ctype_utf8.result:
      Added utf8 character test cases for InnoDB.
    mysql-test/t/ctype_utf8.test:
      Added utf8 character expected test results for InnoDB.
    sql/ha_innodb.cc:
      Added function innobase_get_at_most_n_mbchars to return position of
      the nth character in the multibyte character string.
    sql/ha_innodb.h:
      Remove unnecessary changes.
    dc704231
rem0cmp.c 26.5 KB