mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 13:32:33 +01:00
54b719a2c6
rows cause no logging mysql-test/include/maria_empty_logs.inc: don't assume that mysqltest is the default db mysql-test/r/maria-no-logging.result: result. Without the optimization of disabling logging in ha_maria::start_bulk_insert(), we see 24k instead of 16k, in the cases where the table is empty. mysql-test/r/maria-purge.result: side effect of change to maria_empty_logs.inc mysql-test/t/maria-purge.test: maria-purge.test used to fail when run in a group like this "--big t/*maria*.test" because SHOW ENGINE MARIA LOGS was influenced by previous tests; deleting logs to fix that.
81 lines
2.1 KiB
Text
81 lines
2.1 KiB
Text
# test of cases where we can safely disable logging
|
|
|
|
--source include/have_maria.inc
|
|
|
|
set global maria_log_file_size=4294967295;
|
|
|
|
--disable_warnings
|
|
drop database if exists mysqltest;
|
|
--enable_warnings
|
|
create database mysqltest;
|
|
|
|
connect (admin, 127.0.0.1, root,,mysqltest,,);
|
|
--enable_reconnect
|
|
|
|
connection default;
|
|
use mysqltest;
|
|
--enable_reconnect
|
|
|
|
# checkpoints can make log unrepeatable
|
|
let $def_checkinterval=`select @@global.maria_checkpoint_interval`;
|
|
set global maria_checkpoint_interval=0;
|
|
|
|
# Prepare table to help for big load
|
|
create table t2 (a varchar(100)) engine=myisam;
|
|
insert into t2 select repeat('z',100);
|
|
insert into t2 select * from t2;
|
|
insert into t2 select * from t2;
|
|
insert into t2 select * from t2;
|
|
insert into t2 select * from t2;
|
|
insert into t2 select * from t2;
|
|
insert into t2 select * from t2;
|
|
|
|
# INSERT SELECT
|
|
|
|
# no optimization because table not empty
|
|
|
|
# SHOW ENGINE MARIA LOGS could be influenced by older logs
|
|
-- source include/maria_empty_logs.inc
|
|
create table t1 (a varchar(100)) engine=maria transactional=1;
|
|
show create table t1;
|
|
--replace_regex /; .+maria_log/maria_log/
|
|
show engine maria logs;
|
|
|
|
insert into t1 values('a');
|
|
insert into t1 select * from t2;
|
|
--replace_regex /; .+maria_log/maria_log/
|
|
show engine maria logs;
|
|
|
|
# optimization because table is empty
|
|
-- source include/maria_empty_logs.inc
|
|
truncate table t1;
|
|
insert into t1 select * from t2;
|
|
--replace_regex /; .+maria_log/maria_log/
|
|
show engine maria logs;
|
|
|
|
drop table t1;
|
|
|
|
# same for CREATE SELECT
|
|
|
|
# no optimization because table not empty
|
|
-- source include/maria_empty_logs.inc
|
|
create table t1 (a varchar(100)) engine=maria transactional=1;
|
|
insert into t1 values('a');
|
|
create table if not exists t1 select * from t2;
|
|
--replace_regex /; .+maria_log/maria_log/
|
|
show engine maria logs;
|
|
|
|
# optimization because table is empty
|
|
-- source include/maria_empty_logs.inc
|
|
drop table t1;
|
|
create table t1 engine=maria transactional=1 select * from t2;
|
|
--replace_regex /; .+maria_log/maria_log/
|
|
show engine maria logs;
|
|
|
|
drop database mysqltest;
|
|
|
|
--disable_result_log
|
|
--disable_query_log
|
|
eval set global maria_checkpoint_interval=$def_checkinterval;
|
|
--enable_result_log
|
|
--enable_query_log
|