mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			312 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			312 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
DROP TABLE IF EXISTS t1, `t``1`, `t 1`;
 | 
						|
drop view if exists v1;
 | 
						|
drop database if exists client_test_db;
 | 
						|
mtr.global_suppressions                            OK
 | 
						|
mtr.test_suppressions                              OK
 | 
						|
mysql.columns_priv                                 OK
 | 
						|
mysql.db                                           OK
 | 
						|
mysql.event                                        OK
 | 
						|
mysql.func                                         OK
 | 
						|
mysql.help_category                                OK
 | 
						|
mysql.help_keyword                                 OK
 | 
						|
mysql.help_relation                                OK
 | 
						|
mysql.help_topic                                   OK
 | 
						|
mysql.host                                         OK
 | 
						|
mysql.ndb_binlog_index                             OK
 | 
						|
mysql.plugin                                       OK
 | 
						|
mysql.proc                                         OK
 | 
						|
mysql.procs_priv                                   OK
 | 
						|
mysql.proxies_priv                                 OK
 | 
						|
mysql.servers                                      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
 | 
						|
mtr.global_suppressions                            Table is already up to date
 | 
						|
mtr.test_suppressions                              Table is already up to date
 | 
						|
mysql.columns_priv                                 OK
 | 
						|
mysql.db                                           OK
 | 
						|
mysql.event                                        OK
 | 
						|
mysql.func                                         OK
 | 
						|
mysql.help_category                                OK
 | 
						|
mysql.help_keyword                                 OK
 | 
						|
mysql.help_relation                                OK
 | 
						|
mysql.help_topic                                   OK
 | 
						|
mysql.host                                         OK
 | 
						|
mysql.ndb_binlog_index                             OK
 | 
						|
mysql.plugin                                       OK
 | 
						|
mysql.proc                                         OK
 | 
						|
mysql.procs_priv                                   OK
 | 
						|
mysql.proxies_priv                                 OK
 | 
						|
mysql.servers                                      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
 | 
						|
mysql.columns_priv                                 OK
 | 
						|
mysql.db                                           OK
 | 
						|
mysql.event                                        OK
 | 
						|
mysql.func                                         OK
 | 
						|
mysql.help_category                                OK
 | 
						|
mysql.help_keyword                                 OK
 | 
						|
mysql.help_relation                                OK
 | 
						|
mysql.help_topic                                   OK
 | 
						|
mysql.host                                         OK
 | 
						|
mysql.ndb_binlog_index                             OK
 | 
						|
mysql.plugin                                       OK
 | 
						|
mysql.proc                                         OK
 | 
						|
mysql.procs_priv                                   OK
 | 
						|
mysql.proxies_priv                                 OK
 | 
						|
mysql.servers                                      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
 | 
						|
mysql.columns_priv                                 Table is already up to date
 | 
						|
mysql.db                                           Table is already up to date
 | 
						|
mysql.event                                        Table is already up to date
 | 
						|
mysql.func                                         Table is already up to date
 | 
						|
mysql.help_category                                Table is already up to date
 | 
						|
mysql.help_keyword                                 Table is already up to date
 | 
						|
mysql.help_relation                                Table is already up to date
 | 
						|
mysql.help_topic                                   Table is already up to date
 | 
						|
mysql.host                                         Table is already up to date
 | 
						|
mysql.ndb_binlog_index                             Table is already up to date
 | 
						|
mysql.plugin                                       Table is already up to date
 | 
						|
mysql.proc                                         Table is already up to date
 | 
						|
mysql.procs_priv                                   Table is already up to date
 | 
						|
mysql.proxies_priv                                 Table is already up to date
 | 
						|
mysql.servers                                      Table is already up to date
 | 
						|
mysql.tables_priv                                  Table is already up to date
 | 
						|
mysql.time_zone                                    Table is already up to date
 | 
						|
mysql.time_zone_leap_second                        Table is already up to date
 | 
						|
mysql.time_zone_name                               Table is already up to date
 | 
						|
mysql.time_zone_transition                         Table is already up to date
 | 
						|
mysql.time_zone_transition_type                    Table is already up to date
 | 
						|
mysql.user                                         Table is already up to date
 | 
						|
create table t1 (a int) engine=myisam;
 | 
						|
create view v1 as select * from t1;
 | 
						|
test.t1                                            OK
 | 
						|
test.t1                                            Table is already up to date
 | 
						|
test.t1                                            OK
 | 
						|
test.t1                                            Table is already up to date
 | 
						|
