diff --git a/mysql-test/suite/versioning/common.inc b/mysql-test/suite/versioning/common.inc index d9f83f5fea9..288c188c43d 100644 --- a/mysql-test/suite/versioning/common.inc +++ b/mysql-test/suite/versioning/common.inc @@ -1,5 +1,5 @@ set @@session.time_zone='+00:00'; -select ifnull(max(trx_id), 0) into @start_trx_id from information_schema.innodb_vtq; +select ifnull(max(transaction_id), 0) into @start_trx_id from information_schema.innodb_vtq; delimiter ~~; create procedure if not exists verify_vtq() @@ -7,13 +7,13 @@ begin set @i= 0; select @i:= @i + 1 as No, - trx_id > 0 as A, - commit_id > trx_id as B, - begin_ts > '1-1-1 0:0:0' as C, - commit_ts >= begin_ts as D + transaction_id > 0 as A, + commit_id > transaction_id as B, + begin_timestamp > '1-1-1 0:0:0' as C, + commit_timestamp >= begin_timestamp as D from information_schema.innodb_vtq - where trx_id > @start_trx_id; - select ifnull(max(trx_id), 0) + where transaction_id > @start_trx_id; + select ifnull(max(transaction_id), 0) into @start_trx_id from information_schema.innodb_vtq; end~~ diff --git a/mysql-test/suite/versioning/r/alter.result b/mysql-test/suite/versioning/r/alter.result index 924560c3a6e..5dff4e706cb 100644 --- a/mysql-test/suite/versioning/r/alter.result +++ b/mysql-test/suite/versioning/r/alter.result @@ -251,19 +251,19 @@ t CREATE TABLE `t` ( PERIOD FOR SYSTEM_TIME (`sys_trx_start`, `sys_trx_end`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 WITH SYSTEM VERSIONING set @@session.time_zone='+00:00'; -select ifnull(max(trx_id), 0) into @start_trx_id from information_schema.innodb_vtq; +select ifnull(max(transaction_id), 0) into @start_trx_id from information_schema.innodb_vtq; create procedure if not exists verify_vtq() begin set @i= 0; select @i:= @i + 1 as No, -trx_id > 0 as A, -commit_id > trx_id as B, -begin_ts > '1-1-1 0:0:0' as C, -commit_ts >= begin_ts as D +transaction_id > 0 as A, +commit_id > transaction_id as B, +begin_timestamp > '1-1-1 0:0:0' as C, +commit_timestamp >= begin_timestamp as D from information_schema.innodb_vtq -where trx_id > @start_trx_id; -select ifnull(max(trx_id), 0) +where transaction_id > @start_trx_id; +select ifnull(max(transaction_id), 0) into @start_trx_id from information_schema.innodb_vtq; end~~ diff --git a/mysql-test/suite/versioning/r/auto_increment.result b/mysql-test/suite/versioning/r/auto_increment.result index e9e487c40a3..31604a62740 100644 --- a/mysql-test/suite/versioning/r/auto_increment.result +++ b/mysql-test/suite/versioning/r/auto_increment.result @@ -1,17 +1,17 @@ set @@session.time_zone='+00:00'; -select ifnull(max(trx_id), 0) into @start_trx_id from information_schema.innodb_vtq; +select ifnull(max(transaction_id), 0) into @start_trx_id from information_schema.innodb_vtq; create procedure if not exists verify_vtq() begin set @i= 0; select @i:= @i + 1 as No, -trx_id > 0 as A, -commit_id > trx_id as B, -begin_ts > '1-1-1 0:0:0' as C, -commit_ts >= begin_ts as D +transaction_id > 0 as A, +commit_id > transaction_id as B, +begin_timestamp > '1-1-1 0:0:0' as C, +commit_timestamp >= begin_timestamp as D from information_schema.innodb_vtq -where trx_id > @start_trx_id; -select ifnull(max(trx_id), 0) +where transaction_id > @start_trx_id; +select ifnull(max(transaction_id), 0) into @start_trx_id from information_schema.innodb_vtq; end~~ diff --git a/mysql-test/suite/versioning/r/commit_id.result b/mysql-test/suite/versioning/r/commit_id.result index 543840df1f8..a9de17cb74c 100644 --- a/mysql-test/suite/versioning/r/commit_id.result +++ b/mysql-test/suite/versioning/r/commit_id.result @@ -1,17 +1,17 @@ set @@session.time_zone='+00:00'; -select ifnull(max(trx_id), 0) into @start_trx_id from information_schema.innodb_vtq; +select ifnull(max(transaction_id), 0) into @start_trx_id from information_schema.innodb_vtq; create procedure if not exists verify_vtq() begin set @i= 0; select @i:= @i + 1 as No, -trx_id > 0 as A, -commit_id > trx_id as B, -begin_ts > '1-1-1 0:0:0' as C, -commit_ts >= begin_ts as D +transaction_id > 0 as A, +commit_id > transaction_id as B, +begin_timestamp > '1-1-1 0:0:0' as C, +commit_timestamp >= begin_timestamp as D from information_schema.innodb_vtq -where trx_id > @start_trx_id; -select ifnull(max(trx_id), 0) +where transaction_id > @start_trx_id; +select ifnull(max(transaction_id), 0) into @start_trx_id from information_schema.innodb_vtq; end~~ @@ -68,20 +68,20 @@ insert into t1 values (); set @ts0= now(6); insert into t1 values (); select sys_trx_start from t1 where id = last_insert_id() into @tx0; -select trx_id = @tx0 from information_schema.innodb_vtq limit 1; -trx_id = @tx0 +select transaction_id = @tx0 from information_schema.innodb_vtq limit 1; +transaction_id = @tx0 1 set @ts1= now(6); insert into t1 values (); select sys_trx_start from t1 where id = last_insert_id() into @tx1; -select trx_id = @tx1 from information_schema.innodb_vtq limit 1; -trx_id = @tx1 +select transaction_id = @tx1 from information_schema.innodb_vtq limit 1; +transaction_id = @tx1 1 set @ts2= now(6); insert into t1 values (); select sys_trx_start from t1 where id = last_insert_id() into @tx2; -select trx_id = @tx2 from information_schema.innodb_vtq limit 1; -trx_id = @tx2 +select transaction_id = @tx2 from information_schema.innodb_vtq limit 1; +transaction_id = @tx2 1 set @ts3= now(6); select @@ -119,26 +119,26 @@ A B C D E F H set transaction isolation level read uncommitted; insert into t1 values (); select sys_trx_start from t1 where id = last_insert_id() into @tx3; -select iso_level = 'RU' from information_schema.innodb_vtq where trx_id = @tx3; -iso_level = 'RU' +select isolation_level = 'READ-UNCOMMITTED' from information_schema.innodb_vtq where transaction_id = @tx3; +isolation_level = 'READ-UNCOMMITTED' 1 set transaction isolation level read committed; insert into t1 values (); select sys_trx_start from t1 where id = last_insert_id() into @tx4; -select iso_level = 'RC' from information_schema.innodb_vtq where trx_id = @tx4; -iso_level = 'RC' +select isolation_level = 'READ-COMMITTED' from information_schema.innodb_vtq where transaction_id = @tx4; +isolation_level = 'READ-COMMITTED' 1 set transaction isolation level serializable; insert into t1 values (); select sys_trx_start from t1 where id = last_insert_id() into @tx5; -select iso_level = 'S' from information_schema.innodb_vtq where trx_id = @tx5; -iso_level = 'S' +select isolation_level = 'SERIALIZABLE' from information_schema.innodb_vtq where transaction_id = @tx5; +isolation_level = 'SERIALIZABLE' 1 set transaction isolation level repeatable read; insert into t1 values (); select sys_trx_start from t1 where id = last_insert_id() into @tx6; -select iso_level = 'RR' from information_schema.innodb_vtq where trx_id = @tx6; -iso_level = 'RR' +select isolation_level = 'REPEATABLE-READ' from information_schema.innodb_vtq where transaction_id = @tx6; +isolation_level = 'REPEATABLE-READ' 1 drop table t1; call verify_vtq; diff --git a/mysql-test/suite/versioning/r/create.result b/mysql-test/suite/versioning/r/create.result index e4341223ef5..97e2a336513 100644 --- a/mysql-test/suite/versioning/r/create.result +++ b/mysql-test/suite/versioning/r/create.result @@ -1,17 +1,17 @@ set @@session.time_zone='+00:00'; -select ifnull(max(trx_id), 0) into @start_trx_id from information_schema.innodb_vtq; +select ifnull(max(transaction_id), 0) into @start_trx_id from information_schema.innodb_vtq; create procedure if not exists verify_vtq() begin set @i= 0; select @i:= @i + 1 as No, -trx_id > 0 as A, -commit_id > trx_id as B, -begin_ts > '1-1-1 0:0:0' as C, -commit_ts >= begin_ts as D +transaction_id > 0 as A, +commit_id > transaction_id as B, +begin_timestamp > '1-1-1 0:0:0' as C, +commit_timestamp >= begin_timestamp as D from information_schema.innodb_vtq -where trx_id > @start_trx_id; -select ifnull(max(trx_id), 0) +where transaction_id > @start_trx_id; +select ifnull(max(transaction_id), 0) into @start_trx_id from information_schema.innodb_vtq; end~~ diff --git a/mysql-test/suite/versioning/r/ddl.result b/mysql-test/suite/versioning/r/ddl.result index 36998f7bc98..23e8c6d6dc5 100644 --- a/mysql-test/suite/versioning/r/ddl.result +++ b/mysql-test/suite/versioning/r/ddl.result @@ -1,17 +1,17 @@ set @@session.time_zone='+00:00'; -select ifnull(max(trx_id), 0) into @start_trx_id from information_schema.innodb_vtq; +select ifnull(max(transaction_id), 0) into @start_trx_id from information_schema.innodb_vtq; create procedure if not exists verify_vtq() begin set @i= 0; select @i:= @i + 1 as No, -trx_id > 0 as A, -commit_id > trx_id as B, -begin_ts > '1-1-1 0:0:0' as C, -commit_ts >= begin_ts as D +transaction_id > 0 as A, +commit_id > transaction_id as B, +begin_timestamp > '1-1-1 0:0:0' as C, +commit_timestamp >= begin_timestamp as D from information_schema.innodb_vtq -where trx_id > @start_trx_id; -select ifnull(max(trx_id), 0) +where transaction_id > @start_trx_id; +select ifnull(max(transaction_id), 0) into @start_trx_id from information_schema.innodb_vtq; end~~ diff --git a/mysql-test/suite/versioning/r/delete.result b/mysql-test/suite/versioning/r/delete.result index 2c5e4138c00..354543bf0ab 100644 --- a/mysql-test/suite/versioning/r/delete.result +++ b/mysql-test/suite/versioning/r/delete.result @@ -1,17 +1,17 @@ set @@session.time_zone='+00:00'; -select ifnull(max(trx_id), 0) into @start_trx_id from information_schema.innodb_vtq; +select ifnull(max(transaction_id), 0) into @start_trx_id from information_schema.innodb_vtq; create procedure if not exists verify_vtq() begin set @i= 0; select @i:= @i + 1 as No, -trx_id > 0 as A, -commit_id > trx_id as B, -begin_ts > '1-1-1 0:0:0' as C, -commit_ts >= begin_ts as D +transaction_id > 0 as A, +commit_id > transaction_id as B, +begin_timestamp > '1-1-1 0:0:0' as C, +commit_timestamp >= begin_timestamp as D from information_schema.innodb_vtq -where trx_id > @start_trx_id; -select ifnull(max(trx_id), 0) +where transaction_id > @start_trx_id; +select ifnull(max(transaction_id), 0) into @start_trx_id from information_schema.innodb_vtq; end~~ diff --git a/mysql-test/suite/versioning/r/insert.result b/mysql-test/suite/versioning/r/insert.result index 0332018ff9b..e6cf8954f26 100644 --- a/mysql-test/suite/versioning/r/insert.result +++ b/mysql-test/suite/versioning/r/insert.result @@ -1,17 +1,17 @@ set @@session.time_zone='+00:00'; -select ifnull(max(trx_id), 0) into @start_trx_id from information_schema.innodb_vtq; +select ifnull(max(transaction_id), 0) into @start_trx_id from information_schema.innodb_vtq; create procedure if not exists verify_vtq() begin set @i= 0; select @i:= @i + 1 as No, -trx_id > 0 as A, -commit_id > trx_id as B, -begin_ts > '1-1-1 0:0:0' as C, -commit_ts >= begin_ts as D +transaction_id > 0 as A, +commit_id > transaction_id as B, +begin_timestamp > '1-1-1 0:0:0' as C, +commit_timestamp >= begin_timestamp as D from information_schema.innodb_vtq -where trx_id > @start_trx_id; -select ifnull(max(trx_id), 0) +where transaction_id > @start_trx_id; +select ifnull(max(transaction_id), 0) into @start_trx_id from information_schema.innodb_vtq; end~~ diff --git a/mysql-test/suite/versioning/r/partition.result b/mysql-test/suite/versioning/r/partition.result index 8daefaeff85..a2aab637f31 100644 --- a/mysql-test/suite/versioning/r/partition.result +++ b/mysql-test/suite/versioning/r/partition.result @@ -1,17 +1,17 @@ set @@session.time_zone='+00:00'; -select ifnull(max(trx_id), 0) into @start_trx_id from information_schema.innodb_vtq; +select ifnull(max(transaction_id), 0) into @start_trx_id from information_schema.innodb_vtq; create procedure if not exists verify_vtq() begin set @i= 0; select @i:= @i + 1 as No, -trx_id > 0 as A, -commit_id > trx_id as B, -begin_ts > '1-1-1 0:0:0' as C, -commit_ts >= begin_ts as D +transaction_id > 0 as A, +commit_id > transaction_id as B, +begin_timestamp > '1-1-1 0:0:0' as C, +commit_timestamp >= begin_timestamp as D from information_schema.innodb_vtq -where trx_id > @start_trx_id; -select ifnull(max(trx_id), 0) +where transaction_id > @start_trx_id; +select ifnull(max(transaction_id), 0) into @start_trx_id from information_schema.innodb_vtq; end~~ diff --git a/mysql-test/suite/versioning/r/select.result b/mysql-test/suite/versioning/r/select.result index d6a471506ee..39a5880250a 100644 --- a/mysql-test/suite/versioning/r/select.result +++ b/mysql-test/suite/versioning/r/select.result @@ -1,17 +1,17 @@ set @@session.time_zone='+00:00'; -select ifnull(max(trx_id), 0) into @start_trx_id from information_schema.innodb_vtq; +select ifnull(max(transaction_id), 0) into @start_trx_id from information_schema.innodb_vtq; create procedure if not exists verify_vtq() begin set @i= 0; select @i:= @i + 1 as No, -trx_id > 0 as A, -commit_id > trx_id as B, -begin_ts > '1-1-1 0:0:0' as C, -commit_ts >= begin_ts as D +transaction_id > 0 as A, +commit_id > transaction_id as B, +begin_timestamp > '1-1-1 0:0:0' as C, +commit_timestamp >= begin_timestamp as D from information_schema.innodb_vtq -where trx_id > @start_trx_id; -select ifnull(max(trx_id), 0) +where transaction_id > @start_trx_id; +select ifnull(max(transaction_id), 0) into @start_trx_id from information_schema.innodb_vtq; end~~ diff --git a/mysql-test/suite/versioning/r/update.result b/mysql-test/suite/versioning/r/update.result index 3c62fa0a14b..48b3eec3c3d 100644 --- a/mysql-test/suite/versioning/r/update.result +++ b/mysql-test/suite/versioning/r/update.result @@ -1,17 +1,17 @@ set @@session.time_zone='+00:00'; -select ifnull(max(trx_id), 0) into @start_trx_id from information_schema.innodb_vtq; +select ifnull(max(transaction_id), 0) into @start_trx_id from information_schema.innodb_vtq; create procedure if not exists verify_vtq() begin set @i= 0; select @i:= @i + 1 as No, -trx_id > 0 as A, -commit_id > trx_id as B, -begin_ts > '1-1-1 0:0:0' as C, -commit_ts >= begin_ts as D +transaction_id > 0 as A, +commit_id > transaction_id as B, +begin_timestamp > '1-1-1 0:0:0' as C, +commit_timestamp >= begin_timestamp as D from information_schema.innodb_vtq -where trx_id > @start_trx_id; -select ifnull(max(trx_id), 0) +where transaction_id > @start_trx_id; +select ifnull(max(transaction_id), 0) into @start_trx_id from information_schema.innodb_vtq; end~~ diff --git a/mysql-test/suite/versioning/t/commit_id.test b/mysql-test/suite/versioning/t/commit_id.test index efecf55c143..fa44958470c 100644 --- a/mysql-test/suite/versioning/t/commit_id.test +++ b/mysql-test/suite/versioning/t/commit_id.test @@ -13,17 +13,17 @@ insert into t1 values (); set @ts0= now(6); insert into t1 values (); select sys_trx_start from t1 where id = last_insert_id() into @tx0; -select trx_id = @tx0 from information_schema.innodb_vtq limit 1; +select transaction_id = @tx0 from information_schema.innodb_vtq limit 1; set @ts1= now(6); insert into t1 values (); select sys_trx_start from t1 where id = last_insert_id() into @tx1; -select trx_id = @tx1 from information_schema.innodb_vtq limit 1; +select transaction_id = @tx1 from information_schema.innodb_vtq limit 1; set @ts2= now(6); insert into t1 values (); select sys_trx_start from t1 where id = last_insert_id() into @tx2; -select trx_id = @tx2 from information_schema.innodb_vtq limit 1; +select transaction_id = @tx2 from information_schema.innodb_vtq limit 1; set @ts3= now(6); @@ -62,22 +62,22 @@ select set transaction isolation level read uncommitted; insert into t1 values (); select sys_trx_start from t1 where id = last_insert_id() into @tx3; -select iso_level = 'RU' from information_schema.innodb_vtq where trx_id = @tx3; +select isolation_level = 'READ-UNCOMMITTED' from information_schema.innodb_vtq where transaction_id = @tx3; set transaction isolation level read committed; insert into t1 values (); select sys_trx_start from t1 where id = last_insert_id() into @tx4; -select iso_level = 'RC' from information_schema.innodb_vtq where trx_id = @tx4; +select isolation_level = 'READ-COMMITTED' from information_schema.innodb_vtq where transaction_id = @tx4; set transaction isolation level serializable; insert into t1 values (); select sys_trx_start from t1 where id = last_insert_id() into @tx5; -select iso_level = 'S' from information_schema.innodb_vtq where trx_id = @tx5; +select isolation_level = 'SERIALIZABLE' from information_schema.innodb_vtq where transaction_id = @tx5; set transaction isolation level repeatable read; insert into t1 values (); select sys_trx_start from t1 where id = last_insert_id() into @tx6; -select iso_level = 'RR' from information_schema.innodb_vtq where trx_id = @tx6; +select isolation_level = 'REPEATABLE-READ' from information_schema.innodb_vtq where transaction_id = @tx6; drop table t1; diff --git a/storage/innobase/handler/i_s.cc b/storage/innobase/handler/i_s.cc index 436cea7fe4b..b7f24d34de5 100644 --- a/storage/innobase/handler/i_s.cc +++ b/storage/innobase/handler/i_s.cc @@ -9661,7 +9661,7 @@ UNIV_INTERN struct st_maria_plugin i_s_innodb_sys_semaphore_waits = static ST_FIELD_INFO innodb_vtq_fields_info[] = { #define SYS_VTQ_TRX_ID 0 - { STRUCT_FLD(field_name, "trx_id"), + { STRUCT_FLD(field_name, "transaction_id"), STRUCT_FLD(field_length, MY_INT64_NUM_DECIMAL_DIGITS), STRUCT_FLD(field_type, MYSQL_TYPE_LONGLONG), STRUCT_FLD(value, 0), @@ -9679,7 +9679,7 @@ static ST_FIELD_INFO innodb_vtq_fields_info[] = STRUCT_FLD(open_method, SKIP_OPEN_TABLE) }, #define SYS_VTQ_BEGIN_TS 2 - { STRUCT_FLD(field_name, "begin_ts"), + { STRUCT_FLD(field_name, "begin_timestamp"), STRUCT_FLD(field_length, 6), STRUCT_FLD(field_type, MYSQL_TYPE_TIMESTAMP), STRUCT_FLD(value, 0), @@ -9688,7 +9688,7 @@ static ST_FIELD_INFO innodb_vtq_fields_info[] = STRUCT_FLD(open_method, SKIP_OPEN_TABLE) }, #define SYS_VTQ_COMMIT_TS 3 - { STRUCT_FLD(field_name, "commit_ts"), + { STRUCT_FLD(field_name, "commit_timestamp"), STRUCT_FLD(field_length, 6), STRUCT_FLD(field_type, MYSQL_TYPE_TIMESTAMP), STRUCT_FLD(value, 0), @@ -9697,8 +9697,8 @@ static ST_FIELD_INFO innodb_vtq_fields_info[] = STRUCT_FLD(open_method, SKIP_OPEN_TABLE) }, #define SYS_VTQ_ISO_LEVEL 4 - { STRUCT_FLD(field_name, "iso_level"), - STRUCT_FLD(field_length, 2), + { STRUCT_FLD(field_name, "isolation_level"), + STRUCT_FLD(field_length, 16), STRUCT_FLD(field_type, MYSQL_TYPE_STRING), STRUCT_FLD(value, 0), STRUCT_FLD(field_flags, 0), @@ -9708,6 +9708,39 @@ static ST_FIELD_INFO innodb_vtq_fields_info[] = END_OF_ST_FIELD_INFO }; +/******************************************************************//** +Maps a InnoDB trx isolation level code to the MySQL isolation level name +@return MySQL isolation level name */ +static inline +const char* +i_s_isolation_name( +/*=========================*/ + ulint iso) /*!< in: InnoDB isolation level code */ +{ + enum_tx_isolation mysql_iso; + + switch (iso) { + case TRX_ISO_REPEATABLE_READ: + mysql_iso = ISO_REPEATABLE_READ; + break; + case TRX_ISO_READ_COMMITTED: + mysql_iso = ISO_READ_COMMITTED; + break; + case TRX_ISO_SERIALIZABLE: + mysql_iso = ISO_SERIALIZABLE; + break; + case TRX_ISO_READ_UNCOMMITTED: + mysql_iso = ISO_READ_UNCOMMITTED; + break; + default: + ut_error; + return NULL; + } + + return tx_isolation_names[mysql_iso]; +} + + /**********************************************************************//** Function to fill INFORMATION_SCHEMA.INNODB_SYS_VTQ with information collected by scanning SYS_VTQ table. @@ -9726,20 +9759,7 @@ i_s_dict_fill_vtq( DBUG_ENTER("i_s_dict_fill_vtq"); fields = table_to_fill->field; - switch (vtq.iso_level) { - case TRX_ISO_REPEATABLE_READ: - iso_level = "RR"; - break; - case TRX_ISO_READ_COMMITTED: - iso_level = "RC"; - break; - case TRX_ISO_SERIALIZABLE: - iso_level = "S"; - break; - case TRX_ISO_READ_UNCOMMITTED: - iso_level = "RU"; - break; - } + iso_level = i_s_isolation_name(vtq.iso_level); OK(field_store_ullong(fields[SYS_VTQ_TRX_ID], vtq.trx_id)); OK(field_store_ullong(fields[SYS_VTQ_COMMIT_ID], vtq.commit_id));