56 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			56 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | call mtr.add_suppression("Failed to write to mysql.general_log"); | ||
|  | drop table if exists t1; | ||
|  | create table t1 (a int) | ||
|  | engine = csv | ||
|  | partition by list (a) | ||
|  | (partition p0 values in (null)); | ||
|  | ERROR HY000: Engine cannot be used in partitioned tables | ||
|  | USE mysql; | ||
|  | TRUNCATE TABLE general_log; | ||
|  | SET @old_general_log_state = @@global.general_log; | ||
|  | SET GLOBAL general_log = 0; | ||
|  | ALTER TABLE general_log ENGINE = MyISAM; | ||
|  | ALTER TABLE general_log PARTITION BY RANGE (TO_DAYS(event_time)) | ||
|  | (PARTITION p0 VALUES LESS THAN (733144), PARTITION p1 VALUES LESS THAN (3000000)); | ||
|  | ERROR HY000: Incorrect usage of PARTITION and log table | ||
|  | ALTER TABLE general_log ENGINE = CSV; | ||
|  | SET GLOBAL general_log = @old_general_log_state; | ||
|  | use test; | ||
|  | # | ||
|  | # Bug#40281: partitioning the general log table crashes the server | ||
|  | # | ||
|  | # set up partitioned log, and switch to it | ||
|  | USE mysql; | ||
|  | SET @old_general_log_state = @@global.general_log; | ||
|  | SET GLOBAL general_log = 0; | ||
|  | CREATE TABLE gl_partitioned LIKE general_log; | ||
|  | ALTER TABLE gl_partitioned ENGINE=myisam; | ||
|  | ALTER TABLE gl_partitioned PARTITION BY HASH (thread_id) PARTITIONS 10; | ||
|  | ALTER TABLE general_log RENAME TO gl_nonpartitioned; | ||
|  | ALTER TABLE gl_partitioned RENAME TO general_log; | ||
|  | SELECT @@global.log_output INTO @old_glo; | ||
|  | SET GLOBAL log_output='table'; | ||
|  | SET GLOBAL general_log =1; | ||
|  | # do some things to be logged to partitioned log, should fail | ||
|  | USE /* 1 */ test; | ||
|  | CREATE TABLE t1 (i INT); | ||
|  | INSERT INTO t1 VALUES (1); | ||
|  | SELECT * FROM t1; | ||
|  | i | ||
|  | 1 | ||
|  | USE mysql; | ||
|  | SET GLOBAL general_log =0; | ||
|  | ALTER TABLE general_log RENAME TO gl_partitioned; | ||
|  | ALTER TABLE gl_nonpartitioned RENAME TO general_log; | ||
|  | # show whether we actually logged anything (no) to general_log | ||
|  | SELECT COUNT(argument) FROM gl_partitioned; | ||
|  | COUNT(argument) | ||
|  | 0 | ||
|  | DROP TABLE gl_partitioned; | ||
|  | SET GLOBAL log_output = @old_glo; | ||
|  | SET GLOBAL general_log = 1; | ||
|  | USE /* 2 */ test; | ||
|  | DROP TABLE t1; | ||
|  | SET GLOBAL general_log = @old_general_log_state; | ||
|  | End of 5.1 tests |