drop view v1;
 | 
						|
drop table t1;
 | 
						|
create table `t``1`(a int) engine=myisam;
 | 
						|
create table `t 1`(a int) engine=myisam;
 | 
						|
test.t 1                                           OK
 | 
						|
test.t`1                                           OK
 | 
						|
drop table `t``1`, `t 1`;
 | 
						|
create database d_bug25347;
 | 
						|
use d_bug25347;
 | 
						|
create table t_bug25347 (a int) engine=myisam;
 | 
						|
create view v_bug25347 as select * from t_bug25347;
 | 
						|
insert into t_bug25347 values (1),(2),(3);
 | 
						|
flush tables;
 | 
						|
removing and creating
 | 
						|
d_bug25347.t_bug25347
 | 
						|
Error    : Incorrect file format 't_bug25347'
 | 
						|
error    : Corrupt
 | 
						|
insert into t_bug25347 values (4),(5),(6);
 | 
						|
ERROR HY000: Incorrect file format 't_bug25347'
 | 
						|
d_bug25347.t_bug25347
 | 
						|
warning  : Number of rows changed from 0 to 3
 | 
						|
status   : OK
 | 
						|
insert into t_bug25347 values (7),(8),(9);
 | 
						|
select * from t_bug25347;
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
7
 | 
						|
8
 | 
						|
9
 | 
						|
select * from v_bug25347;
 | 
						|
a
 | 
						|
1
 | 
						|
2
 | 
						|
3
 | 
						|
7
 | 
						|
8
 | 
						|
9
 | 
						|
drop view v_bug25347;
 | 
						|
drop table t_bug25347;
 | 
						|
drop database d_bug25347;
 | 
						|
use test;
 | 
						|
create view v1 as select * from information_schema.routines;
 | 
						|
check table v1, information_schema.routines;
 | 
						|
Table	Op	Msg_type	Msg_text
 | 
						|
test.v1	check	status	OK
 | 
						|
information_schema.routines	check	note	The storage engine for the table doesn't support check
 | 
						|
drop view v1;
 | 
						|
CREATE TABLE t1(a INT) engine=myisam;
 | 
						|
CREATE TABLE t2(a INT) engine=myisam;
 | 
						|
test.t1
 | 
						|
Error    : Incorrect information in file: './test/t1.frm'
 | 
						|
error    : Corrupt
 | 
						|
test.t2                                            OK
 | 
						|
DROP TABLE t1, t2;
 | 
						|
End of 5.0 tests
 | 
						|
create table t1(a int) engine=myisam;
 | 
						|
create view v1 as select * from t1;
 | 
						|
show tables;
 | 
						|
Tables_in_test
 | 
						|
t1
 | 
						|
v1
 | 
						|
show tables;
 | 
						|
Tables_in_test
 | 
						|
t1
 | 
						|
#mysql50#v-1
 | 
						|
v1
 | 
						|
test.t1                                            OK
 | 
						|
show tables;
 | 
						|
Tables_in_test
 | 
						|
t1
 | 
						|
v1
 | 
						|
v-1
 | 
						|
drop view v1, `v-1`;
 | 
						|
drop table t1;
 | 
						|
SET NAMES utf8;
 | 
						|
CREATE TABLE `#mysql50#@` (a INT) engine=myisam;
 | 
						|
SHOW TABLES;
 | 
						|
Tables_in_test
 | 
						|
#mysql50#@
 | 
						|
SET NAMES DEFAULT;
 | 
						|
mysqlcheck --fix-table-names --databases test
 | 
						|
SET NAMES utf8;
 | 
						|
SHOW TABLES;
 | 
						|
Tables_in_test
 | 
						|
@
 | 
						|
DROP TABLE `@`;
 | 
						|
CREATE TABLE `я` (a INT) engine=myisam;
 | 
						|
SET NAMES DEFAULT;
 | 
						|
call mtr.add_suppression("@003f.frm' \\(errno: 22\\)");
 | 
						|
mysqlcheck --default-character-set="latin1" --databases test
 | 
						|
call mtr.add_suppression("Can't find file: '..test.@003f.frm'");
 | 
						|
test.?
 | 
						|
Error    : Table doesn't exist
 | 
						|
status   : Operation failed
 | 
						|
mysqlcheck --default-character-set="utf8" --databases test
 | 
						|
test.я                                            OK
 | 
						|
SET NAMES utf8;
 | 
						|
DROP TABLE `я`;
 | 
						|
SET NAMES DEFAULT;
 | 
						|
