summaryrefslogtreecommitdiff
path: root/mysql-test/suite/versioning/t/delete_history.test
diff options
context:
space:
mode:
authorAleksey Midenkov <midenok@gmail.com>2021-04-21 22:14:08 +0300
committerAleksey Midenkov <midenok@gmail.com>2021-04-27 09:08:44 +0300
commit6d73282b136058deb992fdb758d8992fa186e73e (patch)
treee2b54ef9d0693ccd658ff5068a97ccbd3fc1ccc4 /mysql-test/suite/versioning/t/delete_history.test
parent29b2f3dbb543130a7ba71635216a8d7d34cac46e (diff)
downloadmariadb-git-6d73282b136058deb992fdb758d8992fa186e73e.tar.gz
MDEV-25468 DELETE HISTORY may delete current data on system-versioned table
Item_func_history (is_history()) is a bool function that checks if the row is the history row by checking row_end->is_max(). The argument to this function must be row_end system field. Added the above function to conjunction with SYSTEM_TIME_BEFORE versioning condition.
Diffstat (limited to 'mysql-test/suite/versioning/t/delete_history.test')
-rw-r--r--mysql-test/suite/versioning/t/delete_history.test22
1 files changed, 22 insertions, 0 deletions
diff --git a/mysql-test/suite/versioning/t/delete_history.test b/mysql-test/suite/versioning/t/delete_history.test
index 8a7f8e84a76..bd605c689ad 100644
--- a/mysql-test/suite/versioning/t/delete_history.test
+++ b/mysql-test/suite/versioning/t/delete_history.test
@@ -141,4 +141,26 @@ insert into t1 values (1);
select * from t1;
drop table t1;
+--echo #
+--echo # MDEV-25468 DELETE HISTORY may delete current data on system-versioned table
+--echo #
+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;
+explain extended delete history from t1 before system_time '2039-01-01 23:00';
+create or replace procedure p() delete history from t1 before system_time '2039-01-01 23:00';
+call p;
+select * from t1;
+call p;
+select * from t1;
+drop procedure p;
+prepare stmt from "delete history from t1 before system_time '2039-01-01 23:00'";
+execute stmt;
+select * from t1;
+execute stmt;
+select * from t1;
+drop prepare stmt;
+drop table t1;
+
--source suite/versioning/common_finish.inc