diff options
Diffstat (limited to 'mysql-test/main/column_compression.test')
-rw-r--r-- | mysql-test/main/column_compression.test | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/mysql-test/main/column_compression.test b/mysql-test/main/column_compression.test new file mode 100644 index 00000000000..d3f848144b6 --- /dev/null +++ b/mysql-test/main/column_compression.test @@ -0,0 +1,81 @@ +--source include/have_innodb.inc +--source include/have_csv.inc + +let $MYSQLD_DATADIR= `select @@datadir`; + +SET column_compression_zlib_wrap=true; +let $typec= BLOB COMPRESSED; +let $typeu= BLOB; +--source column_compression.inc + +let $typec= TEXT COMPRESSED; +let $typeu= TEXT; +--source column_compression.inc + +let $typec= VARBINARY(10000) COMPRESSED; +let $typeu= VARBINARY(10000); +--source column_compression.inc + +let $typec= VARCHAR(10000) COMPRESSED; +let $typeu= VARCHAR(10000); +--source column_compression.inc + +let $typec= TEXT CHARSET ucs2 COMPRESSED; +let $typeu= TEXT; +--source column_compression.inc + +SET column_compression_zlib_wrap=DEFAULT; +let $typec= BLOB COMPRESSED; +let $typeu= BLOB; +--source column_compression.inc + +--error ER_WRONG_FIELD_SPEC +CREATE TABLE t1(a CHAR(100) COMPRESSED); +--error ER_WRONG_FIELD_SPEC +CREATE TABLE t1(a INT COMPRESSED); +--error ER_UNKNOWN_COMPRESSION_METHOD +CREATE TABLE t1(a BLOB COMPRESSED=unknown); +CREATE TABLE t1(a BLOB COMPRESSED COMPRESSED); +DROP TABLE t1; +CREATE TABLE t1(a INT); +--error ER_WRONG_FIELD_SPEC +ALTER TABLE t1 MODIFY a INT COMPRESSED; +DROP TABLE t1; + +--echo # Test CSV +CREATE TABLE t1(a BLOB NOT NULL COMPRESSED) ENGINE=CSV; +INSERT INTO t1 VALUES(REPEAT('a', 110)); +SELECT LENGTH(a) FROM t1; +ALTER TABLE t1 ENGINE=MyISAM; +SELECT LENGTH(a) FROM t1; +ALTER TABLE t1 ENGINE=CSV; +SELECT LENGTH(a) FROM t1; +SHOW CREATE TABLE t1; +--cat_file $MYSQLD_DATADIR/test/t1.CSV +DROP TABLE t1; + +--echo # Test fields that don't fit data +CREATE TABLE t1(a VARCHAR(9) COMPRESSED); +--error ER_DATA_TOO_LONG +INSERT INTO t1 VALUES(REPEAT('a', 10)); +INSERT INTO t1 VALUES(REPEAT(' ', 10)); +SELECT a, LENGTH(a) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1(a TINYTEXT COMPRESSED); +SET column_compression_threshold=300; +--error ER_DATA_TOO_LONG +INSERT INTO t1 VALUES(REPEAT('a', 255)); +INSERT INTO t1 VALUES(REPEAT(' ', 255)); +SET column_compression_threshold=DEFAULT; +SELECT a, LENGTH(a) FROM t1; +DROP TABLE t1; + +--echo # Corner case: VARCHAR(255) COMPRESSED must have 2 bytes pack length +CREATE TABLE t1(a VARCHAR(255) COMPRESSED); +SHOW CREATE TABLE t1; +SET column_compression_threshold=300; +INSERT INTO t1 VALUES(REPEAT('a', 255)); +SET column_compression_threshold=DEFAULT; +SELECT a, LENGTH(a) FROM t1; +DROP TABLE t1; |