summaryrefslogtreecommitdiff
path: root/mysql-test/suite/innodb/t/innodb_force_recovery.test
blob: 31b9660e87229cb84a648fcabac955e37c0e9392 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# Not supported in embedded
--source include/not_embedded.inc

# This test case needs InnoDB.
-- source include/have_innodb.inc

--disable_query_log
call mtr.add_suppression("InnoDB: Failed to find tablespace for table .* in the cache. Attempting to load the tablespace with space id");
call mtr.add_suppression("InnoDB: Allocated tablespace ID \\d+ for test.t[12], old maximum was");
--enable_query_log

create table t1(f1 int not null, f2 int not null, index idx(f2))engine=innodb;
create table t2(f1 int not null, f2 int not null, index idx(f2))engine=innodb;
insert into t1 values(1, 2);
insert into t2 values(1, 2);

SET GLOBAL innodb_fast_shutdown = 0;

--echo # Restart the server with innodb_force_recovery as 4.
--let $restart_parameters= --innodb-force-recovery=4
--source include/restart_mysqld.inc

select * from t1;

--error ER_READ_ONLY_MODE
insert into t1 values(2, 3);

--replace_regex /#sql-[0-9a-f_]*/#sql-temporary/
--error ER_CANT_CREATE_TABLE
alter table t1 add f3 int not null, algorithm=copy;

--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
alter table t1 add f3 int not null, algorithm=inplace;

--replace_regex /#sql-[0-9a-f_]*/#sql-temporary/
--error ER_CANT_CREATE_TABLE
drop index idx on t1;
--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
alter table t1 drop index idx, algorithm=inplace;

--error ER_READ_ONLY_MODE
update t1 set f1=3 where f2=2;

--error ER_CANT_CREATE_TABLE
create table t3(f1 int not null)engine=innodb;

--error ER_BAD_TABLE_ERROR
drop table t3;

--error ER_ERROR_ON_RENAME
rename table t1 to t3;

--error ER_OPEN_AS_READONLY
truncate table t1;

drop table t1;
show tables;

--echo # Restart the server with innodb_force_recovery as 5.
--let $restart_parameters= --innodb-force-recovery=5
--source include/restart_mysqld.inc

select * from t2;

--error ER_READ_ONLY_MODE
insert into t2 values(2, 3);

--replace_regex /#sql-[0-9a-f_]*/#sql-temporary/
--error ER_CANT_CREATE_TABLE
alter table t2 add f3 int not null, algorithm=copy;

--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
alter table t2 add f3 int not null, algorithm=inplace;

--replace_regex /#sql-[0-9a-f_]*/#sql-temporary/
--error ER_CANT_CREATE_TABLE
drop index idx on t2;

--error ER_READ_ONLY_MODE
update t2 set f1=3 where f2=2;

--error ER_CANT_CREATE_TABLE
create table t1(f1 int not null)engine=innodb;

--error ER_BAD_TABLE_ERROR
drop table t1;

--error ER_ERROR_ON_RENAME
rename table t2 to t3;

--error ER_OPEN_AS_READONLY
truncate table t2;

--error ER_OPEN_AS_READONLY
drop table t2;
show tables;

--echo # Restart the server with innodb_force_recovery as 6.
--let $restart_parameters= --innodb-force-recovery=6
--source include/restart_mysqld.inc

select * from t2;

--error ER_OPEN_AS_READONLY
insert into t2 values(2, 3);

--error ER_OPEN_AS_READONLY
alter table t2 add f3 int not null, algorithm=copy;

--error ER_ALTER_OPERATION_NOT_SUPPORTED_REASON
alter table t2 add f3 int not null, algorithm=inplace;

--error ER_OPEN_AS_READONLY
drop index idx on t2;

--error ER_OPEN_AS_READONLY
update t2 set f1=3 where f2=2;

--error ER_CANT_CREATE_TABLE
create table t1(f1 int not null)engine=innodb;

--error ER_BAD_TABLE_ERROR
drop table t1;

--error ER_ERROR_ON_RENAME
rename table t2 to t3;

--error ER_OPEN_AS_READONLY
truncate table t2;

--error ER_OPEN_AS_READONLY
drop table t2;
show tables;

--let $restart_parameters=
--source include/restart_mysqld.inc

drop table t2;
show tables;