1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

0.6: truncate history feature [closes #96]

This commit is contained in:
kevg
2016-12-23 17:05:57 +03:00
committed by Aleksey Midenkov
parent 4c37011582
commit c9e4ac4b72
15 changed files with 301 additions and 29 deletions

View File

@@ -0,0 +1,94 @@
-- source include/have_innodb.inc
create table t (a int);
--error ER_VERSIONING_REQUIRED
truncate t for system_time all;
delimiter ~~;
create procedure truncate_history_of_t()
begin
prepare stmt from 'truncate t for system_time timestamp between \'1-1-1\' and now(6)';
execute stmt;
drop prepare stmt;
end~~
delimiter ;~~
create or replace table t (a int) with system versioning;
insert into t values (1);
update t set a=2;
select * from t for system_time all;
set @test = 'correct';
create trigger trg_before before delete on t for each row set @test = 'incorrect';
create trigger trg_after after delete on t for each row set @test = 'incorrect';
truncate t for system_time all;
select * from t for system_time all;
select @test from t;
drop trigger trg_before;
drop trigger trg_after;
update t set a=3;
update t set a=4;
truncate t for system_time as of timestamp now(6);
select * from t for system_time all;
truncate t for system_time timestamp between '1-1-1' and now(6);
select * from t for system_time all;
update t set a=5;
truncate t for system_time timestamp from '1-1-1' to now(6);
select * from t for system_time all;
update t set a=6;
call truncate_history_of_t();
select * from t for system_time all;
set @ts1 = now(6);
update t set a=7;
set @ts2 = now(6);
update t set a=8;
truncate t for system_time timestamp from '1-1-1' to @ts1;
select * from t for system_time all;
update t set a=9;
truncate t for system_time timestamp between '1-1-1' and @ts2;
select * from t for system_time all;
create or replace table t (a int) with system versioning engine=innodb;
insert into t values (1);
update t set a=2;
select * from t for system_time all;
truncate t for system_time all;
select * from t for system_time all;
update t set a=3;
update t set a=4;
truncate t for system_time as of timestamp now(6);
select * from t for system_time all;
truncate t for system_time timestamp between '1-1-1' and now(6);
select * from t for system_time all;
update t set a=5;
truncate t for system_time timestamp from '1-1-1' to now(6);
select * from t for system_time all;
update t set a=6;
call truncate_history_of_t();
select * from t for system_time all;
set @ts1 = now(6);
update t set a=7;
set @ts2 = now(6);
update t set a=8;
truncate t for system_time timestamp from '1-1-1' to @ts1;
select * from t for system_time all;
update t set a=9;
truncate t for system_time timestamp between '1-1-1' and @ts2;
select * from t for system_time all;
drop table t;
drop procedure truncate_history_of_t;

View File

@@ -0,0 +1,10 @@
-- source include/have_binlog_format_row.inc
-- source include/master-slave.inc
-- source include/have_innodb.inc
create table t (a int) with system versioning engine=innodb;
--error ER_VERS_NOT_ALLOWED
truncate t for system_time all;
drop table t;
-- source include/rpl_end.inc