summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Lindström <jan.lindstrom@mariadb.com>2017-05-02 13:00:15 +0300
committerOleksandr Byelkin <sanja@mariadb.com>2017-05-09 19:44:10 +0200
commit96987cb4e95c83557284466a8041a48b585fe9a3 (patch)
tree2d22c59e3d2b780ac9a9bfa7ea67f1f6281a305b
parentccca4f43c92916c347210a7f9a8126f2aa3f6c31 (diff)
downloadmariadb-git-96987cb4e95c83557284466a8041a48b585fe9a3.tar.gz
Added tests for MDEV-11724, MDEV-11725, MDEV-11726.
-rw-r--r--mysql-test/suite/innodb/r/innodb-virtual-columns2.result64
-rw-r--r--mysql-test/suite/innodb/t/innodb-virtual-columns2.test54
2 files changed, 118 insertions, 0 deletions
diff --git a/mysql-test/suite/innodb/r/innodb-virtual-columns2.result b/mysql-test/suite/innodb/r/innodb-virtual-columns2.result
new file mode 100644
index 00000000000..3574ba72849
--- /dev/null
+++ b/mysql-test/suite/innodb/r/innodb-virtual-columns2.result
@@ -0,0 +1,64 @@
+CREATE TABLE t1 (
+y YEAR NULL,
+i SMALLINT NULL,
+c VARCHAR(8) NOT NULL DEFAULT '',
+vi SMALLINT AS (i) VIRTUAL,
+INDEX(y)
+) ENGINE=InnoDB;
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `y` year(4) DEFAULT NULL,
+ `i` smallint(6) DEFAULT NULL,
+ `c` varchar(8) NOT NULL DEFAULT '',
+ `vi` smallint(6) GENERATED ALWAYS AS (`i`) VIRTUAL,
+ KEY `y` (`y`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+SELECT * FROM t1 WHERE y BETWEEN 2012 AND 2016 FOR UPDATE;
+y i c vi
+INSERT INTO t1 (i) VALUES (1),(2);
+SELECT * FROM t1 WHERE y BETWEEN 2012 AND 2016 FOR UPDATE;
+y i c vi
+DROP TABLE t1;
+CREATE TABLE t1 (
+y YEAR NULL,
+i SMALLINT NULL,
+vi SMALLINT AS (i) VIRTUAL,
+INDEX(y)
+) ENGINE=InnoDB;
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `y` year(4) DEFAULT NULL,
+ `i` smallint(6) DEFAULT NULL,
+ `vi` smallint(6) GENERATED ALWAYS AS (`i`) VIRTUAL,
+ KEY `y` (`y`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+SELECT * FROM t1 WHERE y BETWEEN 2012 AND 2016 FOR UPDATE;
+y i vi
+INSERT INTO t1 (i) VALUES (1),(2);
+SELECT * FROM t1 WHERE y BETWEEN 2012 AND 2016 FOR UPDATE;
+y i vi
+DROP TABLE t1;
+CREATE TABLE t1 (
+y YEAR NULL,
+i SMALLINT NULL,
+b BLOB NULL,
+vi SMALLINT AS (i) VIRTUAL,
+INDEX(y)
+) ENGINE=InnoDB;
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `y` year(4) DEFAULT NULL,
+ `i` smallint(6) DEFAULT NULL,
+ `b` blob DEFAULT NULL,
+ `vi` smallint(6) GENERATED ALWAYS AS (`i`) VIRTUAL,
+ KEY `y` (`y`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+SELECT * FROM t1 WHERE y BETWEEN 2012 AND 2016 FOR UPDATE;
+y i b vi
+INSERT INTO t1 (i) VALUES (1),(2);
+SELECT * FROM t1 WHERE y BETWEEN 2012 AND 2016 FOR UPDATE;
+y i b vi
+DROP TABLE t1;
diff --git a/mysql-test/suite/innodb/t/innodb-virtual-columns2.test b/mysql-test/suite/innodb/t/innodb-virtual-columns2.test
new file mode 100644
index 00000000000..474a6354576
--- /dev/null
+++ b/mysql-test/suite/innodb/t/innodb-virtual-columns2.test
@@ -0,0 +1,54 @@
+--source include/have_innodb.inc
+
+#
+# MDEV-11724: InnoDB: Failing assertion: len <= col->len || ((col->mtype) == 5 || (col->mtype) == 16 || (col->mtype) == 14) || (((col->mtype) == 15 || (col->mtype) == 16) && len == 2 * 2 * sizeof(double)) || (col->len == 0 && col->mtype == 1)
+#
+
+CREATE TABLE t1 (
+ y YEAR NULL,
+ i SMALLINT NULL,
+ c VARCHAR(8) NOT NULL DEFAULT '',
+ vi SMALLINT AS (i) VIRTUAL,
+ INDEX(y)
+) ENGINE=InnoDB;
+
+SHOW CREATE TABLE t1;
+SELECT * FROM t1 WHERE y BETWEEN 2012 AND 2016 FOR UPDATE;
+INSERT INTO t1 (i) VALUES (1),(2);
+SELECT * FROM t1 WHERE y BETWEEN 2012 AND 2016 FOR UPDATE;
+DROP TABLE t1;
+
+#
+# MDEV-11725: InnoDB: Failing assertion: !rec || !cmp_dtuple_rec(tuple, rec, *offsets)
+#
+
+CREATE TABLE t1 (
+ y YEAR NULL,
+ i SMALLINT NULL,
+ vi SMALLINT AS (i) VIRTUAL,
+ INDEX(y)
+) ENGINE=InnoDB;
+
+SHOW CREATE TABLE t1;
+SELECT * FROM t1 WHERE y BETWEEN 2012 AND 2016 FOR UPDATE;
+INSERT INTO t1 (i) VALUES (1),(2);
+SELECT * FROM t1 WHERE y BETWEEN 2012 AND 2016 FOR UPDATE;
+DROP TABLE t1;
+
+#
+# MDEV-11726: Server crashes in mach_read_from_n_little_endian
+#
+
+CREATE TABLE t1 (
+ y YEAR NULL,
+ i SMALLINT NULL,
+ b BLOB NULL,
+ vi SMALLINT AS (i) VIRTUAL,
+ INDEX(y)
+) ENGINE=InnoDB;
+
+SHOW CREATE TABLE t1;
+SELECT * FROM t1 WHERE y BETWEEN 2012 AND 2016 FOR UPDATE;
+INSERT INTO t1 (i) VALUES (1),(2);
+SELECT * FROM t1 WHERE y BETWEEN 2012 AND 2016 FOR UPDATE;
+DROP TABLE t1;