summaryrefslogtreecommitdiff
path: root/mysql-test/suite/versioning
diff options
context:
space:
mode:
authorEugene Kosov <claprix@yandex.ru>2019-05-10 16:21:22 +0300
committerSergei Golubchik <serg@mariadb.org>2019-05-17 13:53:22 +0200
commit3d649c6e37de47336860bee6d23804d62a0746cb (patch)
treeab4eafed33f5f88832bd4f9b72e5baba5989b756 /mysql-test/suite/versioning
parent3d56adbfac394b2b3ffd22a89fe7c2978ed9a505 (diff)
downloadmariadb-git-3d649c6e37de47336860bee6d23804d62a0746cb.tar.gz
MDEV-15408 Confusing error message upon ER_VERS_FIELD_WRONG_TYPE while omitting UNSIGNED in BIGINT
Improve diagnostics. Try to guess what type user tried to type.
Diffstat (limited to 'mysql-test/suite/versioning')
-rw-r--r--mysql-test/suite/versioning/r/create.result16
-rw-r--r--mysql-test/suite/versioning/t/create.test16
2 files changed, 31 insertions, 1 deletions
diff --git a/mysql-test/suite/versioning/r/create.result b/mysql-test/suite/versioning/r/create.result
index 231aae66482..9c77859ffce 100644
--- a/mysql-test/suite/versioning/r/create.result
+++ b/mysql-test/suite/versioning/r/create.result
@@ -157,7 +157,7 @@ Sys_start bigint as row start invisible,
Sys_end bigint unsigned as row end invisible,
period for system_time (Sys_start, Sys_end)
) with system versioning engine innodb;
-ERROR HY000: `Sys_start` must be of type TIMESTAMP(6) for system-versioned table `t1`
+ERROR HY000: `Sys_start` must be of type BIGINT(20) UNSIGNED for system-versioned table `t1`
create or replace table t1 (
x14 int unsigned,
Sys_start bigint unsigned as row start invisible,
@@ -495,5 +495,19 @@ Table Create Table
t1 CREATE TABLE `t1` (
`i` int(11) DEFAULT NULL
) ENGINE=DEFAULT_ENGINE DEFAULT CHARSET=latin1 WITH SYSTEM VERSIONING
+create or replace table t1 (
+a int,
+row_start bigint as row start,
+row_end bigint as row end,
+period for system_time (row_start, row_end)
+) engine=innodb with system versioning;
+ERROR HY000: `row_start` must be of type BIGINT(20) UNSIGNED for system-versioned table `t1`
+create or replace table t1 (
+a int,
+row_start bigint as row start,
+row_end bigint as row end,
+period for system_time (row_start, row_end)
+) engine=myisam with system versioning;
+ERROR HY000: `row_start` must be of type TIMESTAMP(6) for system-versioned table `t1`
drop database test;
create database test;
diff --git a/mysql-test/suite/versioning/t/create.test b/mysql-test/suite/versioning/t/create.test
index 7a7eb556c67..81dd3cdb2c2 100644
--- a/mysql-test/suite/versioning/t/create.test
+++ b/mysql-test/suite/versioning/t/create.test
@@ -371,5 +371,21 @@ create or replace table t1 (i int) with system versioning as select 1 as i;
--replace_result $default_engine DEFAULT_ENGINE
show create table t1;
+--error ER_VERS_FIELD_WRONG_TYPE
+create or replace table t1 (
+ a int,
+ row_start bigint as row start,
+ row_end bigint as row end,
+ period for system_time (row_start, row_end)
+) engine=innodb with system versioning;
+
+--error ER_VERS_FIELD_WRONG_TYPE
+create or replace table t1 (
+ a int,
+ row_start bigint as row start,
+ row_end bigint as row end,
+ period for system_time (row_start, row_end)
+) engine=myisam with system versioning;
+
drop database test;
create database test;