CREATE DATABASE `#mysql50#a@b`;
 | 
						|
USE `#mysql50#a@b`;
 | 
						|
CREATE TABLE `#mysql50#c@d` (a INT) engine=myisam;
 | 
						|
CREATE TABLE t1 (a INT) engine=myisam;
 | 
						|
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS
 | 
						|
WHERE TRIGGER_SCHEMA="#mysql50#a@b" ORDER BY trigger_name;
 | 
						|
TRIGGER_CATALOG	TRIGGER_SCHEMA	TRIGGER_NAME	EVENT_MANIPULATION	EVENT_OBJECT_CATALOG	EVENT_OBJECT_SCHEMA	EVENT_OBJECT_TABLE	ACTION_ORDER	ACTION_CONDITION	ACTION_STATEMENT	ACTION_ORIENTATION	ACTION_TIMING	ACTION_REFERENCE_OLD_TABLE	ACTION_REFERENCE_NEW_TABLE	ACTION_REFERENCE_OLD_ROW	ACTION_REFERENCE_NEW_ROW	CREATED	SQL_MODE	DEFINER	CHARACTER_SET_CLIENT	COLLATION_CONNECTION	DATABASE_COLLATION
 | 
						|
def	#mysql50#a@b	tr1	INSERT	def	#mysql50#a@b	#mysql50#c@d	0	NULL	SET NEW.a = 10 * NEW.a	ROW	BEFORE	NULL	NULL	OLD	NEW	NULL		root@localhost	latin1	latin1_swedish_ci	latin1_swedish_ci
 | 
						|
def	#mysql50#a@b	tr2	INSERT	def	#mysql50#a@b	t1	0	NULL	SET NEW.a = 100 * NEW.a	ROW	BEFORE	NULL	NULL	OLD	NEW	NULL		root@localhost	latin1	latin1_swedish_ci	latin1_swedish_ci
 | 
						|
mysqlcheck --fix-db-names --fix-table-names --all-databases
 | 
						|
USE `a@b`;
 | 
						|
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS
 | 
						|
WHERE TRIGGER_SCHEMA="a@b" ORDER BY trigger_name;
 | 
						|
TRIGGER_CATALOG	TRIGGER_SCHEMA	TRIGGER_NAME	EVENT_MANIPULATION	EVENT_OBJECT_CATALOG	EVENT_OBJECT_SCHEMA	EVENT_OBJECT_TABLE	ACTION_ORDER	ACTION_CONDITION	ACTION_STATEMENT	ACTION_ORIENTATION	ACTION_TIMING	ACTION_REFERENCE_OLD_TABLE	ACTION_REFERENCE_NEW_TABLE	ACTION_REFERENCE_OLD_ROW	ACTION_REFERENCE_NEW_ROW	CREATED	SQL_MODE	DEFINER	CHARACTER_SET_CLIENT	COLLATION_CONNECTION	DATABASE_COLLATION
 | 
						|
def	a@b	tr1	INSERT	def	a@b	c@d	0	NULL	SET NEW.a = 10 * NEW.a	ROW	BEFORE	NULL	NULL	OLD	NEW	NULL		root@localhost	utf8	utf8_general_ci	latin1_swedish_ci
 | 
						|
def	a@b	tr2	INSERT	def	a@b	t1	0	NULL	SET NEW.a = 100 * NEW.a	ROW	BEFORE	NULL	NULL	OLD	NEW	NULL		root@localhost	utf8	utf8_general_ci	latin1_swedish_ci
 | 
						|
INSERT INTO `c@d` VALUES (2), (1);
 | 
						|
SELECT * FROM `c@d`;
 | 
						|
a
 | 
						|
20
 | 
						|
10
 | 
						|
INSERT INTO t1 VALUES (3), (5);
 | 
						|
SELECT * FROM t1;
 | 
						|
a
 | 
						|
300
 | 
						|
500
 | 
						|
DROP DATABASE `a@b`;
 | 
						|
USE test;
 | 
						|
#
 | 
						|
# Bug #31821: --all-in-1 and --fix-table-names don't work together
 | 
						|
#
 | 
						|
drop table if exists `#mysql50#t1-1`;
 | 
						|
create table `#mysql50#t1-1` (a int) engine=myisam;
 | 
						|
show tables like 't1-1';
 | 
						|
Tables_in_test (t1-1)
 | 
						|
t1-1
 | 
						|
drop table `t1-1`;
 | 
						|
