Loading mysql-test/r/innodb_mysql.result +6 −0 Original line number Diff line number Diff line Loading @@ -1677,3 +1677,9 @@ select @@session.sql_log_bin, @@session.binlog_format, @@session.tx_isolation; CREATE TABLE t1 ( a INT ) ENGINE=InnoDB; INSERT INTO t1 VALUES(1); DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 (a char(50)) ENGINE=InnoDB; CREATE INDEX i1 on t1 (a(3)); SELECT * FROM t1 WHERE a = 'abcde'; a DROP TABLE t1; mysql-test/t/innodb_mysql.test +10 −0 Original line number Diff line number Diff line Loading @@ -43,3 +43,13 @@ CREATE TABLE t1 ( a INT ) ENGINE=InnoDB; INSERT INTO t1 VALUES(1); DROP TABLE t1; # # Bug#37284 Crash in Field_string::type() # --disable_warnings DROP TABLE IF EXISTS t1; --enable_warnings CREATE TABLE t1 (a char(50)) ENGINE=InnoDB; CREATE INDEX i1 on t1 (a(3)); SELECT * FROM t1 WHERE a = 'abcde'; DROP TABLE t1; sql/sql_base.cc +3 −0 Original line number Diff line number Diff line Loading @@ -3095,7 +3095,10 @@ bool reopen_table(TABLE *table) for (key=0 ; key < table->s->keys ; key++) { for (part=0 ; part < table->key_info[key].usable_key_parts ; part++) { table->key_info[key].key_part[part].field->table= table; table->key_info[key].key_part[part].field->orig_table= table; } } if (table->triggers) table->triggers->set_table(table); Loading Loading
mysql-test/r/innodb_mysql.result +6 −0 Original line number Diff line number Diff line Loading @@ -1677,3 +1677,9 @@ select @@session.sql_log_bin, @@session.binlog_format, @@session.tx_isolation; CREATE TABLE t1 ( a INT ) ENGINE=InnoDB; INSERT INTO t1 VALUES(1); DROP TABLE t1; DROP TABLE IF EXISTS t1; CREATE TABLE t1 (a char(50)) ENGINE=InnoDB; CREATE INDEX i1 on t1 (a(3)); SELECT * FROM t1 WHERE a = 'abcde'; a DROP TABLE t1;
mysql-test/t/innodb_mysql.test +10 −0 Original line number Diff line number Diff line Loading @@ -43,3 +43,13 @@ CREATE TABLE t1 ( a INT ) ENGINE=InnoDB; INSERT INTO t1 VALUES(1); DROP TABLE t1; # # Bug#37284 Crash in Field_string::type() # --disable_warnings DROP TABLE IF EXISTS t1; --enable_warnings CREATE TABLE t1 (a char(50)) ENGINE=InnoDB; CREATE INDEX i1 on t1 (a(3)); SELECT * FROM t1 WHERE a = 'abcde'; DROP TABLE t1;
sql/sql_base.cc +3 −0 Original line number Diff line number Diff line Loading @@ -3095,7 +3095,10 @@ bool reopen_table(TABLE *table) for (key=0 ; key < table->s->keys ; key++) { for (part=0 ; part < table->key_info[key].usable_key_parts ; part++) { table->key_info[key].key_part[part].field->table= table; table->key_info[key].key_part[part].field->orig_table= table; } } if (table->triggers) table->triggers->set_table(table); Loading