set global aria_log_file_size=4294959104; drop database if exists mysqltest; create database mysqltest; connect admin, 127.0.0.1, root,,mysqltest,,; connection default; use mysqltest; connection default; connection admin; * shut down mysqld, removed logs, restarted it connection default; * TEST of Checkpoint between writing the commit log record and committing in trnman create table t1(a int primary key) engine=aria; insert into t1 values(1); connection admin; flush table t1; * copied t1 for comparison connection default; set session debug_dbug="+d,maria_sleep_in_commit"; insert into t1 values(2); connection admin; set global aria_checkpoint_interval=1000; connection default; delete from t1 where a=2; connection admin; SET SESSION debug_dbug="+d,maria_flush_whole_log,maria_crash"; * crashing mysqld intentionally set global aria_checkpoint_interval=1; ERROR HY000: Lost connection to server during query * recovery happens check table t1 extended; Table Op Msg_type Msg_text mysqltest.t1 check status OK * testing that checksum after recovery is as expected Checksum-check ok connection default; use mysqltest; drop table t1; * TEST of logging of BLOBs CREATE TABLE `t1` ( `blob` blob, `blob_key` blob ) ENGINE=aria ROW_FORMAT=page ; connection admin; * copied t1 for feeding_recovery * compared t1 to old version connection default; set global aria_checkpoint_interval=0; INSERT INTO `t1` VALUES (NULL,repeat('A',5198)); INSERT INTO `t1` VALUES (NULL,repeat('B',65535)); INSERT INTO `t1` VALUES (repeat('K',5198),repeat('L',2325)); INSERT INTO `t1` VALUES (repeat('C',65535),NULL); INSERT INTO `t1` VALUES (NULL,repeat('D',65535)); INSERT INTO `t1` VALUES (repeat('E',65535),repeat('F',16111)); INSERT INTO `t1` VALUES (repeat('G',65535),repeat('H',65535)); INSERT INTO `t1` VALUES (repeat('I',5198),repeat('J',65535)); check table t1 extended; Table Op Msg_type Msg_text mysqltest.t1 check status OK connection admin; flush table t1; * copied t1 for comparison * compared t1 to old version connection default; connection admin; SET SESSION debug_dbug="+d,maria_flush_whole_log,maria_crash"; * crashing mysqld intentionally set global aria_checkpoint_interval=1; ERROR HY000: Lost connection to server during query * copied t1 back for feeding_recovery * recovery happens check table t1 extended; Table Op Msg_type Msg_text mysqltest.t1 check status OK * testing that checksum after recovery is as expected Checksum-check ok * compared t1 to old version connection default; use mysqltest; drop table t1; create table t1 engine=aria select 1; connection admin; * copied t1 for feeding_recovery connection default; set global aria_checkpoint_interval=0; insert into t1 values(2); truncate table t1; connection admin; flush table t1; * copied t1 for comparison connection default; truncate table t1; connection admin; SET SESSION debug_dbug="+d,maria_flush_whole_log,maria_crash_create_table"; * crashing mysqld intentionally truncate table t1; ERROR HY000: Lost connection to server during query * recovery happens check table t1 extended; Table Op Msg_type Msg_text mysqltest.t1 check warning Size of indexfile is: Expected: 8192 mysqltest.t1 check status OK * testing that checksum after recovery is as expected Checksum-check ok connection default; use mysqltest; truncate table t1; check table t1 extended; Table Op Msg_type Msg_text mysqltest.t1 check status OK drop table t1; CREATE TABLE t1 ( word VARCHAR(255) PRIMARY KEY ) ENGINE=Aria; LOAD DATA INFILE '../../std_data/bug887051.txt' INTO TABLE t1; SET AUTOCOMMIT=0; DELETE FROM t1; LOAD DATA INFILE '../../std_data/bug887051.txt' INTO TABLE t1 IGNORE 1 LINES; COMMIT; connection admin; SET SESSION debug_dbug="+d,maria_flush_whole_log,maria_crash"; * crashing mysqld intentionally set global aria_checkpoint_interval=1; ERROR HY000: Lost connection to server during query * recovery happens check table t1 extended; Table Op Msg_type Msg_text mysqltest.t1 check status OK * testing that checksum after recovery is as expected Checksum-check failure connection default; use mysqltest; select * from t1; word saved2 drop table t1; drop database mysqltest_for_feeding_recovery; drop database mysqltest_for_comparison; drop database mysqltest;