summaryrefslogtreecommitdiff
path: root/mysql-test/t/insert.test
diff options
context:
space:
mode:
authorDaniel Fiala <df@natsys-lab.com>2016-06-19 07:38:28 +0100
committerAleksey Midenkov <midenok@gmail.com>2017-05-05 20:35:08 +0300
commitbe6f2d302cd71677e1fafbeea9347c196f21e1bd (patch)
tree2814467d8c5585f852a47bef2caabea808b1c60d /mysql-test/t/insert.test
parent14bdfa85416471e4ccd4aaa65397f282a2b508c3 (diff)
downloadmariadb-git-be6f2d302cd71677e1fafbeea9347c196f21e1bd.tar.gz
0.1: SQL-level System Versioning
Diffstat (limited to 'mysql-test/t/insert.test')
-rw-r--r--mysql-test/t/insert.test73
1 files changed, 73 insertions, 0 deletions
diff --git a/mysql-test/t/insert.test b/mysql-test/t/insert.test
index 206c5553100..7a4523a3f49 100644
--- a/mysql-test/t/insert.test
+++ b/mysql-test/t/insert.test
@@ -573,3 +573,76 @@ insert ignore into t1 values (1,12) on duplicate key update f2=13;
set @@old_mode="";
insert ignore into t1 values (1,12);
DROP TABLE t1;
+
+--echo #
+--echo # System Versioning Support
+--echo #
+--echo #
+
+-- source include/have_innodb.inc
+
+SET @@session.time_zone='+00:00';
+
+CREATE TABLE t1(x INT UNSIGNED, y INT UNSIGNED, Sys_start TIMESTAMP(6) GENERATED ALWAYS AS ROW START, Sys_end TIMESTAMP(6) GENERATED ALWAYS AS ROW END, PERIOD FOR SYSTEM_TIME (Sys_start, Sys_end)) WITH SYSTEM VERSIONING;
+INSERT INTO t1(x, y) VALUES(3, 4);
+INSERT INTO t1(x, y) VALUES(2, 3);
+INSERT INTO t1 VALUES(40, 33);
+SELECT x, y, Sys_end FROM t1;
+DROP TABLE t1;
+
+CREATE TABLE t1(x INT UNSIGNED, y INT UNSIGNED, Sys_start TIMESTAMP(6) GENERATED ALWAYS AS ROW START, Sys_end TIMESTAMP(6) GENERATED ALWAYS AS ROW END, PERIOD FOR SYSTEM_TIME (Sys_start, Sys_end)) WITH SYSTEM VERSIONING ENGINE=InnoDB;
+INSERT INTO t1(x, y) VALUES(3, 4);
+INSERT INTO t1(x, y) VALUES(2, 3);
+INSERT INTO t1 VALUES(40, 33);
+SELECT x, y, Sys_end FROM t1;
+DROP TABLE t1;
+
+CREATE TABLE t1(id INT UNSIGNED NOT NULL AUTO_INCREMENT, x INT UNSIGNED, y INT UNSIGNED, Sys_start TIMESTAMP(6) GENERATED ALWAYS AS ROW START, Sys_end TIMESTAMP(6) GENERATED ALWAYS AS ROW END, PERIOD FOR SYSTEM_TIME (Sys_start, Sys_end), PRIMARY KEY(id)) WITH SYSTEM VERSIONING;
+INSERT INTO t1(x, y) VALUES(33, 44);
+INSERT INTO t1(id, x, y) VALUES(20, 33, 44);
+INSERT INTO t1 VALUES(40, 33, 44);
+SELECT id, x, y, Sys_end FROM t1;
+DROP TABLE t1;
+
+CREATE TABLE t1(id INT UNSIGNED NOT NULL AUTO_INCREMENT, x INT UNSIGNED, y INT UNSIGNED, Sys_start TIMESTAMP(6) GENERATED ALWAYS AS ROW START, Sys_end TIMESTAMP(6) GENERATED ALWAYS AS ROW END, PERIOD FOR SYSTEM_TIME (Sys_start, Sys_end), PRIMARY KEY(id)) WITH SYSTEM VERSIONING ENGINE=InnoDB;
+INSERT INTO t1(x, y) VALUES(33, 44);
+INSERT INTO t1(id, x, y) VALUES(20, 33, 44);
+INSERT INTO t1 VALUES(40, 33, 44);
+SELECT id, x, y, Sys_end FROM t1;
+DROP TABLE t1;
+
+CREATE TABLE t1(x INT UNSIGNED, y INT UNSIGNED, Sys_start TIMESTAMP(6) GENERATED ALWAYS AS ROW START, Sys_end TIMESTAMP(6) GENERATED ALWAYS AS ROW END, PERIOD FOR SYSTEM_TIME (Sys_start, Sys_end)) WITH SYSTEM VERSIONING;
+CREATE VIEW vt1_1 AS SELECT x, y FROM t1;
+CREATE VIEW vt1_2 AS SELECT x, y, Sys_end FROM t1;
+INSERT INTO t1(x, y) VALUES(8001, 9001);
+--error ER_GENERATED_FIELD_CANNOT_BE_SET_BY_USER
+INSERT INTO t1(x, y, Sys_end) VALUES(8001, 9001, '2015-1-1 0:0:0');
+INSERT INTO vt1_1(x, y) VALUES(1001, 2001);
+INSERT INTO vt1_1 VALUES(1002, 2002);
+INSERT INTO vt1_2(x, y) VALUES(3001, 4001);
+--error ER_GENERATED_FIELD_CANNOT_BE_SET_BY_USER
+INSERT INTO vt1_2 VALUES(3002, 4002, '2015-1-1 0:0:0');
+SELECT x, y, Sys_end FROM t1;
+SELECT x, y FROM vt1_1;
+SELECT x, y, Sys_end FROM vt1_2;
+DROP TABLE t1;
+DROP VIEW vt1_1;
+DROP VIEW vt1_2;
+
+CREATE TABLE t1(x INT UNSIGNED, y INT UNSIGNED, Sys_start TIMESTAMP(6) GENERATED ALWAYS AS ROW START, Sys_end TIMESTAMP(6) GENERATED ALWAYS AS ROW END, PERIOD FOR SYSTEM_TIME (Sys_start, Sys_end)) WITH SYSTEM VERSIONING ENGINE=InnoDB;
+CREATE VIEW vt1_1 AS SELECT x, y FROM t1;
+CREATE VIEW vt1_2 AS SELECT x, y, Sys_end FROM t1;
+INSERT INTO t1(x, y) VALUES(8001, 9001);
+--error ER_GENERATED_FIELD_CANNOT_BE_SET_BY_USER
+INSERT INTO t1(x, y, Sys_end) VALUES(8001, 9001, '2015-1-1 0:0:0');
+INSERT INTO vt1_1(x, y) VALUES(1001, 2001);
+INSERT INTO vt1_1 VALUES(1002, 2002);
+INSERT INTO vt1_2(x, y) VALUES(3001, 4001);
+--error ER_GENERATED_FIELD_CANNOT_BE_SET_BY_USER
+INSERT INTO vt1_2 VALUES(3002, 4002, '2015-1-1 0:0:0');
+SELECT x, y, Sys_end FROM t1;
+SELECT x, y FROM vt1_1;
+SELECT x, y, Sys_end FROM vt1_2;
+DROP TABLE t1;
+DROP VIEW vt1_1;
+DROP VIEW vt1_2;