diff options
Diffstat (limited to 'mysql-test/suite/storage_engine/parts/truncate_table.test')
-rw-r--r-- | mysql-test/suite/storage_engine/parts/truncate_table.test | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/mysql-test/suite/storage_engine/parts/truncate_table.test b/mysql-test/suite/storage_engine/parts/truncate_table.test new file mode 100644 index 00000000000..20f316d5297 --- /dev/null +++ b/mysql-test/suite/storage_engine/parts/truncate_table.test @@ -0,0 +1,111 @@ +# +# TRUNCATE TABLE with partitions and TRUNCATE PARTITION +# + +--source include/have_partition.inc +--source ../have_engine.inc + +# A part of the standard TRUNCATE test + +--disable_warnings +DROP TABLE IF EXISTS t1; +--enable_warnings + + +# Truncate partitioned table + +let $partition_options = PARTITION BY HASH(a) PARTITIONS 2; +--source ../create_table.inc +if ($mysql_errname) +{ + --let $my_last_stmt = $create_statement + --let $functionality = Partitions + --source ../unexpected_result.inc +} +if (!$mysql_errname) +{ + TRUNCATE TABLE t1; + if ($mysql_errname) + { + --let $functionality = TRUNCATE TABLE + --source ../unexpected_result.inc + } + + INSERT INTO t1 (a,b) VALUES (1,'a'), (2,'b'), (3,'c'); + TRUNCATE TABLE t1; + SELECT * FROM t1; + + DROP TABLE t1; +} + + +# Truncate resets auto-increment value on the table + +let $create_definition = a $int_indexed_col KEY AUTO_INCREMENT, c $char_col; +let $partition_options = PARTITION BY HASH(a) PARTITIONS 2; +--source ../create_table.inc + +if ($mysql_errname) +{ + --let $my_last_stmt = $create_statement + --let $functionality = Partitions or PK or auto-increment + --source ../unexpected_result.inc +} +if (!$mysql_errname) +{ + --source ../mask_engine.inc + SHOW CREATE TABLE t1; + INSERT INTO t1 (c) VALUES ('a'),('b'),('c'); + --source ../mask_engine.inc + SHOW CREATE TABLE t1; + TRUNCATE TABLE t1; + --source ../mask_engine.inc + SHOW CREATE TABLE t1; + INSERT INTO t1 (c) VALUES ('d'); + --source ../mask_engine.inc + SHOW CREATE TABLE t1; + SELECT * FROM t1; + DROP TABLE t1; +} + + +# Truncate partitions + +let $partition_options = PARTITION BY HASH(a) PARTITIONS 2; +--source ../create_table.inc +if ($mysql_errname) +{ + --let $my_last_stmt = $create_statement + --let $functionality = Partitions + --source ../unexpected_result.inc +} +if (!$mysql_errname) +{ + INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b'),(3,'c'),(2,'d'),(4,'e'),(100,'f'),(101,'g'); + + let $alter_definition = TRUNCATE PARTITION p0; + --source ../alter_table.inc + if ($mysql_errname) + { + --let $my_last_stmt = $alter_statement + --let $functionality = ALTER TABLE + --source ../unexpected_result.inc + } + + --sorted_result + SELECT * FROM t1; + --replace_column 5 # 6 # 7 # 8 # 9 # 10 # + EXPLAIN PARTITIONS SELECT * FROM t1; + + INSERT INTO t1 (a,b) VALUES (1,'a'), (2,'b'), (3,'c'); + + let $alter_definition = TRUNCATE PARTITION ALL; + --source ../alter_table.inc + + SELECT * FROM t1; + + DROP TABLE t1; +} + +--source ../cleanup_engine.inc + |