mirror of
https://github.com/MariaDB/server.git
synced 2025-01-30 18:41:56 +01:00
61 lines
2.1 KiB
Text
61 lines
2.1 KiB
Text
source suite/versioning/engines.inc;
|
|
source suite/versioning/common.inc;
|
|
|
|
--echo # DELETE
|
|
--replace_result $sys_datatype_expl SYS_TYPE
|
|
eval create table t (
|
|
s date, e date,
|
|
row_start $sys_datatype_expl as row start invisible,
|
|
row_end $sys_datatype_expl as row end invisible,
|
|
period for apptime(s, e),
|
|
period for system_time (row_start, row_end)) with system versioning;
|
|
insert into t values('1999-01-01', '2018-12-12'),
|
|
('1999-01-01', '1999-12-12');
|
|
|
|
select row_start into @ins_time from t limit 1;
|
|
select * from t order by s, e;
|
|
|
|
delete from t for portion of apptime from '2000-01-01' to '2018-01-01';
|
|
select *, if(row_start = @ins_time, "OLD", "NEW"), check_row(row_start, row_end)
|
|
from t for system_time all
|
|
order by s, e, row_start;
|
|
|
|
--echo # same for trigger case
|
|
delete from t;
|
|
delete history from t;
|
|
insert into t values('1999-01-01', '2018-12-12'),
|
|
('1999-01-01', '1999-12-12');
|
|
--let $trig_table=t
|
|
--source suite/period/create_triggers.inc
|
|
|
|
select row_start into @ins_time from t limit 1;
|
|
select * from t order by s, e;
|
|
|
|
delete from t for portion of apptime from '2000-01-01' to '2018-01-01';
|
|
select *, if(row_start = @ins_time, "OLD", "NEW"), check_row(row_start, row_end)
|
|
from t for system_time all
|
|
order by s, e, row_start;
|
|
select * from log_tbl order by id;
|
|
|
|
--echo # UPDATE
|
|
--replace_result $sys_datatype_expl SYS_TYPE
|
|
eval create or replace table t (x int, s date, e date,
|
|
row_start $sys_datatype_expl as row start invisible,
|
|
row_end $sys_datatype_expl as row end invisible,
|
|
period for apptime(s, e),
|
|
period for system_time(row_start, row_end)) with system versioning;
|
|
insert into t values(1, '1999-01-01', '2018-12-12'),
|
|
(2, '1999-01-01', '1999-12-12');
|
|
|
|
select row_start into @ins_time from t limit 1;
|
|
--sorted_result
|
|
select * from t;
|
|
|
|
update t for portion of apptime from '2000-01-01' to '2018-01-01' set x= x + 5;
|
|
select *, if(row_start = @ins_time, "OLD", "NEW"), check_row(row_start, row_end)
|
|
from t for system_time all
|
|
order by x, s, e, row_start;
|
|
|
|
drop table t,log_tbl;
|
|
drop procedure log;
|
|
source suite/versioning/common_finish.inc;
|