Loading mysql-test/r/create.result +6 −0 Original line number Diff line number Diff line Loading @@ -765,3 +765,9 @@ t1 CREATE TABLE `t1` ( `i` int(11) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 MAX_ROWS=4294967295 drop table t1; create table t1(f1 varchar(800) binary not null, key(f1)) engine = innodb character set utf8 collate utf8_general_ci; Warnings: Warning 1071 Specified key was too long; max key length is 765 bytes insert into t1 values('aaa'); drop table t1; mysql-test/t/create.test +8 −0 Original line number Diff line number Diff line Loading @@ -660,4 +660,12 @@ alter table t1 max_rows=100000000000; show create table t1; drop table t1; # # Bug#17530: Incorrect key truncation on table creation caused server crash. # create table t1(f1 varchar(800) binary not null, key(f1)) engine = innodb character set utf8 collate utf8_general_ci; insert into t1 values('aaa'); drop table t1; # End of 5.0 tests sql/sql_table.cc +3 −1 Original line number Diff line number Diff line Loading @@ -1300,6 +1300,8 @@ static int mysql_prepare_table(THD *thd, HA_CREATE_INFO *create_info, if (length > file->max_key_part_length() && key->type != Key::FULLTEXT) { length= file->max_key_part_length(); /* Align key length to multibyte char boundary */ length-= length % sql_field->charset->mbmaxlen; if (key->type == Key::MULTIPLE) { /* not a critical problem */ Loading Loading
mysql-test/r/create.result +6 −0 Original line number Diff line number Diff line Loading @@ -765,3 +765,9 @@ t1 CREATE TABLE `t1` ( `i` int(11) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 MAX_ROWS=4294967295 drop table t1; create table t1(f1 varchar(800) binary not null, key(f1)) engine = innodb character set utf8 collate utf8_general_ci; Warnings: Warning 1071 Specified key was too long; max key length is 765 bytes insert into t1 values('aaa'); drop table t1;
mysql-test/t/create.test +8 −0 Original line number Diff line number Diff line Loading @@ -660,4 +660,12 @@ alter table t1 max_rows=100000000000; show create table t1; drop table t1; # # Bug#17530: Incorrect key truncation on table creation caused server crash. # create table t1(f1 varchar(800) binary not null, key(f1)) engine = innodb character set utf8 collate utf8_general_ci; insert into t1 values('aaa'); drop table t1; # End of 5.0 tests
sql/sql_table.cc +3 −1 Original line number Diff line number Diff line Loading @@ -1300,6 +1300,8 @@ static int mysql_prepare_table(THD *thd, HA_CREATE_INFO *create_info, if (length > file->max_key_part_length() && key->type != Key::FULLTEXT) { length= file->max_key_part_length(); /* Align key length to multibyte char boundary */ length-= length % sql_field->charset->mbmaxlen; if (key->type == Key::MULTIPLE) { /* not a critical problem */ Loading