Merge branch 'master' into releases/tokudb-7.5
This commit is contained in:
commit
b6089fb3cd
@ -2,7 +2,7 @@ set default_storage_engine='tokudb';
|
||||
set tokudb_prelock_empty=false;
|
||||
drop table if exists t;
|
||||
create table t (id int primary key);
|
||||
select * from information_schema.tokudb_trx;
|
||||
select trx_id,trx_mysql_thread_id from information_schema.tokudb_trx;
|
||||
trx_id trx_mysql_thread_id
|
||||
select * from information_schema.tokudb_locks;
|
||||
locks_trx_id locks_mysql_thread_id locks_dname locks_key_left locks_key_right locks_table_schema locks_table_name locks_table_dictionary_name
|
||||
@ -19,7 +19,7 @@ TRX_ID MYSQL_ID ./test/t-main 0001000000 0001000000 test t main
|
||||
select * from information_schema.tokudb_lock_waits;
|
||||
requesting_trx_id blocking_trx_id lock_waits_dname lock_waits_key_left lock_waits_key_right lock_waits_start_time lock_waits_table_schema lock_waits_table_name lock_waits_table_dictionary_name
|
||||
REQUEST_TRX_ID BLOCK_TRX_ID ./test/t-main 0001000000 0001000000 LOCK_WAITS_START_TIME test t main
|
||||
select * from information_schema.tokudb_trx;
|
||||
select trx_id,trx_mysql_thread_id from information_schema.tokudb_trx;
|
||||
trx_id trx_mysql_thread_id
|
||||
TRX_ID MYSQL_ID
|
||||
TRX_ID MYSQL_ID
|
||||
@ -31,7 +31,7 @@ select * from information_schema.tokudb_lock_waits;
|
||||
requesting_trx_id blocking_trx_id lock_waits_dname lock_waits_key_left lock_waits_key_right lock_waits_start_time lock_waits_table_schema lock_waits_table_name lock_waits_table_dictionary_name
|
||||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
||||
commit;
|
||||
select * from information_schema.tokudb_trx;
|
||||
select trx_id,trx_mysql_thread_id from information_schema.tokudb_trx;
|
||||
trx_id trx_mysql_thread_id
|
||||
select * from information_schema.tokudb_locks;
|
||||
locks_trx_id locks_mysql_thread_id locks_dname locks_key_left locks_key_right locks_table_schema locks_table_name locks_table_dictionary_name
|
||||
@ -48,7 +48,7 @@ TRX_ID MYSQL_ID ./test/t-main 0001000000 0001000000 test t main
|
||||
select * from information_schema.tokudb_lock_waits;
|
||||
requesting_trx_id blocking_trx_id lock_waits_dname lock_waits_key_left lock_waits_key_right lock_waits_start_time lock_waits_table_schema lock_waits_table_name lock_waits_table_dictionary_name
|
||||
REQUEST_TRX_ID BLOCK_TRX_ID ./test/t-main 0001000000 0001000000 LOCK_WAITS_START_TIME test t main
|
||||
select * from information_schema.tokudb_trx;
|
||||
select trx_id,trx_mysql_thread_id from information_schema.tokudb_trx;
|
||||
trx_id trx_mysql_thread_id
|
||||
TRX_ID MYSQL_ID
|
||||
TRX_ID MYSQL_ID
|
||||
@ -59,7 +59,7 @@ TRX_ID MYSQL_ID ./test/t-main 0001000000 0001000000 test t main
|
||||
select * from information_schema.tokudb_lock_waits;
|
||||
requesting_trx_id blocking_trx_id lock_waits_dname lock_waits_key_left lock_waits_key_right lock_waits_start_time lock_waits_table_schema lock_waits_table_name lock_waits_table_dictionary_name
|
||||
commit;
|
||||
select * from information_schema.tokudb_trx;
|
||||
select trx_id,trx_mysql_thread_id from information_schema.tokudb_trx;
|
||||
trx_id trx_mysql_thread_id
|
||||
select * from information_schema.tokudb_locks;
|
||||
locks_trx_id locks_mysql_thread_id locks_dname locks_key_left locks_key_right locks_table_schema locks_table_name locks_table_dictionary_name
|
||||
|
@ -2,7 +2,7 @@ set default_storage_engine='tokudb';
|
||||
set tokudb_prelock_empty=false;
|
||||
drop table if exists t;
|
||||
create table t (id int primary key);
|
||||
select * from information_schema.tokudb_trx;
|
||||
select trx_id,trx_mysql_thread_id from information_schema.tokudb_trx;
|
||||
trx_id trx_mysql_thread_id
|
||||
select * from information_schema.tokudb_locks;
|
||||
locks_trx_id locks_mysql_thread_id locks_dname locks_key_left locks_key_right locks_table_schema locks_table_name locks_table_dictionary_name
|
||||
@ -19,7 +19,7 @@ TRX_ID MYSQL_ID ./test/t-main 0001000000 0001000000 test t main
|
||||
select * from information_schema.tokudb_lock_waits;
|
||||
requesting_trx_id blocking_trx_id lock_waits_dname lock_waits_key_left lock_waits_key_right lock_waits_start_time lock_waits_table_schema lock_waits_table_name lock_waits_table_dictionary_name
|
||||
REQUEST_TRX_ID BLOCK_TRX_ID ./test/t-main 0001000000 0001000000 LOCK_WAITS_START_TIME test t main
|
||||
select * from information_schema.tokudb_trx;
|
||||
select trx_id,trx_mysql_thread_id from information_schema.tokudb_trx;
|
||||
trx_id trx_mysql_thread_id
|
||||
TRX_ID MYSQL_ID
|
||||
TRX_ID MYSQL_ID
|
||||
@ -30,7 +30,7 @@ select * from information_schema.tokudb_lock_waits;
|
||||
requesting_trx_id blocking_trx_id lock_waits_dname lock_waits_key_left lock_waits_key_right lock_waits_start_time lock_waits_table_schema lock_waits_table_name lock_waits_table_dictionary_name
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
commit;
|
||||
select * from information_schema.tokudb_trx;
|
||||
select trx_id,trx_mysql_thread_id from information_schema.tokudb_trx;
|
||||
trx_id trx_mysql_thread_id
|
||||
select * from information_schema.tokudb_locks;
|
||||
locks_trx_id locks_mysql_thread_id locks_dname locks_key_left locks_key_right locks_table_schema locks_table_name locks_table_dictionary_name
|
||||
|
@ -1,23 +1,23 @@
|
||||
set default_storage_engine='tokudb';
|
||||
set tokudb_prelock_empty=false;
|
||||
drop table if exists t;
|
||||
select * from information_schema.tokudb_trx;
|
||||
select trx_id,trx_mysql_thread_id from information_schema.tokudb_trx;
|
||||
trx_id trx_mysql_thread_id
|
||||
set autocommit=0;
|
||||
create table t (id int primary key);
|
||||
insert into t values (1);
|
||||
select * from information_schema.tokudb_trx;
|
||||
select trx_id,trx_mysql_thread_id from information_schema.tokudb_trx;
|
||||
trx_id trx_mysql_thread_id
|
||||
TXN_ID_DEFAULT CLIENT_ID_DEFAULT
|
||||
commit;
|
||||
select * from information_schema.tokudb_trx;
|
||||
select trx_id,trx_mysql_thread_id from information_schema.tokudb_trx;
|
||||
trx_id trx_mysql_thread_id
|
||||
set autocommit=0;
|
||||
insert into t values (2);
|
||||
select * from information_schema.tokudb_trx;
|
||||
select trx_id,trx_mysql_thread_id from information_schema.tokudb_trx;
|
||||
trx_id trx_mysql_thread_id
|
||||
TXN_ID_A CLIENT_ID_A
|
||||
commit;
|
||||
select * from information_schema.tokudb_trx;
|
||||
select trx_id,trx_mysql_thread_id from information_schema.tokudb_trx;
|
||||
trx_id trx_mysql_thread_id
|
||||
drop table t;
|
||||
|
@ -13,7 +13,7 @@ create table t (id int primary key);
|
||||
# verify that txn_a insert (1) blocks txn_b insert (1) and txn_b gets a duplicate key error
|
||||
|
||||
# should be empty
|
||||
select * from information_schema.tokudb_trx;
|
||||
select trx_id,trx_mysql_thread_id from information_schema.tokudb_trx;
|
||||
select * from information_schema.tokudb_locks;
|
||||
select * from information_schema.tokudb_lock_waits;
|
||||
|
||||
@ -41,7 +41,7 @@ select * from information_schema.tokudb_lock_waits;
|
||||
|
||||
# should find the presence of two transactions
|
||||
replace_column 1 TRX_ID 2 MYSQL_ID;
|
||||
select * from information_schema.tokudb_trx;
|
||||
select trx_id,trx_mysql_thread_id from information_schema.tokudb_trx;
|
||||
|
||||
connection conn_a;
|
||||
commit;
|
||||
@ -63,7 +63,7 @@ disconnect conn_b;
|
||||
|
||||
# verify that the lock on the 2nd transaction has been released
|
||||
# should be be empty
|
||||
select * from information_schema.tokudb_trx;
|
||||
select trx_id,trx_mysql_thread_id from information_schema.tokudb_trx;
|
||||
select * from information_schema.tokudb_locks;
|
||||
select * from information_schema.tokudb_lock_waits;
|
||||
|
||||
@ -91,7 +91,7 @@ select * from information_schema.tokudb_lock_waits;
|
||||
|
||||
# should find the presence of two transactions
|
||||
replace_column 1 TRX_ID 2 MYSQL_ID;
|
||||
select * from information_schema.tokudb_trx;
|
||||
select trx_id,trx_mysql_thread_id from information_schema.tokudb_trx;
|
||||
|
||||
connection conn_a;
|
||||
commit;
|
||||
@ -110,7 +110,7 @@ disconnect conn_b;
|
||||
|
||||
# verify that the lock on the 2nd transaction has been released
|
||||
# should be be empty
|
||||
select * from information_schema.tokudb_trx;
|
||||
select trx_id,trx_mysql_thread_id from information_schema.tokudb_trx;
|
||||
select * from information_schema.tokudb_locks;
|
||||
select * from information_schema.tokudb_lock_waits;
|
||||
|
||||
|
@ -10,7 +10,7 @@ enable_warnings;
|
||||
create table t (id int primary key);
|
||||
|
||||
# should be empty
|
||||
select * from information_schema.tokudb_trx;
|
||||
select trx_id,trx_mysql_thread_id from information_schema.tokudb_trx;
|
||||
select * from information_schema.tokudb_locks;
|
||||
select * from information_schema.tokudb_lock_waits;
|
||||
|
||||
@ -38,7 +38,7 @@ select * from information_schema.tokudb_lock_waits;
|
||||
|
||||
# should find the presence of two transactions
|
||||
replace_column 1 TRX_ID 2 MYSQL_ID;
|
||||
select * from information_schema.tokudb_trx;
|
||||
select trx_id,trx_mysql_thread_id from information_schema.tokudb_trx;
|
||||
|
||||
connection conn_a;
|
||||
sleep 5; # sleep longer than the lock timer to force a lock timeout on txn_b
|
||||
@ -59,7 +59,7 @@ disconnect conn_a;
|
||||
disconnect conn_b;
|
||||
|
||||
# should be be empty
|
||||
select * from information_schema.tokudb_trx;
|
||||
select trx_id,trx_mysql_thread_id from information_schema.tokudb_trx;
|
||||
select * from information_schema.tokudb_locks;
|
||||
select * from information_schema.tokudb_lock_waits;
|
||||
|
||||
|
@ -8,7 +8,7 @@ drop table if exists t;
|
||||
enable_warnings;
|
||||
|
||||
# should be empty
|
||||
select * from information_schema.tokudb_trx;
|
||||
select trx_id,trx_mysql_thread_id from information_schema.tokudb_trx;
|
||||
|
||||
# should have my txn
|
||||
let $default_id=`select connection_id()`;
|
||||
@ -16,11 +16,11 @@ set autocommit=0;
|
||||
create table t (id int primary key);
|
||||
insert into t values (1);
|
||||
replace_column 1 TXN_ID_DEFAULT 2 CLIENT_ID_DEFAULT;
|
||||
eval select * from information_schema.tokudb_trx;
|
||||
eval select trx_id,trx_mysql_thread_id from information_schema.tokudb_trx;
|
||||
|
||||
# should be empty
|
||||
commit;
|
||||
select * from information_schema.tokudb_trx;
|
||||
select trx_id,trx_mysql_thread_id from information_schema.tokudb_trx;
|
||||
|
||||
connect(conn_a,localhost,root,,);
|
||||
let a_id=`select connection_id()`;
|
||||
@ -29,13 +29,13 @@ insert into t values (2);
|
||||
|
||||
connection default;
|
||||
replace_column 1 TXN_ID_A 2 CLIENT_ID_A;
|
||||
eval select * from information_schema.tokudb_trx;
|
||||
eval select trx_id,trx_mysql_thread_id from information_schema.tokudb_trx;
|
||||
connection conn_a;
|
||||
commit;
|
||||
connection default;
|
||||
|
||||
# should be empty
|
||||
select * from information_schema.tokudb_trx;
|
||||
select trx_id,trx_mysql_thread_id from information_schema.tokudb_trx;
|
||||
|
||||
disconnect conn_a;
|
||||
|
||||
|
@ -1991,7 +1991,9 @@ struct tokudb_search_txn_extra {
|
||||
uint64_t match_client_id;
|
||||
};
|
||||
|
||||
static int tokudb_search_txn_callback(uint64_t txn_id, uint64_t client_id, iterate_row_locks_callback iterate_locks, void *locks_extra, void *extra) {
|
||||
static int tokudb_search_txn_callback(DB_TXN *txn, iterate_row_locks_callback iterate_locks, void *locks_extra, void *extra) {
|
||||
uint64_t txn_id = txn->id64(txn);
|
||||
uint64_t client_id = txn->get_client_id(txn);
|
||||
struct tokudb_search_txn_extra *e = reinterpret_cast<struct tokudb_search_txn_extra *>(extra);
|
||||
if (e->match_txn_id == txn_id) {
|
||||
e->match_found = true;
|
||||
@ -2123,6 +2125,7 @@ static struct st_mysql_information_schema tokudb_trx_information_schema = { MYSQ
|
||||
static ST_FIELD_INFO tokudb_trx_field_info[] = {
|
||||
{"trx_id", 0, MYSQL_TYPE_LONGLONG, 0, 0, NULL, SKIP_OPEN_TABLE },
|
||||
{"trx_mysql_thread_id", 0, MYSQL_TYPE_LONGLONG, 0, 0, NULL, SKIP_OPEN_TABLE },
|
||||
{"trx_time", 0, MYSQL_TYPE_LONGLONG, 0, 0, NULL, SKIP_OPEN_TABLE },
|
||||
{NULL, 0, MYSQL_TYPE_NULL, 0, 0, NULL, SKIP_OPEN_TABLE}
|
||||
};
|
||||
|
||||
@ -2131,12 +2134,17 @@ struct tokudb_trx_extra {
|
||||
TABLE *table;
|
||||
};
|
||||
|
||||
static int tokudb_trx_callback(uint64_t txn_id, uint64_t client_id, iterate_row_locks_callback iterate_locks, void *locks_extra, void *extra) {
|
||||
static int tokudb_trx_callback(DB_TXN *txn, iterate_row_locks_callback iterate_locks, void *locks_extra, void *extra) {
|
||||
uint64_t txn_id = txn->id64(txn);
|
||||
uint64_t client_id = txn->get_client_id(txn);
|
||||
uint64_t start_time = txn->get_start_time(txn);
|
||||
struct tokudb_trx_extra *e = reinterpret_cast<struct tokudb_trx_extra *>(extra);
|
||||
THD *thd = e->thd;
|
||||
TABLE *table = e->table;
|
||||
table->field[0]->store(txn_id, false);
|
||||
table->field[1]->store(client_id, false);
|
||||
uint64_t tnow = (uint64_t) time(NULL);
|
||||
table->field[2]->store(tnow >= start_time ? tnow - start_time : 0, false);
|
||||
int error = schema_table_store_record(thd, table);
|
||||
if (!error && thd_killed(thd))
|
||||
error = ER_QUERY_INTERRUPTED;
|
||||
@ -2284,7 +2292,9 @@ struct tokudb_locks_extra {
|
||||
TABLE *table;
|
||||
};
|
||||
|
||||
static int tokudb_locks_callback(uint64_t txn_id, uint64_t client_id, iterate_row_locks_callback iterate_locks, void *locks_extra, void *extra) {
|
||||
static int tokudb_locks_callback(DB_TXN *txn, iterate_row_locks_callback iterate_locks, void *locks_extra, void *extra) {
|
||||
uint64_t txn_id = txn->id64(txn);
|
||||
uint64_t client_id = txn->get_client_id(txn);
|
||||
struct tokudb_locks_extra *e = reinterpret_cast<struct tokudb_locks_extra *>(extra);
|
||||
THD *thd = e->thd;
|
||||
TABLE *table = e->table;
|
||||
|
Loading…
x
Reference in New Issue
Block a user