upgrade.test 4.05 KB
Newer Older
monty@mysql.com's avatar
monty@mysql.com committed
1 2
-- source include/not_embedded.inc

3
--disable_warnings
monty@mysql.com's avatar
monty@mysql.com committed
4 5 6
drop database if exists `mysqltest1`;
drop database if exists `mysqltest-1`;
drop database if exists `#mysql50#mysqltest-1`;
7
--enable_warnings
monty@mysql.com's avatar
monty@mysql.com committed
8 9 10 11 12 13 14 15

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`;
16
--error 1049
monty@mysql.com's avatar
monty@mysql.com committed
17 18 19 20
show create database `mysqltest-1`;
show create database `#mysql50#mysqltest-1`;
show tables in `mysqltest1`;
show tables in `#mysql50#mysqltest-1`;
21 22 23

--exec $MYSQL_CHECK --all-databases --fix-db-names --fix-table-names

monty@mysql.com's avatar
monty@mysql.com committed
24 25
show create database `mysqltest1`;
show create database `mysqltest-1`;
26
--error 1049
monty@mysql.com's avatar
monty@mysql.com committed
27 28 29 30 31
show create database `#mysql50#mysqltest-1`;
show tables in `mysqltest1`;
show tables in `mysqltest-1`;
drop database `mysqltest1`;
drop database `mysqltest-1`;
32 33 34 35 36

#
# Bug#17142: Crash if create with encoded name
#
--disable_warnings
37 38
drop table if exists `txu@0023p@0023p1`;
drop table if exists `txu#p#p1`;
39
--enable_warnings
40 41
create table `txu#p#p1` (s1 int);
insert into `txu#p#p1` values (1);
42
--error 1146
43 44 45 46 47 48 49
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`;
50

51 52 53 54 55 56 57 58 59 60 61 62 63 64
--echo #
--echo # Bug#37631 Incorrect key file for table after upgrading from 5.0 to 5.1
--echo #
--echo # copy table created using mysql4.0 into the data dir
let $MYSQLD_DATADIR= `SELECT @@datadir`;
copy_file std_data/bug37631.frm $MYSQLD_DATADIR/test/t1.frm;
copy_file std_data/bug37631.MYD $MYSQLD_DATADIR/test/t1.MYD;
copy_file std_data/bug37631.MYI $MYSQLD_DATADIR/test/t1.MYI;
--echo # check the table created using mysql 4.0
CHECK TABLE t1;
--echo # query the table created using mysql 4.0
SELECT * FROM t1;
DROP TABLE t1;

65 66 67 68
#
# Check if old tables work
#

msvensson@pilot.mysql.com's avatar
msvensson@pilot.mysql.com committed
69
let $MYSQLD_DATADIR= `select @@datadir`;
70 71 72
--error 0,1
--remove_file $MYSQLD_DATADIR/test/t1.frm
--copy_file std_data/old_table-323.frm $MYSQLD_DATADIR/test/t1.frm
73 74 75
truncate t1;
drop table t1;

76 77 78 79 80 81 82 83 84 85 86 87 88 89
#
# 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
90
--mkdir $MYSQLD_DATADIR/a-b-c
msvensson@pilot.mysql.com's avatar
msvensson@pilot.mysql.com committed
91 92 93 94
--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
95 96 97 98 99 100 101 102 103 104 105

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`;

106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
#
# 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
127 128
client_cs_name=utf8
connection_cl_name=utf8_general_ci
129 130 131 132 133 134
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;
135
--disable_ps_protocol
136
select * from `a-b-c`.v1;
137
--enable_ps_protocol
138 139
drop database `a-b-c`;
use test;