summaryrefslogtreecommitdiff
path: root/mysql-test/main/partition_csv.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/main/partition_csv.test')
-rw-r--r--mysql-test/main/partition_csv.test93
1 files changed, 93 insertions, 0 deletions
diff --git a/mysql-test/main/partition_csv.test b/mysql-test/main/partition_csv.test
new file mode 100644
index 00000000000..44013dd4b0a
--- /dev/null
+++ b/mysql-test/main/partition_csv.test
@@ -0,0 +1,93 @@
+# 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