diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:00:34 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:00:34 +0000 |
commit | 3f619478f796eddbba6e39502fe941b285dd97b1 (patch) | |
tree | e2c7b5777f728320e5b5542b6213fd3591ba51e2 /mysql-test/main/column_compression_parts.test | |
parent | Initial commit. (diff) | |
download | mariadb-3f619478f796eddbba6e39502fe941b285dd97b1.tar.xz mariadb-3f619478f796eddbba6e39502fe941b285dd97b1.zip |
Adding upstream version 1:10.11.6.upstream/1%10.11.6upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'mysql-test/main/column_compression_parts.test')
-rw-r--r-- | mysql-test/main/column_compression_parts.test | 182 |
1 files changed, 182 insertions, 0 deletions
diff --git a/mysql-test/main/column_compression_parts.test b/mysql-test/main/column_compression_parts.test new file mode 100644 index 00000000..4c77a730 --- /dev/null +++ b/mysql-test/main/column_compression_parts.test @@ -0,0 +1,182 @@ +--source include/have_partition.inc + +--disable_warnings +DROP TABLE IF EXISTS t1,t2,t3,t4; +--enable_warnings +FLUSH STATUS; + +echo ---------------------------------------by range------------------------------------------; + +CREATE TABLE t1 (i int, a VARCHAR(1000) COMPRESSED DEFAULT "AAA") + PARTITION BY RANGE COLUMNS (a)( + PARTITION p0 VALUES LESS THAN ('g') COMMENT "p0", + PARTITION p1 VALUES LESS THAN ('m'), + PARTITION p2 VALUES LESS THAN ('t'), + PARTITION p3 VALUES LESS THAN ('w')); + +ALTER TABLE t1 ADD PARTITION (PARTITION p4 VALUES LESS THAN (MAXVALUE)); + +INSERT INTO t1 VALUES (1,REPEAT('a',100)),(2,REPEAT('v',200)),(3,REPEAT('r',300)),(4,NULL); +INSERT INTO t1 VALUES (5,REPEAT('k',500)),(6,'April'),(7,7),(8,""),(9,"M"),(10,DEFAULT); + +ALTER TABLE t1 ANALYZE PARTITION p1; +ALTER TABLE t1 CHECK PARTITION p2; + +SELECT i,SUBSTRING(a,1,10) FROM t1 PARTITION (p2) ORDER BY i; +SELECT i,SUBSTRING(a,1,10) FROM t1 where length(a)>=300 ORDER BY i; +SELECT i,SUBSTRING(a,1,10) FROM t1 where a like "%k" ORDER BY i; + +DELETE FROM t1 where a=""; +DELETE FROM t1 where a=(REPEAT('a',100)); +DELETE FROM t1 where a like "%v"; + +SELECT i,SUBSTRING(a,1,10) FROM t1 ORDER BY i; +SELECT i,SUBSTRING(a,1,10) FROM t1 where a not like "%k" ORDER BY i; +SELECT i,SUBSTRING(a,1,10) FROM t1 where (a>'m') ORDER BY i; +SELECT i,SUBSTRING(a,1,10) FROM t1 where (a between 'h' and 'z') and (i=9) ORDER BY i; + +EXPLAIN PARTITIONS SELECT i,SUBSTRING(a,1,10) FROM t1 where (a>'m'); +EXPLAIN PARTITIONS SELECT i,SUBSTRING(a,1,10) FROM t1 where (a<'w'); + +ALTER TABLE t1 TRUNCATE PARTITION p2; +ALTER TABLE t1 DROP PARTITION p0; +SHOW CREATE TABLE t1; + +ALTER TABLE t1 MODIFY COLUMN a VARCHAR(1000); +SHOW CREATE TABLE t1; + +DROP TABLE t1; + +echo ---------------------------------------------------------------------------------------------; + +CREATE TABLE t1 (a VARCHAR(1000) COMPRESSED NOT NULL, id INT) + PARTITION BY RANGE COLUMNS(id,a)( + PARTITION p0 VALUES LESS THAN (100,'sss'), + PARTITION p1 VALUES LESS THAN (MAXVALUE,MAXVALUE)); + +INSERT INTO t1 VALUES (REPEAT('a',100), 23),(REPEAT('v',100),123),(REPEAT('z',100),24),(REPEAT('k',100),124); +SELECT id,SUBSTRING(a,1,10) FROM t1 order by id; +SELECT * from t1 partition (p0); +SELECT * from t1 partition (p1); +INSERT INTO t1 VALUES (REPEAT('a',100),101); +SELECT * from t1 partition (p0); +SELECT * from t1 partition (p1); +ALTER TABLE t1 DROP PARTITION p1; +SELECT id,SUBSTRING(a,1,10) FROM t1 WHERE id<50 order by id; +--error ER_NO_PARTITION_FOR_GIVEN_VALUE +INSERT INTO t1 VALUES (REPEAT('a',100),101); + +ALTER TABLE t1 ALTER COLUMN a SET DEFAULT 'qwerty'; +ALTER TABLE t1 ALTER COLUMN a DROP DEFAULT; + +ALTER TABLE t1 MODIFY COLUMN a VARCHAR(1000); +ALTER TABLE t1 ALTER COLUMN a DROP DEFAULT; +INSERT INTO t1 VALUES (REPEAT('b',100),11); +--error ER_NO_DEFAULT_FOR_FIELD +INSERT INTO t1 VALUES (default,10); + +ALTER TABLE t1 MODIFY COLUMN a VARCHAR(1000) COMPRESSED; +SHOW CREATE TABLE t1; +SELECT * from t1 ORDER BY id; + +DROP TABLE t1; + +echo ----------------------------1 partition--------------------------------------------------; + +CREATE TABLE t1 (a VARCHAR(1000) COMPRESSED DEFAULT "10-12-2010") + PARTITION BY RANGE COLUMNS (a) (partition p0 VALUES LESS THAN (MAXVALUE)); +INSERT INTO t1 VALUES (REPEAT('a',100)), (REPEAT('v',200)), (REPEAT('Z',300)),(NULL),(DEFAULT); +INSERT INTO t1 VALUES (DEFAULT),(REPEAT('b',200)),(REPEAT('q',300)),(DEFAULT),("MAY"); + +--sorted_result +SELECT SUBSTRING(a,1,10) FROM t1; + +echo -----------------------------------------by key------------------------------------------; + +ALTER TABLE t1 PARTITION BY KEY(a) PARTITIONS 6; +SHOW CREATE TABLE t1; +UPDATE t1 SET a="NEW" where length(a)<20; +--sorted_result +SELECT SUBSTRING(a,1,10) FROM t1; + +CREATE TABLE t2 (a VARBINARY(1000) COMPRESSED) + PARTITION BY KEY(a) PARTITIONS 3; +ALTER TABLE t2 PARTITION BY LINEAR KEY ALGORITHM=2 (a) PARTITIONS 32; + +INSERT INTO t2 VALUES (REPEAT('a',100)),(REPEAT('v',6)),(REPEAT('z',13)),(REPEAT('k',900)); +--sorted_result +SELECT SUBSTRING(a,1,10) FROM t2; + +CREATE TABLE t3 ( a VARCHAR(1000) COMPRESSED DEFAULT NULL) + PARTITION BY LINEAR KEY(a) PARTITIONS 3; +INSERT INTO t3 VALUES (REPEAT('a',100)),(REPEAT('v',100)),(NULL),(REPEAT('k',100)),(DEFAULT); +--sorted_result +SELECT SUBSTRING(a,1,10) FROM t3 where a<>NULL; + +CREATE TABLE t4 (a VARBINARY(1000) COMPRESSED NOT NULL DEFAULT 0 COMMENT "QQ") + PARTITION BY LINEAR KEY(a) + PARTITIONS 3; +INSERT INTO t4 VALUES (REPEAT('a',100)),('0'),(DEFAULT),(DEFAULT),(REPEAT('v',100)),(REPEAT('k',100)); +--sorted_result +SELECT SUBSTRING(a,1,10) FROM t4 where length(a)>3; + +DROP TABLE t1,t2,t3,t4; + +echo -----------------------------------subpartitions------------------------------------------; + +CREATE TABLE t1 (a VARCHAR(1000) COMPRESSED, id INT NOT NULL) + PARTITION BY RANGE(id) + SUBPARTITION BY KEY(a) SUBPARTITIONS 4 + (PARTITION p0 VALUES LESS THAN (5), + PARTITION p1 VALUES LESS THAN (MAXVALUE)); +INSERT INTO t1 VALUES (REPEAT('a',100),23),(REPEAT('v',100),123),(REPEAT('z',100),24),(REPEAT('k',100),124); +SELECT id,SUBSTRING(a,1,10) FROM t1 where a=(REPEAT('k',100)) order by id; +DROP TABLE t1; + +echo -------------------------------------------------------------------------------------------; + +--error ER_BLOB_FIELD_IN_PART_FUNC_ERROR +CREATE TABLE t1 (a BLOB COMPRESSED) + PARTITION BY KEY(a) partitions 30; + +CREATE TABLE t1 (a VARCHAR(200) COMPRESSED) PARTITION BY KEY(a) partitions 30; +ALTER TABLE t1 COALESCE PARTITION 20; +#ALTER TABLE t1 ADD PARTITION (PARTITION pm TABLESPACE = `innodb_file_per_table`); --mdev MDEV-13584 +ALTER TABLE t1 ADD PARTITION (PARTITION pm); +CREATE TABLE t2 like t1; +ALTER TABLE t2 REMOVE PARTITIONING; +SHOW CREATE TABLE t1; +SHOW CREATE TABLE t2; + +ALTER TABLE t1 EXCHANGE PARTITION pm WITH TABLE t2; +DROP TABLE t1,t2; +echo -------------------------------------------------------------------------------------------; + +CREATE TABLE t1 (a BLOB COMPRESSED default 5,i int); +INSERT INTO t1 VALUES (REPEAT('a',100),1),(REPEAT('v',100),2),(REPEAT('z',100),3),(REPEAT('k',100),2),(2,2); + +--error ER_BLOB_FIELD_IN_PART_FUNC_ERROR +ALTER TABLE t1 PARTITION BY KEY(a) partitions 3; + +ALTER TABLE t1 PARTITION BY HASH(i) PARTITIONS 8; +--error ER_PARTITION_WRONG_VALUES_ERROR +ALTER TABLE t1 REORGANIZE PARTITION p0 INTO ( + PARTITION s0 VALUES LESS THAN (1960), + PARTITION s1 VALUES LESS THAN (1970) +); +SHOW CREATE TABLE t1; +ALTER TABLE t1 REMOVE PARTITIONING; +DROP TABLE t1; + +CREATE TABLE t1 (a VARCHAR(500) COMPRESSED default 5,i int) + PARTITION BY RANGE COLUMNS(i)( + PARTITION p0 VALUES LESS THAN (10), + PARTITION p1 VALUES LESS THAN (100), + PARTITION p2 VALUES LESS THAN (1000)); +INSERT INTO t1 VALUES (REPEAT('a',100),1),("one",21),(REPEAT('3',100),34),(REPEAT('k',100),267),(2,278); + +ALTER TABLE t1 REORGANIZE PARTITION p2 INTO (PARTITION p22 VALUES LESS THAN (MAXVALUE)); +SHOW CREATE TABLE t1; +ALTER TABLE t1 REBUILD PARTITION p22; + +DROP TABLE t1; |