mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-04 04:46:15 +01:00 
			
		
		
		
	Updated tests: cases with bugs or which cannot be run with the cursor-protocol were excluded with "--disable_cursor_protocol"/"--enable_cursor_protocol" Fix for v.10.5
		
			
				
	
	
		
			124 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			124 lines
		
	
	
	
		
			3.2 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';
 | 
						|
--disable_cursor_protocol
 | 
						|
select ifnull(max(transaction_id), 0) into @start_trx_id from mysql.transaction_registry;
 | 
						|
--enable_cursor_protocol
 | 
						|
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_slave(row_start $sys_datatype_expl, row_end $sys_datatype_expl)
 | 
						|
returns varchar(255)
 | 
						|
deterministic
 | 
						|
begin
 | 
						|
  if 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
 |