mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
3d06f0f72c
fix the patch. add tests
385 lines
17 KiB
Text
385 lines
17 KiB
Text
set sql_log_bin=0;
|
|
drop table if exists t1,v1,v2,v3,v4,v1badcheck;
|
|
drop view if exists t1,v1,v2,v3,v4,v1badcheck;
|
|
create table t1(a int);
|
|
create table kv(k varchar(30) NOT NULL PRIMARY KEY,v varchar(50));
|
|
create view v1 as select 1;
|
|
repair table t1 quick;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 repair status OK
|
|
repair table t1 extended;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 repair status OK
|
|
repair table t1 use_frm;
|
|
Table Op Msg_type Msg_text
|
|
test.t1 repair status OK
|
|
repair table t1 from mysql;
|
|
ERROR 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
|
|
repair view v1 quick;
|
|
ERROR 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
|
|
repair view v1 extended;
|
|
ERROR 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
|
|
repair view v1 use_frm;
|
|
ERROR 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
|
|
repair view v1 from mysql;
|
|
Table Op Msg_type Msg_text
|
|
test.v1 repair status OK
|
|
check view v1 quick;
|
|
ERROR 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
|
|
check view v1 fast;
|
|
ERROR 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
|
|
check view v1 medium;
|
|
ERROR 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
|
|
check view v1 extended;
|
|
ERROR 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
|
|
check view v1 changed;
|
|
ERROR 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
|
|
check view v1 for upgrade;
|
|
Table Op Msg_type Msg_text
|
|
test.v1 check status OK
|
|
drop view v1;
|
|
flush tables;
|
|
check view v1;
|
|
Table Op Msg_type Msg_text
|
|
test.v1 check status OK
|
|
check view v1badcheck;
|
|
Table Op Msg_type Msg_text
|
|
test.v1badcheck check note View text checksum failed
|
|
check view v2;
|
|
Table Op Msg_type Msg_text
|
|
test.v2 check status OK
|
|
check view v3;
|
|
Table Op Msg_type Msg_text
|
|
test.v3 check status OK
|
|
check view v1 for upgrade;
|
|
Table Op Msg_type Msg_text
|
|
test.v1 check error Upgrade required. Please do "REPAIR VIEW `v1`" or dump/reload to fix it!
|
|
check view v1badcheck for upgrade;
|
|
Table Op Msg_type Msg_text
|
|
test.v1badcheck check note View text checksum failed
|
|
check view v2 for upgrade;
|
|
Table Op Msg_type Msg_text
|
|
test.v2 check error Upgrade required. Please do "REPAIR VIEW `v2`" or dump/reload to fix it!
|
|
check view v3 for upgrade;
|
|
Table Op Msg_type Msg_text
|
|
test.v3 check error Upgrade required. Please do "REPAIR VIEW `v3`" or dump/reload to fix it!
|
|
Phase 1/7: Checking and upgrading mysql database
|
|
Processing databases
|
|
mysql
|
|
mysql.column_stats OK
|
|
mysql.columns_priv OK
|
|
mysql.db OK
|
|
mysql.event OK
|
|
mysql.func OK
|
|
mysql.gtid_slave_pos OK
|
|
mysql.help_category OK
|
|
mysql.help_keyword OK
|
|
mysql.help_relation OK
|
|
mysql.help_topic OK
|
|
mysql.host OK
|
|
mysql.index_stats OK
|
|
mysql.innodb_index_stats
|
|
Error : Unknown storage engine 'InnoDB'
|
|
error : Corrupt
|
|
mysql.innodb_table_stats
|
|
Error : Unknown storage engine 'InnoDB'
|
|
error : Corrupt
|
|
mysql.plugin OK
|
|
mysql.proc OK
|
|
mysql.procs_priv OK
|
|
mysql.proxies_priv OK
|
|
mysql.roles_mapping OK
|
|
mysql.servers OK
|
|
mysql.table_stats OK
|
|
mysql.tables_priv OK
|
|
mysql.time_zone OK
|
|
mysql.time_zone_leap_second OK
|
|
mysql.time_zone_name OK
|
|
mysql.time_zone_transition OK
|
|
mysql.time_zone_transition_type OK
|
|
mysql.user OK
|
|
|
|
Repairing tables
|
|
mysql.innodb_index_stats
|
|
Error : Unknown storage engine 'InnoDB'
|
|
error : Corrupt
|
|
mysql.innodb_table_stats
|
|
Error : Unknown storage engine 'InnoDB'
|
|
error : Corrupt
|
|
Phase 2/7: Installing used storage engines... Skipped
|
|
Phase 3/7: Fixing views
|
|
test.v1 OK
|
|
test.v1badcheck OK
|
|
test.v2 OK
|
|
test.v3 OK
|
|
Phase 4/7: Running 'mysql_fix_privilege_tables'
|
|
Phase 5/7: Fixing table and database names
|
|
Phase 6/7: Checking and upgrading tables
|
|
Processing databases
|
|
information_schema
|
|
mtr
|
|
mtr.global_suppressions OK
|
|
mtr.test_suppressions OK
|
|
performance_schema
|
|
test
|
|
test.kv OK
|
|
test.t1 OK
|
|
Phase 7/7: Running 'FLUSH PRIVILEGES'
|
|
OK
|
|
show create view v1;
|
|
View Create View character_set_client collation_connection
|
|
v1 CREATE ALGORITHM=MERGE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` utf8 utf8_general_ci
|
|
show create view v2;
|
|
View Create View character_set_client collation_connection
|
|
v2 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `t1`.`a` AS `a` from `t1` utf8 utf8_general_ci
|
|
show create view v3;
|
|
View Create View character_set_client collation_connection
|
|
v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`a` AS `a` from `t1` utf8 utf8_general_ci
|
|
set sql_log_bin=1;
|
|
REPAIR VIEW v1,v2;
|
|
Table Op Msg_type Msg_text
|
|
test.v1 repair status OK
|
|
test.v2 repair status OK
|
|
REPAIR VIEW v1badcheck;
|
|
Table Op Msg_type Msg_text
|
|
test.v1badcheck repair status OK
|
|
REPAIR NO_WRITE_TO_BINLOG VIEW v3;
|
|
Table Op Msg_type Msg_text
|
|
test.v3 repair status OK
|
|
set sql_log_bin=0;
|
|
include/show_binlog_events.inc
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000001 # Gtid # # GTID #-#-#
|
|
master-bin.000001 # Query # # use `test`; REPAIR VIEW v1,v2
|
|
master-bin.000001 # Gtid # # GTID #-#-#
|
|
master-bin.000001 # Query # # use `test`; REPAIR VIEW v1badcheck
|
|
LOAD DATA INFILE 'MYSQLD_DATADIR/test/v1.frm' REPLACE INTO TABLE kv FIELDS TERMINATED BY '=';
|
|
SELECT k,v from kv where k in ('md5','algorithm');
|
|
k v
|
|
algorithm 1
|
|
md5 5e6eaf216e7b016fcedfd4e1113517af
|
|
SELECT k from kv where k ='mariadb-version';
|
|
k
|
|
mariadb-version
|
|
truncate table kv;
|
|
LOAD DATA INFILE 'MYSQLD_DATADIR/test/v2.frm' REPLACE INTO TABLE kv FIELDS TERMINATED BY '=';
|
|
SELECT k,v from kv where k in ('md5','algorithm');
|
|
k v
|
|
algorithm 2
|
|
md5 5e6eaf216e7b016fcedfd4e1113517af
|
|
SELECT k from kv where k ='mariadb-version';
|
|
k
|
|
mariadb-version
|
|
truncate table kv;
|
|
LOAD DATA INFILE 'MYSQLD_DATADIR/test/v3.frm' REPLACE INTO TABLE kv FIELDS TERMINATED BY '=';
|
|
SELECT k,v from kv where k in ('md5','algorithm');
|
|
k v
|
|
algorithm 0
|
|
md5 5e6eaf216e7b016fcedfd4e1113517af
|
|
SELECT k from kv where k ='mariadb-version';
|
|
k
|
|
mariadb-version
|
|
truncate table kv;
|
|
LOAD DATA INFILE 'MYSQLD_DATADIR/test/v1badcheck.frm' REPLACE INTO TABLE kv FIELDS TERMINATED BY '=';
|
|
SELECT k,v from kv where k in ('md5','algorithm');
|
|
k v
|
|
algorithm 1
|
|
md5 5e6eaf216e7b016fcedfd4e1113517af
|
|
SELECT k from kv where k ='mariadb-version';
|
|
k
|
|
mariadb-version
|
|
truncate table kv;
|
|
drop view if exists v1,v2,v3,v1badcheck;
|
|
rename table mysql.event to mysql.ev_bk;
|
|
flush tables;
|
|
create algorithm=temptable view v4 as select a from t1;
|
|
show create view v1;
|
|
View Create View character_set_client collation_connection
|
|
v1 CREATE ALGORITHM=MERGE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` utf8 utf8_general_ci
|
|
show create view v2;
|
|
View Create View character_set_client collation_connection
|
|
v2 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `t1`.`a` AS `a` from `t1` utf8 utf8_general_ci
|
|
show create view v3;
|
|
View Create View character_set_client collation_connection
|
|
v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`a` AS `a` from `t1` utf8 utf8_general_ci
|
|
show create view v4;
|
|
View Create View character_set_client collation_connection
|
|
v4 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v4` AS select `t1`.`a` AS `a` from `t1` latin1 latin1_swedish_ci
|
|
MySQL upgrade detected
|
|
Phase 1/7: Checking and upgrading mysql database
|
|
Processing databases
|
|
mysql
|
|
mysql.column_stats OK
|
|
mysql.columns_priv OK
|
|
mysql.db OK
|
|
mysql.ev_bk OK
|
|
mysql.event OK
|
|
mysql.func OK
|
|
mysql.gtid_slave_pos OK
|
|
mysql.help_category OK
|
|
mysql.help_keyword OK
|
|
mysql.help_relation OK
|
|
mysql.help_topic OK
|
|
mysql.host OK
|
|
mysql.index_stats OK
|
|
mysql.innodb_index_stats
|
|
Error : Unknown storage engine 'InnoDB'
|
|
error : Corrupt
|
|
mysql.innodb_table_stats
|
|
Error : Unknown storage engine 'InnoDB'
|
|
error : Corrupt
|
|
mysql.plugin OK
|
|
mysql.proc OK
|
|
mysql.procs_priv OK
|
|
mysql.proxies_priv OK
|
|
mysql.roles_mapping OK
|
|
mysql.servers OK
|
|
mysql.table_stats OK
|
|
mysql.tables_priv OK
|
|
mysql.time_zone OK
|
|
mysql.time_zone_leap_second OK
|
|
mysql.time_zone_name OK
|
|
mysql.time_zone_transition OK
|
|
mysql.time_zone_transition_type OK
|
|
mysql.user OK
|
|
|
|
Repairing tables
|
|
mysql.innodb_index_stats
|
|
Error : Unknown storage engine 'InnoDB'
|
|
error : Corrupt
|
|
mysql.innodb_table_stats
|
|
Error : Unknown storage engine 'InnoDB'
|
|
error : Corrupt
|
|
Phase 2/7: Installing used storage engines... Skipped
|
|
Phase 3/7: Fixing views from mysql
|
|
test.v1 OK
|
|
test.v2 OK
|
|
test.v3 OK
|
|
test.v4 OK
|
|
Phase 4/7: Running 'mysql_fix_privilege_tables'
|
|
Phase 5/7: Fixing table and database names
|
|
Phase 6/7: Checking and upgrading tables
|
|
Processing databases
|
|
information_schema
|
|
mtr
|
|
mtr.global_suppressions OK
|
|
mtr.test_suppressions OK
|
|
performance_schema
|
|
test
|
|
test.kv OK
|
|
test.t1 OK
|
|
Phase 7/7: Running 'FLUSH PRIVILEGES'
|
|
OK
|
|
flush tables;
|
|
show create view v1;
|
|
View Create View character_set_client collation_connection
|
|
v1 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1` utf8 utf8_general_ci
|
|
show create view v2;
|
|
View Create View character_set_client collation_connection
|
|
v2 CREATE ALGORITHM=MERGE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `t1`.`a` AS `a` from `t1` utf8 utf8_general_ci
|
|
show create view v3;
|
|
View Create View character_set_client collation_connection
|
|
v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`a` AS `a` from `t1` utf8 utf8_general_ci
|
|
show create view v4;
|
|
View Create View character_set_client collation_connection
|
|
v4 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v4` AS select `t1`.`a` AS `a` from `t1` latin1 latin1_swedish_ci
|
|
LOAD DATA INFILE 'MYSQLD_DATADIR/test/v1.frm' REPLACE INTO TABLE kv FIELDS TERMINATED BY '=';
|
|
SELECT k,v from kv where k in ('md5','algorithm');
|
|
k v
|
|
algorithm 2
|
|
md5 5e6eaf216e7b016fcedfd4e1113517af
|
|
SELECT k from kv where k ='mariadb-version';
|
|
k
|
|
mariadb-version
|
|
truncate table kv;
|
|
drop view if exists v1,v2,v3;
|
|
drop table mysql.event;
|
|
rename table mysql.ev_bk to mysql.event;
|
|
test.kv OK
|
|
test.t1 OK
|
|
test.v1 OK
|
|
test.v2 OK
|
|
test.v3 OK
|
|
test.v4 OK
|
|
include/show_binlog_events.inc
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
master-bin.000001 # Gtid # # GTID #-#-#
|
|
master-bin.000001 # Query # # use `test`; REPAIR VIEW v1,v2
|
|
master-bin.000001 # Gtid # # GTID #-#-#
|
|
master-bin.000001 # Query # # use `test`; REPAIR VIEW v1badcheck
|
|
master-bin.000001 # Gtid # # GTID #-#-#
|
|
master-bin.000001 # Query # # use `test`; REPAIR TABLE `kv` USE_FRM
|
|
master-bin.000001 # Gtid # # GTID #-#-#
|
|
master-bin.000001 # Query # # use `test`; REPAIR TABLE `t1` USE_FRM
|
|
master-bin.000001 # Gtid # # GTID #-#-#
|
|
master-bin.000001 # Query # # use `test`; REPAIR VIEW `v1` FROM MYSQL
|
|
master-bin.000001 # Gtid # # GTID #-#-#
|
|
master-bin.000001 # Query # # use `test`; REPAIR VIEW `v2` FROM MYSQL
|
|
master-bin.000001 # Gtid # # GTID #-#-#
|
|
master-bin.000001 # Query # # use `test`; REPAIR VIEW `v3` FROM MYSQL
|
|
master-bin.000001 # Gtid # # GTID #-#-#
|
|
master-bin.000001 # Query # # use `test`; REPAIR VIEW `v4` FROM MYSQL
|
|
drop table if exists kv;
|
|
drop view v1,v2,v3,v4;
|
|
rename table mysql.event to mysql.ev_bk;
|
|
flush tables;
|
|
The --upgrade-system-tables option was used, user tables won't be touched.
|
|
MySQL upgrade detected
|
|
Phase 1/7: Checking and upgrading mysql database
|
|
Processing databases
|
|
mysql
|
|
mysql.column_stats OK
|
|
mysql.columns_priv OK
|
|
mysql.db OK
|
|
mysql.ev_bk OK
|
|
mysql.event OK
|
|
mysql.func OK
|
|
mysql.gtid_slave_pos OK
|
|
mysql.help_category OK
|
|
mysql.help_keyword OK
|
|
mysql.help_relation OK
|
|
mysql.help_topic OK
|
|
mysql.host OK
|
|
mysql.index_stats OK
|
|
mysql.innodb_index_stats
|
|
Error : Unknown storage engine 'InnoDB'
|
|
error : Corrupt
|
|
mysql.innodb_table_stats
|
|
Error : Unknown storage engine 'InnoDB'
|
|
error : Corrupt
|
|
mysql.plugin OK
|
|
mysql.proc OK
|
|
mysql.procs_priv OK
|
|
mysql.proxies_priv OK
|
|
mysql.roles_mapping OK
|
|
mysql.servers OK
|
|
mysql.table_stats OK
|
|
mysql.tables_priv OK
|
|
mysql.time_zone OK
|
|
mysql.time_zone_leap_second OK
|
|
mysql.time_zone_name OK
|
|
mysql.time_zone_transition OK
|
|
mysql.time_zone_transition_type OK
|
|
mysql.user OK
|
|
|
|
Repairing tables
|
|
mysql.innodb_index_stats
|
|
Error : Unknown storage engine 'InnoDB'
|
|
error : Corrupt
|
|
mysql.innodb_table_stats
|
|
Error : Unknown storage engine 'InnoDB'
|
|
error : Corrupt
|
|
Phase 2/7: Installing used storage engines... Skipped
|
|
Phase 3/7: Fixing views from mysql
|
|
test.v1 OK
|
|
test.v2 OK
|
|
test.v3 OK
|
|
Phase 4/7: Running 'mysql_fix_privilege_tables'
|
|
Phase 5/7: Fixing table and database names ... Skipped
|
|
Phase 6/7: Checking and upgrading tables... Skipped
|
|
Phase 7/7: Running 'FLUSH PRIVILEGES'
|
|
OK
|
|
drop table mysql.event;
|
|
rename table mysql.ev_bk to mysql.event;
|
|
drop view v1,v2,v3;
|
|
drop table t1;
|