diff options
author | Aleksey Midenkov <midenok@gmail.com> | 2017-12-18 19:03:51 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-12-18 19:03:51 +0300 |
commit | b55a149194e7f73b5ceb35a0a5d5fb575a8ba586 (patch) | |
tree | 5586c3cbb6189f5823bb71e983eb381f6769fda8 /mysql-test/suite/versioning/common.inc | |
parent | d5e37621cf1dd2fe1a1226992be05ca57d595b79 (diff) | |
download | mariadb-git-b55a149194e7f73b5ceb35a0a5d5fb575a8ba586.tar.gz |
Timestamp-based versioning for InnoDB [closes #209]
* Removed integer_fields check
* Reworked Vers_parse_info::check_sys_fields()
* Misc renames
* versioned as vers_sys_type_t
* Removed versioned_by_sql(), versioned_by_engine()
versioned() works as before;
versioned(VERS_TIMESTAMP) is versioned_by_sql();
versioned(VERS_TRX_ID) is versioned_by_engine().
* create_tmp_table() fix
* Foreign constraints for timestamp-based
* Range auto-specifier fix
* SQL: 1-row partition rotation fix [fixes #260]
* Fix 'drop system versioning, algorithm=inplace'
Diffstat (limited to 'mysql-test/suite/versioning/common.inc')
-rw-r--r-- | mysql-test/suite/versioning/common.inc | 52 |
1 files changed, 32 insertions, 20 deletions
diff --git a/mysql-test/suite/versioning/common.inc b/mysql-test/suite/versioning/common.inc index 18dbd550135..cbc515241b0 100644 --- a/mysql-test/suite/versioning/common.inc +++ b/mysql-test/suite/versioning/common.inc @@ -57,12 +57,9 @@ create function if not exists current_row(sys_trx_end varbinary(255)) returns int deterministic begin - if default_engine() = 'InnoDB' then - return sys_trx_end = 18446744073709551615; - elseif default_engine() = 'MyISAM' then - return sys_trx_end = timestamp'2038-01-19 03:14:07.999999'; - end if; - return NULL; + declare continue handler for sqlwarning begin end; + return sys_trx_end = timestamp'2038-01-19 03:14:07.999999' + or sys_trx_end = 18446744073709551615; end~~ create function if not exists sys_commit_ts(sys_field varchar(255)) @@ -77,20 +74,16 @@ begin return NULL; end~~ -create procedure if not exists innodb_verify_vtq(recs int) +create procedure if not exists verify_vtq_dummy(recs int) begin declare i int default 1; - if default_engine() = 'InnoDB' then - call verify_vtq; - elseif default_engine() = 'MyISAM' then - create temporary table tmp (No int, A bool, B bool, C bool, D bool); - while i <= recs do - insert into tmp values (i, 1, 1, 1, 1); - set i= i + 1; - end while; - select * from tmp; - drop table tmp; - end if; + create temporary table tmp (No int, A bool, B bool, C bool, D bool); + while i <= recs do + insert into tmp values (i, 1, 1, 1, 1); + set i= i + 1; + end while; + select * from tmp; + drop table tmp; end~~ create procedure concat_exec2(a varchar(255), b varchar(255)) @@ -110,6 +103,25 @@ delimiter ;~~ let $default_engine= `select default_engine()`; let $non_default_engine= `select non_default_engine()`; -let $sys_datatype= `select sys_datatype(default_engine())`; -let $sys_datatype_uc= `select upper(sys_datatype(default_engine()))`; +let $sys_datatype= timestamp(6); +let $sys_datatype_expl= timestamp(6); +let $sys_datatype_uc= TIMESTAMP(6); +let $sys_datatype_expl_uc= TIMESTAMP(6); + +let $non_sys_datatype= `select sys_datatype(non_default_engine())`; +let $non_sys_datatype_uc= `select upper(sys_datatype(non_default_engine()))`; +let $sys_datatype_null= $sys_datatype NULL DEFAULT NULL; +let $sys_datatype_default_null= $sys_datatype DEFAULT NULL; +let $sys_datatype_not_null= $sys_datatype NOT NULL DEFAULT '0000-00-00 00:00:00.000000'; +let $non_sys_datatype_null= $non_sys_datatype NULL; + +if ($MTR_COMBINATION_MYISAM) +{ + --let $MTR_COMBINATION_TIMESTAMP= 1 +} +if ($MTR_COMBINATION_TRX_ID) +{ + let $sys_datatype_expl= bigint(20) unsigned; + let $sys_datatype_expl_uc= BIGINT(20) UNSIGNED; +} --enable_query_log |