summaryrefslogtreecommitdiff
path: root/mysql-test/r/myisampack.result
diff options
context:
space:
mode:
authorMichael Widenius <monty@askmonty.org>2014-05-17 10:42:59 +0300
committerMichael Widenius <monty@askmonty.org>2014-05-17 10:42:59 +0300
commita55c159424df1dbc6a61a3c6592ac819d8bb3316 (patch)
tree3961885ee0e04869ed5f15f562c6d14c23628397 /mysql-test/r/myisampack.result
parentf6524e496312a6d3b870c74118f921c33201f3d7 (diff)
downloadmariadb-git-a55c159424df1dbc6a61a3c6592ac819d8bb3316.tar.gz
MDEV-6245 Certain compressed tables with myisampack are corrupted by "CHECK TABLE"
- Fixed bug that we where using wrong checksum algorithm when using VARCHAR with fixed lenth rows - Ensure in myisampack that HA_OPTION_NULL_FIELDS is set for tables with null fields. mysql-test/r/myisampack.result: Updated results mysql-test/t/myisampack.test: Added more tests storage/myisam/mi_open.c: Use correct checksum algorithm when we have VARCHAR fields with fixed length records storage/myisam/myisampack.c: Ensure HA_OPTION_NULL_FIELDS is set for tables with null fields. (This was not set by default for not compressed tables without checksums to keep MyISAM tables compatible with MySQL)
Diffstat (limited to 'mysql-test/r/myisampack.result')
-rw-r--r--mysql-test/r/myisampack.result54
1 files changed, 54 insertions, 0 deletions
diff --git a/mysql-test/r/myisampack.result b/mysql-test/r/myisampack.result
index 56f61ccdf47..aeb12c1f68e 100644
--- a/mysql-test/r/myisampack.result
+++ b/mysql-test/r/myisampack.result
@@ -150,3 +150,57 @@ CHECK TABLE t1;
Table Op Msg_type Msg_text
test.t1 check status OK
DROP TABLE t1;
+create table `t1` (`id` varchar(15) DEFAULT NULL) ENGINE=MyISAM ROW_FORMAT=FIXED;
+insert into t1 values ('aaa'),('bbb'),('ccc'),('ddd'),('eee');
+insert into t1 (select * from t1);
+insert into t1 (select * from t1);
+insert into t1 (select * from t1);
+insert into t1 (select * from t1);
+checksum table t1;
+Table Checksum
+test.t1 2696656816
+insert into t1 values(NULL);
+checksum table t1;
+Table Checksum
+test.t1 2679879600
+flush table t1;
+check table t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+checksum table t1;
+Table Checksum
+test.t1 2679879600
+alter table t1 checksum=1 row_format=fixed;
+checksum table t1;
+Table Checksum
+test.t1 2679879600
+flush table t1;
+check table t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+checksum table t1;
+Table Checksum
+test.t1 2679879600
+alter table t1 row_format=dynamic checksum=0;
+checksum table t1;
+Table Checksum
+test.t1 2330021136
+flush table t1;
+check table t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+checksum table t1;
+Table Checksum
+test.t1 2330021136
+alter table t1 checksum=1 row_format=dynamic;
+checksum table t1;
+Table Checksum
+test.t1 2330021136
+flush table t1;
+check table t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+checksum table t1;
+Table Checksum
+test.t1 2330021136
+drop table t1;