mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 04:22:27 +01:00
75b7cd680b
A few regression tests invoke heavy flushing of the buffer pool and may trigger warnings that tablespaces could not be deleted because of pending writes. Those warnings are to be expected during the execution of such tests. The warnings are also frequently seen with Valgrind or MemorySanitizer. For those, the global suppression in have_innodb.inc does the trick.
110 lines
2.8 KiB
C++
110 lines
2.8 KiB
C++
if (!$TEST_VERSIONING_SO)
|
|
{
|
|
--skip needs test_versioning plugin
|
|
}
|
|
source include/have_innodb.inc;
|
|
--disable_query_log
|
|
|
|
set @@session.time_zone='+00:00';
|
|
select ifnull(max(transaction_id), 0) into @start_trx_id from mysql.transaction_registry;
|
|
set @test_start=now(6);
|
|
|
|
delimiter ~~;
|
|
create procedure if not exists verify_trt()
|
|
begin
|
|
set @i= 0;
|
|
select
|
|
@i:= @i + 1 as No,
|
|
transaction_id > 0 as A,
|
|
commit_id > transaction_id as B,
|
|
begin_timestamp > @test_start as C,
|
|
commit_timestamp >= begin_timestamp as D
|
|
from mysql.transaction_registry
|
|
where transaction_id > @start_trx_id;
|
|
select ifnull(max(transaction_id), 0)
|
|
into @start_trx_id
|
|
from mysql.transaction_registry;
|
|
end~~
|
|
|
|
create procedure if not exists verify_trt_dummy(recs int)
|
|
begin
|
|
declare i int default 1;
|
|
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~~
|
|
|
|
delimiter ;~~
|
|
|
|
let $default_engine= `select @@default_storage_engine`;
|
|
let $non_default_engine= `select if(@@default_storage_engine = 'InnoDB', 'MyISAM', 'InnoDB')`;
|
|
let $sys_datatype_expl= timestamp(6);
|
|
let $sys_datatype_expl_uc= TIMESTAMP(6);
|
|
let $sys_datatype_max= TIMESTAMP'2038-01-19 03:14:07.999999';
|
|
|
|
if ($MTR_COMBINATION_MYISAM)
|
|
{
|
|
--let $MTR_COMBINATION_TIMESTAMP= 1
|
|
}
|
|
if ($MTR_COMBINATION_TRADITIONAL)
|
|
{
|
|
--let $MTR_COMBINATION_TIMESTAMP= 1
|
|
}
|
|
if ($MTR_COMBINATION_HEAP)
|
|
{
|
|
--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;
|
|
let $sys_datatype_max= 18446744073709551615;
|
|
}
|
|
|
|
eval create or replace function current_row(sys_trx_end $sys_datatype_expl)
|
|
returns int
|
|
deterministic
|
|
return sys_trx_end = $sys_datatype_max;
|
|
|
|
eval create or replace function current_row_ts(sys_trx_end timestamp(6))
|
|
returns int
|
|
deterministic
|
|
return convert_tz(sys_trx_end, '+00:00', @@time_zone) = TIMESTAMP'2038-01-19 03:14:07.999999';
|
|
|
|
delimiter ~~;
|
|
eval create or replace function check_row(row_start $sys_datatype_expl, row_end $sys_datatype_expl)
|
|
returns varchar(255)
|
|
deterministic
|
|
begin
|
|
if row_end < row_start then
|
|
return "ERROR: row_end < row_start";
|
|
elseif row_end = row_start then
|
|
return "ERROR: row_end == row_start";
|
|
elseif current_row(row_end) then
|
|
return "CURRENT ROW";
|
|
end if;
|
|
return "HISTORICAL ROW";
|
|
end~~
|
|
delimiter ;~~
|
|
|
|
delimiter ~~;
|
|
eval create or replace function check_row_ts(row_start timestamp(6), row_end timestamp(6))
|
|
returns varchar(255)
|
|
deterministic
|
|
begin
|
|
if row_end < row_start then
|
|
return "ERROR: row_end < row_start";
|
|
elseif row_end = row_start then
|
|
return "ERROR: row_end == row_start";
|
|
elseif current_row_ts(row_end) then
|
|
return "CURRENT ROW";
|
|
end if;
|
|
return "HISTORICAL ROW";
|
|
end~~
|
|
delimiter ;~~
|
|
|
|
--enable_query_log
|