mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 12:32:27 +01:00
10ef77fc3b
Fixed failing func_misc test for embedded server Added casts to avoid compiler warnings Removed Table_locks_immediate as it's depending on log file cacheing Changed type of get_time() to avoid warnings Removed testing if purger master logs succeded as this is not deterministic libmysqld/lib_sql.cc: Fixed failing func_misc test for embedded server mysql-test/mysql-test-run.pl: Shut first down slaves, then masters. This should avoid some errors in the log file about not being able to connect to master during shutdown mysql-test/r/func_misc.result: Move DROP TABLE's first mysql-test/r/status.result: Removed Table_locks_immediate as it's depending on log file cacheing mysql-test/suite/ndb/r/ndb_binlog_basic.result: Removed testing if purger master logs succeded as this is not deterministic mysql-test/suite/ndb/t/ndb_binlog_basic.test: Removed testing if purger master logs succeded as this is not deterministic mysql-test/t/func_misc.test: Move DROP TABLE's first mysql-test/t/status.test: Removed Table_locks_immediate as it's depending on log file cacheing sql/log_event.cc: Added cast to avoid warnings sql/log_event.h: Changed type of get_time() to avoid warnings
80 lines
2.2 KiB
Text
80 lines
2.2 KiB
Text
-- source include/have_ndb.inc
|
|
-- source include/have_binlog_format_mixed_or_row.inc
|
|
|
|
--disable_warnings
|
|
drop table if exists t1, t2;
|
|
drop database if exists mysqltest;
|
|
create database mysqltest;
|
|
use mysqltest;
|
|
drop database mysqltest;
|
|
use test;
|
|
--enable_warnings
|
|
|
|
#
|
|
# basic insert, update, delete test, alter, rename, drop
|
|
# check that ndb_binlog_index gets the right info
|
|
#
|
|
|
|
create table t1 (a int primary key) engine=ndb;
|
|
insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
|
save_master_pos;
|
|
--replace_column 1 #
|
|
select @max_epoch:=max(epoch)-1 from mysql.ndb_binlog_index;
|
|
|
|
delete from t1;
|
|
alter table t1 add (b int);
|
|
insert into t1 values (3,3),(4,4);
|
|
alter table t1 rename t2;
|
|
|
|
# get all in one epoch
|
|
begin;
|
|
insert into t2 values (1,1),(2,2);
|
|
update t2 set b=1 where a=3;
|
|
delete from t2 where a=4;
|
|
commit;
|
|
drop table t2;
|
|
|
|
# check that above is ok
|
|
# (save_master_pos waits for last gcp to complete, ensuring that we have
|
|
# the expected data in the binlog)
|
|
save_master_pos;
|
|
select inserts from mysql.ndb_binlog_index where epoch > @max_epoch and inserts > 5;
|
|
select deletes from mysql.ndb_binlog_index where epoch > @max_epoch and deletes > 5;
|
|
select inserts,updates,deletes from
|
|
mysql.ndb_binlog_index where epoch > @max_epoch and updates > 0;
|
|
|
|
#
|
|
# check that purge clears the ndb_binlog_index
|
|
#
|
|
# TODO: make this deterministic
|
|
# This test is disabled until we can make this determistic under load.
|
|
# The problem is that in some cases, the binlog writing thread gets
|
|
# scheduled after the purge, writes pending things, then the select
|
|
# gets scheduled
|
|
#
|
|
flush logs;
|
|
--sleep 1
|
|
purge master logs before now();
|
|
--disable_parsing
|
|
select count(*) from mysql.ndb_binlog_index;
|
|
--enable_parsing
|
|
|
|
#
|
|
# several tables in different databases
|
|
# check that same table name in different databases don't mix up
|
|
#
|
|
create table t1 (a int primary key, b int) engine=ndb;
|
|
create database mysqltest;
|
|
use mysqltest;
|
|
create table t1 (c int, d int primary key) engine=ndb;
|
|
use test;
|
|
|
|
insert into mysqltest.t1 values (2,1),(2,2);
|
|
save_master_pos;
|
|
--replace_column 1 #
|
|
select @max_epoch:=max(epoch)-1 from mysql.ndb_binlog_index;
|
|
|
|
drop table t1;
|
|
drop database mysqltest;
|
|
select inserts,updates,deletes from
|
|
mysql.ndb_binlog_index where epoch > @max_epoch and inserts > 0;
|