120 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			120 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | call mtr.add_suppression("Column count of mysql.proc is wrong. Expected 20, found 19. The table is probably corrupted"); | ||
|  | call mtr.add_suppression("Stored routine .test...bug14233_[123].: invalid value in column mysql.proc"); | ||
|  | use test; | ||
|  | drop procedure if exists bug14233; | ||
|  | drop function if exists bug14233; | ||
|  | drop table if exists t1; | ||
|  | drop view if exists v1; | ||
|  | create procedure bug14233() | ||
|  | set @x = 42; | ||
|  | create function bug14233_f() returns int | ||
|  | return 42; | ||
|  | create table t1 (id int); | ||
|  | create trigger t1_ai after insert on t1 for each row call bug14233(); | ||
|  | alter table mysql.proc drop type; | ||
|  | call bug14233(); | ||
|  | ERROR HY000: Column count of mysql.proc is wrong. Expected 20, found 19. The table is probably corrupted | ||
|  | create view v1 as select bug14233_f(); | ||
|  | ERROR HY000: Column count of mysql.proc is wrong. Expected 20, found 19. The table is probably corrupted | ||
|  | insert into t1 values (0); | ||
|  | ERROR HY000: Column count of mysql.proc is wrong. Expected 20, found 19. The table is probably corrupted | ||
|  | show procedure status; | ||
|  | ERROR HY000: Column count of mysql.proc is wrong. Expected 20, found 19. The table is probably corrupted | ||
|  | flush table mysql.proc; | ||
|  | call bug14233(); | ||
|  | ERROR HY000: Incorrect information in file: './mysql/proc.frm' | ||
|  | create view v1 as select bug14233_f(); | ||
|  | ERROR HY000: Incorrect information in file: './mysql/proc.frm' | ||
|  | insert into t1 values (0); | ||
|  | ERROR HY000: Incorrect information in file: './mysql/proc.frm' | ||
|  | flush table mysql.proc; | ||
|  | call bug14233(); | ||
|  | ERROR 42S02: Table 'mysql.proc' doesn't exist | ||
|  | create view v1 as select bug14233_f(); | ||
|  | ERROR 42S02: Table 'mysql.proc' doesn't exist | ||
|  | insert into t1 values (0); | ||
|  | ERROR 42S02: Table 'mysql.proc' doesn't exist | ||
|  | flush table mysql.proc; | ||
|  | flush privileges; | ||
|  | delete from mysql.proc where name like 'bug14233%'; | ||
|  | insert into mysql.proc | ||
|  | ( | ||
|  | db, name, type, specific_name, language, sql_data_access, is_deterministic, | ||
|  | security_type, param_list, returns, body, definer, created, modified, | ||
|  | sql_mode, comment, character_set_client, collation_connection, db_collation, | ||
|  | body_utf8 | ||
|  | ) | ||
|  | values | ||
|  | ( | ||
|  | 'test', 'bug14233_1', 'FUNCTION', 'bug14233_1', 'SQL', 'READS_SQL_DATA', 'NO', | ||
|  | 'DEFINER', '', 'int(10)', | ||
|  | 'select count(*) from mysql.user', | ||
|  | 'root@localhost', NOW() , '0000-00-00 00:00:00', '', '', | ||
|  | '', '', '', | ||
|  | 'select count(*) from mysql.user' | ||
|  | ), | ||
|  | ( | ||
|  | 'test', 'bug14233_2', 'FUNCTION', 'bug14233_2', 'SQL', 'READS_SQL_DATA', 'NO', | ||
|  | 'DEFINER', '', 'int(10)', | ||
|  | 'begin declare x int; select count(*) into x from mysql.user; end', | ||
|  | 'root@localhost', NOW() , '0000-00-00 00:00:00', '', '', | ||
|  | '', '', '', | ||
|  | 'begin declare x int; select count(*) into x from mysql.user; end' | ||
|  | ), | ||
|  | ( | ||
|  | 'test', 'bug14233_3', 'PROCEDURE', 'bug14233_3', 'SQL', 'READS_SQL_DATA','NO', | ||
|  | 'DEFINER', '', '', | ||
|  | 'alksj wpsj sa ^#!@ ', | ||
|  | 'root@localhost', NOW() , '0000-00-00 00:00:00', '', '', | ||
|  | '', '', '', | ||
|  | 'alksj wpsj sa ^#!@ ' | ||
|  | ); | ||
|  | select bug14233_1(); | ||
|  | ERROR HY000: Failed to load routine test.bug14233_1. The table mysql.proc is missing, corrupt, or contains bad data (internal code -6) | ||
|  | create view v1 as select bug14233_1(); | ||
|  | ERROR HY000: Failed to load routine test.bug14233_1. The table mysql.proc is missing, corrupt, or contains bad data (internal code -6) | ||
|  | select bug14233_2(); | ||
|  | ERROR HY000: Failed to load routine test.bug14233_2. The table mysql.proc is missing, corrupt, or contains bad data (internal code -6) | ||
|  | create view v1 as select bug14233_2(); | ||
|  | ERROR HY000: Failed to load routine test.bug14233_2. The table mysql.proc is missing, corrupt, or contains bad data (internal code -6) | ||
|  | call bug14233_3(); | ||
|  | ERROR HY000: Failed to load routine test.bug14233_3. The table mysql.proc is missing, corrupt, or contains bad data (internal code -6) | ||
|  | drop trigger t1_ai; | ||
|  | create trigger t1_ai after insert on t1 for each row call bug14233_3(); | ||
|  | insert into t1 values (0); | ||
|  | ERROR HY000: Failed to load routine test.bug14233_3. The table mysql.proc is missing, corrupt, or contains bad data (internal code -6) | ||
|  | drop trigger t1_ai; | ||
|  | drop table t1; | ||
|  | drop function bug14233_1; | ||
|  | drop function bug14233_2; | ||
|  | drop procedure bug14233_3; | ||
|  | show procedure status where db=DATABASE(); | ||
|  | Db	Name	Type	Definer	Modified	Created	Security_type	Comment	character_set_client	collation_connection	Database Collation | ||
|  | show function status where db=DATABASE(); | ||
|  | Db	Name	Type	Definer	Modified	Created	Security_type	Comment	character_set_client	collation_connection	Database Collation | ||
|  | DROP TABLE IF EXISTS proc_backup; | ||
|  | DROP PROCEDURE IF EXISTS p1; | ||
|  | # Backup the proc table | ||
|  | RENAME TABLE mysql.proc TO proc_backup; | ||
|  | CREATE TABLE mysql.proc LIKE proc_backup; | ||
|  | FLUSH TABLE mysql.proc; | ||
|  | # Test with a valid table. | ||
|  | CREATE PROCEDURE p1() | ||
|  | SET @foo = 10; | ||
|  | CALL p1(); | ||
|  | SHOW PROCEDURE STATUS; | ||
|  | Db	Name	Type	Definer	Modified	Created	Security_type	Comment	character_set_client	collation_connection	Database Collation | ||
|  | test	p1	PROCEDURE	root@localhost	0000-00-00 00:00:00	0000-00-00 00:00:00	DEFINER		latin1	latin1_swedish_ci	latin1_swedish_ci | ||
|  | # Modify a field of the table. | ||
|  | ALTER TABLE mysql.proc MODIFY comment CHAR (32); | ||
|  | CREATE PROCEDURE p2() | ||
|  | SET @foo = 10; | ||
|  | ERROR HY000: Cannot load from mysql.proc. The table is probably corrupted | ||
|  | # Procedure loaded from the cache | ||
|  | CALL p1(); | ||
|  | SHOW PROCEDURE STATUS; | ||
|  | ERROR HY000: Cannot load from mysql.proc. The table is probably corrupted | ||
|  | DROP TABLE mysql.proc; | ||
|  | RENAME TABLE proc_backup TO mysql.proc; | ||
|  | FLUSH TABLE mysql.proc; |