summaryrefslogtreecommitdiff
path: root/mysql-test/suite/versioning/common.inc
diff options
context:
space:
mode:
authorAleksey Midenkov <midenok@gmail.com>2017-12-18 19:03:51 +0300
committerGitHub <noreply@github.com>2017-12-18 19:03:51 +0300
commitb55a149194e7f73b5ceb35a0a5d5fb575a8ba586 (patch)
tree5586c3cbb6189f5823bb71e983eb381f6769fda8 /mysql-test/suite/versioning/common.inc
parentd5e37621cf1dd2fe1a1226992be05ca57d595b79 (diff)
downloadmariadb-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.inc52
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