mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
bb08984f07
allow 'rename view' for ALTER ...UPGRADE DATA DIRECTORY NAME command. it's safe because a view has valid internal db&table names in this case. mysql-test/r/upgrade.result: test result mysql-test/t/upgrade.test: test case sql/sql_rename.cc: allow 'rename view' for ALTER ...UPGRADE DATA DIRECTORY NAME command. it's safe because a view has valid internal db&table names in this case.
121 lines
3.4 KiB
Text
121 lines
3.4 KiB
Text
-- source include/not_embedded.inc
|
|
|
|
--disable_warnings
|
|
drop database if exists `mysqltest1`;
|
|
drop database if exists `mysqltest-1`;
|
|
drop database if exists `#mysql50#mysqltest-1`;
|
|
--enable_warnings
|
|
|
|
create database `mysqltest1`;
|
|
create database `#mysql50#mysqltest-1`;
|
|
create table `mysqltest1`.`t1` (a int);
|
|
create table `mysqltest1`.`#mysql50#t-1` (a int);
|
|
create table `#mysql50#mysqltest-1`.`t1` (a int);
|
|
create table `#mysql50#mysqltest-1`.`#mysql50#t-1` (a int);
|
|
show create database `mysqltest1`;
|
|
--error 1049
|
|
show create database `mysqltest-1`;
|
|
show create database `#mysql50#mysqltest-1`;
|
|
show tables in `mysqltest1`;
|
|
show tables in `#mysql50#mysqltest-1`;
|
|
|
|
--exec $MYSQL_CHECK --all-databases --fix-db-names --fix-table-names
|
|
|
|
show create database `mysqltest1`;
|
|
show create database `mysqltest-1`;
|
|
--error 1049
|
|
show create database `#mysql50#mysqltest-1`;
|
|
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`;
|
|
|
|
#
|
|
# Check if old tables work
|
|
#
|
|
|
|
let $MYSQLD_DATADIR= `select @@datadir`;
|
|
--error 0,1
|
|
--remove_file $MYSQLD_DATADIR/test/t1.frm
|
|
--copy_file std_data/old_table-323.frm $MYSQLD_DATADIR/test/t1.frm
|
|
truncate t1;
|
|
drop table t1;
|
|
|
|
#
|
|
# Bug#28360 (RENAME DATABASE destroys routines)
|
|
#
|
|
|
|
--disable_warnings
|
|
drop database if exists `tabc`;
|
|
drop database if exists `a-b-c`;
|
|
--enable_warnings
|
|
|
|
create database `tabc` default character set latin2;
|
|
create table tabc.t1 (a int);
|
|
FLUSH TABLES;
|
|
|
|
# Manually make a 5.0 database from the template
|
|
--mkdir $MYSQLD_DATADIR/a-b-c
|
|
--copy_file $MYSQLD_DATADIR/tabc/db.opt $MYSQLD_DATADIR/a-b-c/db.opt
|
|
--copy_file $MYSQLD_DATADIR/tabc/t1.frm $MYSQLD_DATADIR/a-b-c/t1.frm
|
|
--copy_file $MYSQLD_DATADIR/tabc/t1.MYD $MYSQLD_DATADIR/a-b-c/t1.MYD
|
|
--copy_file $MYSQLD_DATADIR/tabc/t1.MYI $MYSQLD_DATADIR/a-b-c/t1.MYI
|
|
|
|
show databases like '%a-b-c%';
|
|
ALTER DATABASE `#mysql50#a-b-c` UPGRADE DATA DIRECTORY NAME;
|
|
# The physical directory name is now a@002db@002dc, the logical name still a-b-c
|
|
show databases like '%a-b-c%';
|
|
show create database `a-b-c`;
|
|
show tables in `a-b-c`;
|
|
show create table `a-b-c`.`t1`;
|
|
drop database `a-b-c`;
|
|
drop database `tabc`;
|
|
|
|
#
|
|
# Bug#43385 Cannot ALTER DATABASE ... UPGRADE DATA DIRECTORY NAME when Views exist
|
|
#
|
|
let $MYSQLD_DATADIR= `select @@datadir`;
|
|
--mkdir $MYSQLD_DATADIR/a-b-c
|
|
use `#mysql50#a-b-c`;
|
|
create table t1(f1 char(10));
|
|
|
|
--write_file $MYSQLD_DATADIR/a-b-c/v1.frm
|
|
TYPE=VIEW
|
|
query=select `a`.`f1` AS `f1` from `a-b-c`.`t1` `a` join `information_schema`.`tables` `b` where (convert(`a`.`f1` using utf8) = `b`.`TABLE_NAME`)
|
|
md5=068271f1c657fe115e497856ca0fa493
|
|
updatable=0
|
|
algorithm=0
|
|
definer_user=root
|
|
definer_host=localhost
|
|
suid=2
|
|
with_check_option=0
|
|
timestamp=2009-04-10 11:53:37
|
|
create-version=1
|
|
source=select f1 from `a-b-c`.t1 a, information_schema.tables b\nwhere a.f1 = b.table_name
|
|
EOF
|
|
|
|
show databases like '%a-b-c%';
|
|
ALTER DATABASE `#mysql50#a-b-c` UPGRADE DATA DIRECTORY NAME;
|
|
show databases like '%a-b-c%';
|
|
show create view `a-b-c`.v1;
|
|
select * from `a-b-c`.v1;
|
|
drop database `a-b-c`;
|
|
use test;
|