Loading mysql-test/r/upgrade.result +16 −0 Original line number Diff line number Diff line Loading @@ -41,3 +41,19 @@ t1 t-1 drop database `mysqltest1`; drop database `mysqltest-1`; drop table if exists `txu@0023P@0023p1`; drop table if exists `txu#P#p1`; create table `txu#P#p1` (s1 int); insert into `txu#P#p1` values (1); select * from `txu@0023P@0023p1`; ERROR 42S02: Table 'test.txu@0023P@0023p1' doesn't exist create table `txu@0023P@0023p1` (s1 int); insert into `txu@0023P@0023p1` values (2); select * from `txu@0023P@0023p1`; s1 2 select * from `txu#P#p1`; s1 1 drop table `txu@0023P@0023p1`; drop table `txu#P#p1`; mysql-test/t/upgrade.test +18 −0 Original line number Diff line number Diff line Loading @@ -29,3 +29,21 @@ show tables in `mysqltest1`; show tables in `mysqltest-1`; drop database `mysqltest1`; drop database `mysqltest-1`; # # Bug#17142: Crash if create with encoded name # --disable_warnings drop table if exists `txu@0023P@0023p1`; drop table if exists `txu#P#p1`; --enable_warnings create table `txu#P#p1` (s1 int); insert into `txu#P#p1` values (1); --error 1146 select * from `txu@0023P@0023p1`; create table `txu@0023P@0023p1` (s1 int); insert into `txu@0023P@0023p1` values (2); select * from `txu@0023P@0023p1`; select * from `txu#P#p1`; drop table `txu@0023P@0023p1`; drop table `txu#P#p1`; sql/table.cc +3 −0 Original line number Diff line number Diff line Loading @@ -298,6 +298,9 @@ int open_table_def(THD *thd, TABLE_SHARE *share, uint db_flags) strxmov(path, share->normalized_path.str, reg_ext, NullS); if ((file= my_open(path, O_RDONLY | O_SHARE, MYF(0))) < 0) { if (strchr(share->table_name.str, '@')) goto err_not_open; /* Try unecoded 5.0 name */ uint length; strxnmov(path, sizeof(path)-1, Loading Loading
mysql-test/r/upgrade.result +16 −0 Original line number Diff line number Diff line Loading @@ -41,3 +41,19 @@ t1 t-1 drop database `mysqltest1`; drop database `mysqltest-1`; drop table if exists `txu@0023P@0023p1`; drop table if exists `txu#P#p1`; create table `txu#P#p1` (s1 int); insert into `txu#P#p1` values (1); select * from `txu@0023P@0023p1`; ERROR 42S02: Table 'test.txu@0023P@0023p1' doesn't exist create table `txu@0023P@0023p1` (s1 int); insert into `txu@0023P@0023p1` values (2); select * from `txu@0023P@0023p1`; s1 2 select * from `txu#P#p1`; s1 1 drop table `txu@0023P@0023p1`; drop table `txu#P#p1`;
mysql-test/t/upgrade.test +18 −0 Original line number Diff line number Diff line Loading @@ -29,3 +29,21 @@ show tables in `mysqltest1`; show tables in `mysqltest-1`; drop database `mysqltest1`; drop database `mysqltest-1`; # # Bug#17142: Crash if create with encoded name # --disable_warnings drop table if exists `txu@0023P@0023p1`; drop table if exists `txu#P#p1`; --enable_warnings create table `txu#P#p1` (s1 int); insert into `txu#P#p1` values (1); --error 1146 select * from `txu@0023P@0023p1`; create table `txu@0023P@0023p1` (s1 int); insert into `txu@0023P@0023p1` values (2); select * from `txu@0023P@0023p1`; select * from `txu#P#p1`; drop table `txu@0023P@0023p1`; drop table `txu#P#p1`;
sql/table.cc +3 −0 Original line number Diff line number Diff line Loading @@ -298,6 +298,9 @@ int open_table_def(THD *thd, TABLE_SHARE *share, uint db_flags) strxmov(path, share->normalized_path.str, reg_ext, NullS); if ((file= my_open(path, O_RDONLY | O_SHARE, MYF(0))) < 0) { if (strchr(share->table_name.str, '@')) goto err_not_open; /* Try unecoded 5.0 name */ uint length; strxnmov(path, sizeof(path)-1, Loading