1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-01 03:47:19 +03:00

Bugfix: New table creation/renaming block added if old encoded table present.

mysql-test/r/create.result:
  test of renaming
mysql-test/r/upgrade.result:
  Now such behaviour prohibited to avoid problems.
mysql-test/t/create.test:
  test of renaming
mysql-test/t/upgrade.test:
  Now such behaviour prohibited to avoid problems.
sql/mysql_priv.h:
  Function to test table name presence added.
sql/sql_rename.cc:
  Rename fixed.
sql/sql_table.cc:
  Function to test table name presence added.
  Create fixed.
This commit is contained in:
unknown
2011-05-11 14:09:48 +03:00
parent e2ff288531
commit 520927a7df
7 changed files with 119 additions and 20 deletions

View File

@ -1890,5 +1890,24 @@ create table t3 (a int) row_format=page;
drop table t1,t2,t3;
# -- End of Bug#45829
# new table creation/renaming blocked if old encoded table present
create table `t-1` (a int) engine=myisam;
insert into `t-1` values (1);
show tables;
Tables_in_test
t-1
flush tables;
convert table files in mysql 5.0 file name encoding
show tables;
Tables_in_test
#mysql50#t-1
create table `t-1` (a int);
ERROR 42S01: Table '#mysql50#t-1' already exists
create table t1 (a int);
alter table t1 rename `t-1`;
ERROR 42S01: Table '#mysql50#t-1' already exists
rename table t1 to `t-1`;
ERROR 42S01: Table '#mysql50#t-1' already exists
drop table `#mysql50#t-1`, t1;
End of 5.1 tests

View File

@ -48,14 +48,10 @@ 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
ERROR 42S01: Table '#mysql50#txu@0023p@0023p1' already exists
select * from `txu#p#p1`;
s1
1
drop table `txu@0023p@0023p1`;
drop table `txu#p#p1`;
#
# Bug#37631 Incorrect key file for table after upgrading from 5.0 to 5.1

View File

@ -1534,5 +1534,30 @@ drop table t1,t2,t3;
--echo
--echo # -- End of Bug#45829
#
--echo # new table creation/renaming blocked if old encoded table present
#
let $MYSQLD_DATADIR= `select @@datadir`;
create table `t-1` (a int) engine=myisam;
insert into `t-1` values (1);
show tables;
flush tables;
--echo convert table files in mysql 5.0 file name encoding
--copy_file $MYSQLD_DATADIR/test/t@002d1.MYD $MYSQLD_DATADIR/test/t-1.MYD
--copy_file $MYSQLD_DATADIR/test/t@002d1.MYI $MYSQLD_DATADIR/test/t-1.MYI
--copy_file $MYSQLD_DATADIR/test/t@002d1.frm $MYSQLD_DATADIR/test/t-1.frm
--remove_file $MYSQLD_DATADIR/test/t@002d1.MYD
--remove_file $MYSQLD_DATADIR/test/t@002d1.MYI
--remove_file $MYSQLD_DATADIR/test/t@002d1.frm
show tables;
--error ER_TABLE_EXISTS_ERROR
create table `t-1` (a int);
create table t1 (a int);
--error ER_TABLE_EXISTS_ERROR
alter table t1 rename `t-1`;
--error ER_TABLE_EXISTS_ERROR
rename table t1 to `t-1`;
drop table `#mysql50#t-1`, t1;
--echo
--echo End of 5.1 tests

View File

@ -41,11 +41,9 @@ create table `txu#p#p1` (s1 int);
insert into `txu#p#p1` values (1);
--error 1146
select * from `txu@0023p@0023p1`;
--error ER_TABLE_EXISTS_ERROR
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`;
--echo #