create table `#mysql50#t1-1` (a int) engine=myisam;
 | 
						|
show tables like 't1-1';
 | 
						|
Tables_in_test (t1-1)
 | 
						|
t1-1
 | 
						|
drop table `t1-1`;
 | 
						|
End of 5.1 tests
 | 
						|
#
 | 
						|
# Bug #35269: mysqlcheck behaves different depending on order of parameters
 | 
						|
#
 | 
						|
#
 | 
						|
# Bug#11755431 47205: MAP 'REPAIR TABLE' TO RECREATE +ANALYZE FOR
 | 
						|
#              ENGINES NOT SUPPORTING NATIVE
 | 
						|
#
 | 
						|
DROP TABLE IF EXISTS bug47205;
 | 
						|
#
 | 
						|
# Test 1: Check that ALTER TABLE ... rebuilds the table
 | 
						|
CREATE TABLE bug47205(a VARCHAR(20) PRIMARY KEY)
 | 
						|
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci engine=innodb;
 | 
						|
INSERT INTO bug47205 VALUES ("foobar");
 | 
						|
FLUSH TABLE bug47205;
 | 
						|
# Replace the FRM with a 5.0 FRM that will require upgrade
 | 
						|
# Should indicate that ALTER TABLE ... FORCE is needed
 | 
						|
CHECK TABLE bug47205 FOR UPGRADE;
 | 
						|
Table	Op	Msg_type	Msg_text
 | 
						|
test.bug47205	check	error	Table rebuild required. Please do "ALTER TABLE `bug47205` FORCE" or dump/reload to fix it!
 | 
						|
# ALTER TABLE ... FORCE should rebuild the table
 | 
						|
# and therefore output "affected rows: 1"
 | 
						|
ALTER TABLE bug47205 FORCE;
 | 
						|
affected rows: 1
 | 
						|
info: Records: 1  Duplicates: 0  Warnings: 0
 | 
						|
# Table should now be ok
 | 
						|
CHECK TABLE bug47205 FOR UPGRADE;
 | 
						|
Table	Op	Msg_type	Msg_text
 | 
						|
test.bug47205	check	status	OK
 | 
						|
DROP TABLE bug47205;
 | 
						|
#
 | 
						|
# Test 2: InnoDB - REPAIR not supported
 | 
						|
CREATE TABLE bug47205(a VARCHAR(20) PRIMARY KEY)
 | 
						|
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci engine=innodb;
 | 
						|
FLUSH TABLE bug47205;
 | 
						|
# Replace the FRM with a 5.0 FRM that will require upgrade
 | 
						|
# Should indicate that ALTER TABLE .. FORCE is needed
 | 
						|
CHECK TABLE bug47205 FOR UPGRADE;
 | 
						|
Table	Op	Msg_type	Msg_text
 | 
						|
test.bug47205	check	error	Table rebuild required. Please do "ALTER TABLE `bug47205` FORCE" or dump/reload to fix it!
 | 
						|
# Running mysqlcheck to check and upgrade
 | 
						|
test.bug47205
 | 
						|
error    : Table rebuild required. Please do "ALTER TABLE `bug47205` FORCE" or dump/reload to fix it!
 | 
						|
 | 
						|
Repairing tables
 | 
						|
# Table should now be ok
 | 
						|
CHECK TABLE bug47205 FOR UPGRADE;
 | 
						|
Table	Op	Msg_type	Msg_text
 | 
						|
test.bug47205	check	status	OK
 | 
						|
DROP TABLE bug47205;
 | 
						|
#
 | 
						|
# Test 3: MyISAM - REPAIR supported
 | 
						|
# Use an old FRM that will require upgrade
 | 
						|
# Should indicate that REPAIR TABLE is needed
 | 
						|
CHECK TABLE bug47205 FOR UPGRADE;
 | 
						|
Table	Op	Msg_type	Msg_text
 | 
						|
test.bug47205	check	error	Table upgrade required. Please do "REPAIR TABLE `bug47205`" or dump/reload to fix it!
 | 
						|
# Running mysqlcheck to check and upgrade
 | 
						|
test.bug47205                                      Needs upgrade
 | 
						|
 | 
						|
Repairing tables
 | 
						|
test.bug47205                                      OK
 | 
						|
# Table should now be ok
 | 
						|
CHECK TABLE bug47205 FOR UPGRADE;
 | 
						|
Table	Op	Msg_type	Msg_text
 | 
						|
test.bug47205	check	status	OK
 | 
						|
DROP TABLE bug47205;
 |