# Tests for the partition storage engine in connection with the # storage engine CSV. # # Creation: # 2007-10-18 mleich - Move CSV related sub tests of partition.test to # this test. Reason: CSV is not everytime available. # - Minor cleanup # --source include/have_partition.inc --source include/have_csv.inc call mtr.add_suppression("Failed to write to mysql.general_log"); # # Bug#19307: Partitions: csv delete failure # = CSV engine crashes # --disable_warnings drop table if exists t1; --enable_warnings --error ER_PARTITION_MERGE_ERROR create table t1 (a int) engine = csv partition by list (a) (partition p0 values in (null)); # # Bug #27816: Log tables ran with partitions crashes the server when logging # is enabled. # 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; --error ER_WRONG_USAGE ALTER TABLE general_log PARTITION BY RANGE (TO_DAYS(event_time)) (PARTITION p0 VALUES LESS THAN (733144), PARTITION p1 VALUES LESS THAN (3000000)); ALTER TABLE general_log ENGINE = CSV; SET GLOBAL general_log = @old_general_log_state; use test; --echo # --echo # Bug#40281: partitioning the general log table crashes the server --echo # --echo # 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; --echo # do some things to be logged to partitioned log, should fail USE /* 1 */ test; CREATE TABLE t1 (i INT); connect (con1,localhost,root,,); INSERT INTO t1 VALUES (1); SELECT * FROM t1; disconnect con1; connection default; USE mysql; SET GLOBAL general_log =0; ALTER TABLE general_log RENAME TO gl_partitioned; ALTER TABLE gl_nonpartitioned RENAME TO general_log; --echo # show whether we actually logged anything (no) to general_log SELECT COUNT(argument) FROM gl_partitioned; 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; --echo End of 5.1 tests