diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:07:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:07:14 +0000 |
commit | a175314c3e5827eb193872241446f2f8f5c9d33c (patch) | |
tree | cd3d60ca99ae00829c52a6ca79150a5b6e62528b /mysql-test/suite/versioning/r/delete_history.result | |
parent | Initial commit. (diff) | |
download | mariadb-10.5-upstream.tar.xz mariadb-10.5-upstream.zip |
Adding upstream version 1:10.5.12.upstream/1%10.5.12upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'mysql-test/suite/versioning/r/delete_history.result')
-rw-r--r-- | mysql-test/suite/versioning/r/delete_history.result | 189 |
1 files changed, 189 insertions, 0 deletions
diff --git a/mysql-test/suite/versioning/r/delete_history.result b/mysql-test/suite/versioning/r/delete_history.result new file mode 100644 index 00000000..a5a6de19 --- /dev/null +++ b/mysql-test/suite/versioning/r/delete_history.result @@ -0,0 +1,189 @@ +call mtr.add_suppression("need more HISTORY partitions"); +create table t (a int); +delete history from t before system_time now(); +ERROR HY000: Table `t` is not system-versioned +create or replace table t ( +a int, +row_start SYS_TYPE as row start invisible, +row_end SYS_TYPE as row end invisible, +period for system_time (row_start, row_end)) +with system versioning; +insert into t values (1); +update t set a=2; +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'; +delete history from t; +select @test from t; +@test +correct +drop table t; +create or replace table t ( +a int, +row_start SYS_TYPE as row start invisible, +row_end SYS_TYPE as row end invisible, +period for system_time (row_start, row_end)) +with system versioning; +insert into t values (1), (2); +update t set a=11 where a=1; +set @ts1=now(6); +update t set a=22 where a=2; +select * from t for system_time all; +a +11 +22 +1 +2 +delete history from t before system_time timestamp @ts1; +select * from t for system_time all; +a +11 +22 +2 +prepare stmt from 'delete history from t'; +execute stmt; +drop prepare stmt; +select * from t for system_time all; +a +11 +22 +delete from t; +create or replace procedure truncate_sp() +begin +delete history from t before system_time timestamp now(6); +end~~ +call truncate_sp; +select * from t for system_time all; +a +drop procedure truncate_sp; +# Truncate partitioned +create or replace table t (a int) with system versioning +partition by system_time limit 1 partitions 3; +insert into t values (1); +update t set a= 2; +update t set a= 3; +delete history from t; +Warnings: +Warning 4114 Versioned table `test`.`t`: last HISTORY partition (`p1`) is out of LIMIT, need more HISTORY partitions +# The above warning is one command late (MDEV-20345) ^^^ +select * from t for system_time all; +a +3 +# VIEW +create or replace table t ( +i int, +row_start SYS_TYPE as row start invisible, +row_end SYS_TYPE as row end invisible, +period for system_time (row_start, row_end)) +with system versioning; +delete history from t; +create or replace view v as select * from t; +delete history from v; +ERROR 42S02: 'v' is a view +create or replace table t (i int); +delete history from t; +ERROR HY000: Table `t` is not system-versioned +create or replace view v as select * from t; +delete history from v; +ERROR 42S02: 'v' is a view +prepare stmt from 'delete history from t'; +ERROR HY000: Table `t` is not system-versioned +drop table t; +drop view v; +create or replace table t (i int); +create or replace view v as select * from t; +drop table v; +ERROR 42S02: 'test.v' is a view +lock table v write; +delete history from v before system_time now(6); +ERROR 42S02: 'v' is a view +unlock tables; +drop view v; +drop table t; +create table t1 (i int) with system versioning; +create procedure pr() delete history from t1 before system_time now(); +call pr; +call pr; +drop procedure pr; +drop table t1; +# MDEV-15966 Behavior for TRUNCATE versioned table is not documented and not covered by tests +create or replace table t1 (id int); +create or replace table t2 (id int) with system versioning; +# force cleaning table shares +flush tables t1, t2; +truncate table t1; +truncate table t2; +ERROR HY000: System-versioned tables do not support TRUNCATE TABLE +# fetch table shares +describe t1; +Field Type Null Key Default Extra +id int(11) YES NULL +describe t2; +Field Type Null Key Default Extra +id int(11) YES NULL +truncate table t1; +truncate table t2; +ERROR HY000: System-versioned tables do not support TRUNCATE TABLE +# enter locked tables mode +lock tables t1 WRITE, t2 WRITE; +truncate t1; +truncate t2; +ERROR HY000: System-versioned tables do not support TRUNCATE TABLE +unlock tables; +drop table t2; +# +# MDEV-19814 Assertion `update->n_fields < ulint(table->n_cols + table->n_v_cols)' on DELETE HISTORY +# +create or replace table t1 ( +f varchar(1), +row_start SYS_TYPE as row start, +row_end SYS_TYPE as row end, +period for system_time (row_start, row_end)) +with system versioning; +insert into t1 (f) values ('a'), ('b'), ('c'), ('d'), ('e'), ('f'), ('g'), ('h'); +delete from t1; +delete history from t1; +drop table t1; +# +# MDEV-20186 Wrong result or Assertion on INSERT after DELETE HISTORY +# +create or replace table t1 (a int check (a > 0)) with system versioning; +delete history from t1; +insert into t1 values (1); +select * from t1; +a +1 +drop table t1; +# +# MDEV-25468 DELETE HISTORY may delete current data on system-versioned table +# +create or replace table t1 (x int) with system versioning; +insert into t1 values (1); +delete history from t1 before system_time '2039-01-01 23:00'; +select * from t1; +x +1 +explain extended delete history from t1 before system_time '2039-01-01 23:00'; +id select_type table type possible_keys key key_len ref rows filtered Extra +1 SIMPLE t1 ALL NULL NULL NULL NULL 1 100.00 Using where +create or replace procedure p() delete history from t1 before system_time '2039-01-01 23:00'; +call p; +select * from t1; +x +1 +call p; +select * from t1; +x +1 +drop procedure p; +prepare stmt from "delete history from t1 before system_time '2039-01-01 23:00'"; +execute stmt; +select * from t1; +x +1 +execute stmt; +select * from t1; +x +1 +drop prepare stmt; +drop table t1; |