mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
Merge pull request #847 from tempesta-tech/tt-10.3-MDEV-16211
MDEV-16211 Contents of transaction_registry should not be replicated by Galera
This commit is contained in:
commit
15c7225a08
7 changed files with 88 additions and 0 deletions
52
mysql-test/suite/galera/r/versioning_trx_id.result
Normal file
52
mysql-test/suite/galera/r/versioning_trx_id.result
Normal file
|
@ -0,0 +1,52 @@
|
|||
connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3;
|
||||
connection node_1;
|
||||
create table t1 (a int, s bigint unsigned as row start, e bigint unsigned as row end, period for system_time(s,e)) engine=InnoDB with system versioning;
|
||||
insert into t1 (a) values (1),(2);
|
||||
connection node_2;
|
||||
insert into t1 (a) values (3),(4);
|
||||
select a from t1;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
select count(*) from mysql.transaction_registry where begin_timestamp='0-0-0';
|
||||
count(*)
|
||||
0
|
||||
select count(*) from mysql.transaction_registry where begin_timestamp>=commit_timestamp;
|
||||
count(*)
|
||||
0
|
||||
connection node_3;
|
||||
insert into t1 (a) values (5),(6);
|
||||
select a from t1;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
select count(*) from mysql.transaction_registry where begin_timestamp='0-0-0';
|
||||
count(*)
|
||||
0
|
||||
select count(*) from mysql.transaction_registry where begin_timestamp>=commit_timestamp;
|
||||
count(*)
|
||||
0
|
||||
connection node_1;
|
||||
select a from t1;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
select count(*) from mysql.transaction_registry where begin_timestamp='0-0-0';
|
||||
count(*)
|
||||
0
|
||||
select count(*) from mysql.transaction_registry where begin_timestamp>=commit_timestamp;
|
||||
count(*)
|
||||
0
|
||||
drop table t1;
|
||||
disconnect node_2;
|
||||
disconnect node_1;
|
1
mysql-test/suite/galera/t/versioning_trx_id.cnf
Normal file
1
mysql-test/suite/galera/t/versioning_trx_id.cnf
Normal file
|
@ -0,0 +1 @@
|
|||
!include ../galera_4nodes.cnf
|
28
mysql-test/suite/galera/t/versioning_trx_id.test
Normal file
28
mysql-test/suite/galera/t/versioning_trx_id.test
Normal file
|
@ -0,0 +1,28 @@
|
|||
--source include/galera_cluster.inc
|
||||
|
||||
--connect node_3, 127.0.0.1, root, , test, $NODE_MYPORT_3
|
||||
|
||||
--connection node_1
|
||||
create table t1 (a int, s bigint unsigned as row start, e bigint unsigned as row end, period for system_time(s,e)) engine=InnoDB with system versioning;
|
||||
insert into t1 (a) values (1),(2);
|
||||
|
||||
--connection node_2
|
||||
insert into t1 (a) values (3),(4);
|
||||
select a from t1;
|
||||
select count(*) from mysql.transaction_registry where begin_timestamp='0-0-0';
|
||||
select count(*) from mysql.transaction_registry where begin_timestamp>=commit_timestamp;
|
||||
|
||||
--connection node_3
|
||||
insert into t1 (a) values (5),(6);
|
||||
select a from t1;
|
||||
select count(*) from mysql.transaction_registry where begin_timestamp='0-0-0';
|
||||
select count(*) from mysql.transaction_registry where begin_timestamp>=commit_timestamp;
|
||||
|
||||
--connection node_1
|
||||
select a from t1;
|
||||
select count(*) from mysql.transaction_registry where begin_timestamp='0-0-0';
|
||||
select count(*) from mysql.transaction_registry where begin_timestamp>=commit_timestamp;
|
||||
|
||||
drop table t1;
|
||||
|
||||
--source include/galera_end.inc
|
|
@ -475,3 +475,6 @@ COUNT(*)
|
|||
1
|
||||
DROP TABLE t;
|
||||
SET @@SYSTEM_VERSIONING_ALTER_HISTORY=ERROR;
|
||||
SELECT count(*) from mysql.transaction_registry where begin_timestamp>=commit_timestamp;
|
||||
count(*)
|
||||
0
|
||||
|
|
|
@ -492,3 +492,5 @@ SELECT COUNT(*) FROM t FOR SYSTEM_TIME ALL;
|
|||
|
||||
DROP TABLE t;
|
||||
SET @@SYSTEM_VERSIONING_ALTER_HISTORY=ERROR;
|
||||
|
||||
SELECT count(*) from mysql.transaction_registry where begin_timestamp>=commit_timestamp;
|
||||
|
|
|
@ -8763,6 +8763,7 @@ bool TR_table::update(ulonglong start_id, ulonglong end_id)
|
|||
return true;
|
||||
|
||||
store(FLD_BEGIN_TS, thd->transaction_time());
|
||||
thd->set_time();
|
||||
timeval end_time= {thd->query_start(), long(thd->query_start_sec_part())};
|
||||
store(FLD_TRX_ID, start_id);
|
||||
store(FLD_COMMIT_ID, end_id);
|
||||
|
|
|
@ -146,6 +146,7 @@ static wsrep_cb_status_t wsrep_apply_events(THD* thd,
|
|||
/* Use the original server id for logging. */
|
||||
thd->set_server_id(ev->server_id);
|
||||
thd->set_time(); // time the query
|
||||
thd->transaction.start_time.reset(thd);
|
||||
wsrep_xid_init(&thd->transaction.xid_state.xid,
|
||||
thd->wsrep_trx_meta.gtid.uuid,
|
||||
thd->wsrep_trx_meta.gtid.seqno);
|
||||
|
|
Loading…
Reference in a new issue