1set sql_log_bin=0;
2drop table if exists t1,v1,v2,v3,v4,v1badcheck;
3drop view if exists t1,v1,v2,v3,v4,v1badcheck;
4create table t1(a int);
5create table kv(k varchar(30) NOT NULL PRIMARY KEY,v  varchar(50));
6create view v1 as select 1;
7repair table t1 quick;
8Table	Op	Msg_type	Msg_text
9test.t1	repair	status	OK
10repair table t1 extended;
11Table	Op	Msg_type	Msg_text
12test.t1	repair	status	OK
13repair table t1 use_frm;
14Table	Op	Msg_type	Msg_text
15test.t1	repair	status	OK
16repair table t1 from mysql;
17ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'from mysql' at line 1
18repair view v1 quick;
19ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'quick' at line 1
20repair view v1 extended;
21ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'extended' at line 1
22repair view v1 use_frm;
23ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'use_frm' at line 1
24repair view v1 from mysql;
25Table	Op	Msg_type	Msg_text
26test.v1	repair	status	OK
27check view v1 quick;
28ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'quick' at line 1
29check view v1 fast;
30ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'fast' at line 1
31check view v1 medium;
32ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'medium' at line 1
33check view v1 extended;
34ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'extended' at line 1
35check view v1 changed;
36ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'changed' at line 1
37check view v1 for upgrade;
38Table	Op	Msg_type	Msg_text
39test.v1	check	status	OK
40drop view v1;
41flush tables;
42check view v1;
43Table	Op	Msg_type	Msg_text
44test.v1	check	status	OK
45check view v1badcheck;
46Table	Op	Msg_type	Msg_text
47test.v1badcheck	check	note	View text checksum failed
48check view v2;
49Table	Op	Msg_type	Msg_text
50test.v2	check	status	OK
51check view v3;
52Table	Op	Msg_type	Msg_text
53test.v3	check	status	OK
54check view v1 for upgrade;
55Table	Op	Msg_type	Msg_text
56test.v1	check	error	Upgrade required. Please do "REPAIR VIEW `v1`" or dump/reload to fix it!
57check view v1badcheck for upgrade;
58Table	Op	Msg_type	Msg_text
59test.v1badcheck	check	note	View text checksum failed
60check view v2 for upgrade;
61Table	Op	Msg_type	Msg_text
62test.v2	check	error	Upgrade required. Please do "REPAIR VIEW `v2`" or dump/reload to fix it!
63check view v3 for upgrade;
64Table	Op	Msg_type	Msg_text
65test.v3	check	error	Upgrade required. Please do "REPAIR VIEW `v3`" or dump/reload to fix it!
66Phase 1/7: Checking and upgrading mysql database
67Processing databases
68mysql
69mysql.column_stats                                 OK
70mysql.columns_priv                                 OK
71mysql.db                                           OK
72mysql.event                                        OK
73mysql.func                                         OK
74mysql.global_priv                                  OK
75mysql.gtid_slave_pos                               OK
76mysql.help_category                                OK
77mysql.help_keyword                                 OK
78mysql.help_relation                                OK
79mysql.help_topic                                   OK
80mysql.index_stats                                  OK
81mysql.innodb_index_stats
82Error    : Unknown storage engine 'InnoDB'
83error    : Corrupt
84mysql.innodb_table_stats
85Error    : Unknown storage engine 'InnoDB'
86error    : Corrupt
87mysql.plugin                                       OK
88mysql.proc                                         OK
89mysql.procs_priv                                   OK
90mysql.proxies_priv                                 OK
91mysql.roles_mapping                                OK
92mysql.servers                                      OK
93mysql.table_stats                                  OK
94mysql.tables_priv                                  OK
95mysql.time_zone                                    OK
96mysql.time_zone_leap_second                        OK
97mysql.time_zone_name                               OK
98mysql.time_zone_transition                         OK
99mysql.time_zone_transition_type                    OK
100mysql.transaction_registry
101Error    : Unknown storage engine 'InnoDB'
102error    : Corrupt
103
104Repairing tables
105mysql.innodb_index_stats
106Error    : Unknown storage engine 'InnoDB'
107error    : Corrupt
108mysql.innodb_table_stats
109Error    : Unknown storage engine 'InnoDB'
110error    : Corrupt
111mysql.transaction_registry
112Error    : Unknown storage engine 'InnoDB'
113error    : Corrupt
114Phase 2/7: Installing used storage engines... Skipped
115Phase 3/7: Fixing views
116mysql.user                                         OK
117test.v1                                            OK
118test.v1badcheck                                    OK
119test.v2                                            OK
120test.v3                                            OK
121Phase 4/7: Running 'mysql_fix_privilege_tables'
122Phase 5/7: Fixing table and database names
123Phase 6/7: Checking and upgrading tables
124Processing databases
125information_schema
126mtr
127mtr.global_suppressions                            OK
128mtr.test_suppressions                              OK
129performance_schema
130test
131test.kv                                            OK
132test.t1                                            OK
133Phase 7/7: Running 'FLUSH PRIVILEGES'
134OK
135show create view v1;
136View	Create View	character_set_client	collation_connection
137v1	CREATE ALGORITHM=MERGE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1`	utf8	utf8_general_ci
138show create view v2;
139View	Create View	character_set_client	collation_connection
140v2	CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `t1`.`a` AS `a` from `t1`	utf8	utf8_general_ci
141show create view v3;
142View	Create View	character_set_client	collation_connection
143v3	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`a` AS `a` from `t1`	utf8	utf8_general_ci
144set sql_log_bin=1;
145REPAIR VIEW v1,v2;
146Table	Op	Msg_type	Msg_text
147test.v1	repair	status	OK
148test.v2	repair	status	OK
149REPAIR VIEW v1badcheck;
150Table	Op	Msg_type	Msg_text
151test.v1badcheck	repair	status	OK
152REPAIR NO_WRITE_TO_BINLOG VIEW v3;
153Table	Op	Msg_type	Msg_text
154test.v3	repair	status	OK
155set sql_log_bin=0;
156include/show_binlog_events.inc
157Log_name	Pos	Event_type	Server_id	End_log_pos	Info
158master-bin.000001	#	Gtid	#	#	GTID #-#-#
159master-bin.000001	#	Query	#	#	use `test`; REPAIR VIEW v1,v2
160master-bin.000001	#	Gtid	#	#	GTID #-#-#
161master-bin.000001	#	Query	#	#	use `test`; REPAIR VIEW v1badcheck
162LOAD DATA INFILE 'MYSQLD_DATADIR/test/v1.frm' REPLACE INTO TABLE kv FIELDS TERMINATED BY '=';
163SELECT k,v from kv where k in ('md5','algorithm');
164k	v
165algorithm	1
166md5	5e6eaf216e7b016fcedfd4e1113517af
167SELECT k from kv where k ='mariadb-version';
168k
169mariadb-version
170truncate table kv;
171LOAD DATA INFILE 'MYSQLD_DATADIR/test/v2.frm' REPLACE INTO TABLE kv FIELDS TERMINATED BY '=';
172SELECT k,v from kv where k in ('md5','algorithm');
173k	v
174algorithm	2
175md5	5e6eaf216e7b016fcedfd4e1113517af
176SELECT k from kv where k ='mariadb-version';
177k
178mariadb-version
179truncate table kv;
180LOAD DATA INFILE 'MYSQLD_DATADIR/test/v3.frm' REPLACE INTO TABLE kv FIELDS TERMINATED BY '=';
181SELECT k,v from kv where k in ('md5','algorithm');
182k	v
183algorithm	0
184md5	5e6eaf216e7b016fcedfd4e1113517af
185SELECT k from kv where k ='mariadb-version';
186k
187mariadb-version
188truncate table kv;
189LOAD DATA INFILE 'MYSQLD_DATADIR/test/v1badcheck.frm' REPLACE INTO TABLE kv FIELDS TERMINATED BY '=';
190SELECT k,v from kv where k in ('md5','algorithm');
191k	v
192algorithm	1
193md5	5e6eaf216e7b016fcedfd4e1113517af
194SELECT k from kv where k ='mariadb-version';
195k
196mariadb-version
197truncate table kv;
198drop view if exists v1,v2,v3,v1badcheck;
199rename table mysql.event to mysql.ev_bk;
200flush tables;
201create algorithm=temptable view v4 as select a from t1;
202show create view v1;
203View	Create View	character_set_client	collation_connection
204v1	CREATE ALGORITHM=MERGE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1`	utf8	utf8_general_ci
205show create view v2;
206View	Create View	character_set_client	collation_connection
207v2	CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `t1`.`a` AS `a` from `t1`	utf8	utf8_general_ci
208show create view v3;
209View	Create View	character_set_client	collation_connection
210v3	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`a` AS `a` from `t1`	utf8	utf8_general_ci
211show create view v4;
212View	Create View	character_set_client	collation_connection
213v4	CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v4` AS select `t1`.`a` AS `a` from `t1`	latin1	latin1_swedish_ci
214MariaDB upgrade detected
215Phase 1/7: Checking and upgrading mysql database
216Processing databases
217mysql
218mysql.column_stats                                 OK
219mysql.columns_priv                                 OK
220mysql.db                                           OK
221mysql.ev_bk                                        OK
222mysql.event                                        OK
223mysql.func                                         OK
224mysql.global_priv                                  OK
225mysql.gtid_slave_pos                               OK
226mysql.help_category                                OK
227mysql.help_keyword                                 OK
228mysql.help_relation                                OK
229mysql.help_topic                                   OK
230mysql.index_stats                                  OK
231mysql.innodb_index_stats
232Error    : Unknown storage engine 'InnoDB'
233error    : Corrupt
234mysql.innodb_table_stats
235Error    : Unknown storage engine 'InnoDB'
236error    : Corrupt
237mysql.plugin                                       OK
238mysql.proc                                         OK
239mysql.procs_priv                                   OK
240mysql.proxies_priv                                 OK
241mysql.roles_mapping                                OK
242mysql.servers                                      OK
243mysql.table_stats                                  OK
244mysql.tables_priv                                  OK
245mysql.time_zone                                    OK
246mysql.time_zone_leap_second                        OK
247mysql.time_zone_name                               OK
248mysql.time_zone_transition                         OK
249mysql.time_zone_transition_type                    OK
250mysql.transaction_registry
251Error    : Unknown storage engine 'InnoDB'
252error    : Corrupt
253
254Repairing tables
255mysql.innodb_index_stats
256Error    : Unknown storage engine 'InnoDB'
257error    : Corrupt
258mysql.innodb_table_stats
259Error    : Unknown storage engine 'InnoDB'
260error    : Corrupt
261mysql.transaction_registry
262Error    : Unknown storage engine 'InnoDB'
263error    : Corrupt
264Phase 2/7: Installing used storage engines... Skipped
265Phase 3/7: Fixing views from mysql
266mysql.user                                         OK
267test.v1                                            OK
268test.v2                                            OK
269test.v3                                            OK
270test.v4                                            OK
271Phase 4/7: Running 'mysql_fix_privilege_tables'
272Phase 5/7: Fixing table and database names
273Phase 6/7: Checking and upgrading tables
274Processing databases
275information_schema
276mtr
277mtr.global_suppressions                            OK
278mtr.test_suppressions                              OK
279performance_schema
280test
281test.kv                                            OK
282test.t1                                            OK
283Phase 7/7: Running 'FLUSH PRIVILEGES'
284OK
285flush tables;
286show create view v1;
287View	Create View	character_set_client	collation_connection
288v1	CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1`	utf8	utf8_general_ci
289show create view v2;
290View	Create View	character_set_client	collation_connection
291v2	CREATE ALGORITHM=MERGE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `t1`.`a` AS `a` from `t1`	utf8	utf8_general_ci
292show create view v3;
293View	Create View	character_set_client	collation_connection
294v3	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`a` AS `a` from `t1`	utf8	utf8_general_ci
295show create view v4;
296View	Create View	character_set_client	collation_connection
297v4	CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v4` AS select `t1`.`a` AS `a` from `t1`	latin1	latin1_swedish_ci
298LOAD DATA INFILE 'MYSQLD_DATADIR/test/v1.frm' REPLACE INTO TABLE kv FIELDS TERMINATED BY '=';
299SELECT k,v from kv where k in ('md5','algorithm');
300k	v
301algorithm	2
302md5	5e6eaf216e7b016fcedfd4e1113517af
303SELECT k from kv where k ='mariadb-version';
304k
305mariadb-version
306truncate table kv;
307drop view if exists v1,v2,v3;
308drop table mysql.event;
309rename table mysql.ev_bk to mysql.event;
310test.kv                                            OK
311test.t1                                            OK
312test.v1                                            OK
313test.v2                                            OK
314test.v3                                            OK
315test.v4                                            OK
316include/show_binlog_events.inc
317Log_name	Pos	Event_type	Server_id	End_log_pos	Info
318master-bin.000001	#	Gtid	#	#	GTID #-#-#
319master-bin.000001	#	Query	#	#	use `test`; REPAIR VIEW v1,v2
320master-bin.000001	#	Gtid	#	#	GTID #-#-#
321master-bin.000001	#	Query	#	#	use `test`; REPAIR VIEW v1badcheck
322master-bin.000001	#	Gtid	#	#	GTID #-#-#
323master-bin.000001	#	Query	#	#	use `test`; REPAIR TABLE `kv`  USE_FRM
324master-bin.000001	#	Gtid	#	#	GTID #-#-#
325master-bin.000001	#	Query	#	#	use `test`; REPAIR TABLE `t1`  USE_FRM
326master-bin.000001	#	Gtid	#	#	GTID #-#-#
327master-bin.000001	#	Query	#	#	use `test`; REPAIR VIEW `v1`  FROM MYSQL
328master-bin.000001	#	Gtid	#	#	GTID #-#-#
329master-bin.000001	#	Query	#	#	use `test`; REPAIR VIEW `v2`  FROM MYSQL
330master-bin.000001	#	Gtid	#	#	GTID #-#-#
331master-bin.000001	#	Query	#	#	use `test`; REPAIR VIEW `v3`  FROM MYSQL
332master-bin.000001	#	Gtid	#	#	GTID #-#-#
333master-bin.000001	#	Query	#	#	use `test`; REPAIR VIEW `v4`  FROM MYSQL
334drop table if exists kv;
335drop view v1,v2,v3,v4;
336rename table mysql.event to mysql.ev_bk;
337flush tables;
338The --upgrade-system-tables option was used, user tables won't be touched.
339MariaDB upgrade detected
340Phase 1/7: Checking and upgrading mysql database
341Processing databases
342mysql
343mysql.column_stats                                 OK
344mysql.columns_priv                                 OK
345mysql.db                                           OK
346mysql.ev_bk                                        OK
347mysql.event                                        OK
348mysql.func                                         OK
349mysql.global_priv                                  OK
350mysql.gtid_slave_pos                               OK
351mysql.help_category                                OK
352mysql.help_keyword                                 OK
353mysql.help_relation                                OK
354mysql.help_topic                                   OK
355mysql.index_stats                                  OK
356mysql.innodb_index_stats
357Error    : Unknown storage engine 'InnoDB'
358error    : Corrupt
359mysql.innodb_table_stats
360Error    : Unknown storage engine 'InnoDB'
361error    : Corrupt
362mysql.plugin                                       OK
363mysql.proc                                         OK
364mysql.procs_priv                                   OK
365mysql.proxies_priv                                 OK
366mysql.roles_mapping                                OK
367mysql.servers                                      OK
368mysql.table_stats                                  OK
369mysql.tables_priv                                  OK
370mysql.time_zone                                    OK
371mysql.time_zone_leap_second                        OK
372mysql.time_zone_name                               OK
373mysql.time_zone_transition                         OK
374mysql.time_zone_transition_type                    OK
375mysql.transaction_registry
376Error    : Unknown storage engine 'InnoDB'
377error    : Corrupt
378
379Repairing tables
380mysql.innodb_index_stats
381Error    : Unknown storage engine 'InnoDB'
382error    : Corrupt
383mysql.innodb_table_stats
384Error    : Unknown storage engine 'InnoDB'
385error    : Corrupt
386mysql.transaction_registry
387Error    : Unknown storage engine 'InnoDB'
388error    : Corrupt
389Phase 2/7: Installing used storage engines... Skipped
390Phase 3/7: Fixing views from mysql
391mysql.user                                         OK
392test.v1                                            OK
393test.v2                                            OK
394test.v3                                            OK
395Phase 4/7: Running 'mysql_fix_privilege_tables'
396Phase 5/7: Fixing table and database names ... Skipped
397Phase 6/7: Checking and upgrading tables... Skipped
398Phase 7/7: Running 'FLUSH PRIVILEGES'
399OK
400drop table mysql.event;
401rename table mysql.ev_bk to mysql.event;
402drop view v1,v2,v3;
403drop table t1;
404