mirror of
https://github.com/MariaDB/server.git
synced 2025-05-29 21:42:28 +03:00
102 lines
2.9 KiB
PHP
102 lines
2.9 KiB
PHP
#BUG#12662190 - COM_COMMIT IS NOT INCREMENTED FROM THE BINARY LOGS ON SLAVE, COM_BEGIN IS
|
|
#Testing command counters -BEFORE.
|
|
#Storing the before counts of Slave
|
|
connection slave;
|
|
let $slave_com_commit_before= query_get_value(SHOW GLOBAL STATUS LIKE 'com_commit', Value, 1);
|
|
let $slave_com_insert_before= query_get_value(SHOW GLOBAL STATUS LIKE 'com_insert', Value, 1);
|
|
let $slave_com_delete_before= query_get_value(SHOW GLOBAL STATUS LIKE 'com_delete', Value, 1);
|
|
let $slave_com_update_before= query_get_value(SHOW GLOBAL STATUS LIKE 'com_update', Value, 1);
|
|
|
|
connection master;
|
|
CREATE TABLE t1 (x int) with system versioning ENGINE = innodb;
|
|
insert into t1 values (1);
|
|
SELECT * FROM t1;
|
|
delete from t1;
|
|
select * from t1;
|
|
select * from t1 for system_time all;
|
|
sync_slave_with_master;
|
|
select * from t1;
|
|
select * from t1 for system_time all;
|
|
|
|
connection master;
|
|
insert into t1 values (2);
|
|
sync_slave_with_master;
|
|
select * from t1;
|
|
|
|
connection master;
|
|
update t1 set x = 3;
|
|
sync_slave_with_master;
|
|
select * from t1;
|
|
select * from t1 for system_time all;
|
|
|
|
# check unversioned -> versioned replication
|
|
connection master;
|
|
create or replace table t1 (x int primary key) engine = innodb;
|
|
sync_slave_with_master;
|
|
alter table t1 with system versioning;
|
|
|
|
connection master;
|
|
insert into t1 values (1);
|
|
update t1 set x= 2 where x = 1;
|
|
sync_slave_with_master;
|
|
select * from t1;
|
|
select * from t1 for system_time all;
|
|
|
|
connection master;
|
|
delete from t1;
|
|
sync_slave_with_master;
|
|
select * from t1;
|
|
select * from t1 for system_time all;
|
|
|
|
# same thing (UPDATE, DELETE), but without PK
|
|
connection master;
|
|
create or replace table t1 (x int) engine = innodb;
|
|
sync_slave_with_master;
|
|
alter table t1 with system versioning;
|
|
|
|
connection master;
|
|
insert into t1 values (1);
|
|
update t1 set x= 2 where x = 1;
|
|
sync_slave_with_master;
|
|
select * from t1;
|
|
select * from t1 for system_time all;
|
|
|
|
connection master;
|
|
delete from t1;
|
|
sync_slave_with_master;
|
|
select * from t1;
|
|
select * from t1 for system_time all;
|
|
|
|
# same thing, but reverse: versioned -> unversioned
|
|
connection master;
|
|
create or replace table t1 (x int primary key) with system versioning engine = innodb;
|
|
sync_slave_with_master;
|
|
alter table t1 without system versioning;
|
|
|
|
connection master;
|
|
insert into t1 values (1);
|
|
update t1 set x= 2 where x = 1;
|
|
select * from t1 for system_time all;
|
|
sync_slave_with_master;
|
|
select * from t1;
|
|
|
|
connection master;
|
|
delete from t1;
|
|
select * from t1 for system_time all;
|
|
sync_slave_with_master;
|
|
select * from t1;
|
|
|
|
# at this point in this particular test master and slave have different curr_trx_id
|
|
# and the same rows have different sys_trx_start
|
|
# slave should ignore sys_trx_start while searching for a record to update in a InnoDB table
|
|
connection master;
|
|
create or replace table t1 (a int) with system versioning engine = innodb;
|
|
insert into t1 values (1);
|
|
update t1 set a=2;
|
|
select * from t1 for system_time all;
|
|
sync_slave_with_master;
|
|
select * from t1 for system_time all;
|
|
|
|
connection master;
|
|
drop table t1;
|