Hi Sergei!
Fixed in `bb-10.3-midenok`.
Hi, Aleksey!
On Aug 30, Aleksey Midenkov wrote:
> revision-id: c3d2998a038 (versioning-1.0.3-71-gc3d2998a038)
> parent(s): 611488e3d90
> author: Aleksey Midenkov <midenok@gmail.com>
> committer: Aleksey Midenkov <midenok@gmail.com>
> timestamp: 2018-05-23 22:45:08 +0300
> message:
>
> MDEV-16130 wrong error message adding AS ROW START to versioned table
>
> Closes tempesta-tech/mariadb#494
>
> ---
> mysql-test/suite/versioning/r/alter.result | 12 ++++++++----
> mysql-test/suite/versioning/t/alter.test | 7 ++++++-
> sql/handler.cc | 3 ++-
> sql/share/errmsg-utf8.txt | 2 +-
> sql/sql_table.cc | 6 ------
> 5 files changed, 17 insertions(+), 13 deletions(-)
>
> diff --git a/mysql-test/suite/versioning/r/alter.result b/mysql-test/suite/versioning/r/alter.result
> index fafcf3c30b0..666420dc2e5 100644
> --- a/mysql-test/suite/versioning/r/alter.result
> +++ b/mysql-test/suite/versioning/r/alter.result
> @@ -76,13 +76,17 @@ t CREATE TABLE `t` (
> `a` int(11) DEFAULT NULL
> ) ENGINE=MyISAM DEFAULT CHARSET=latin1
> alter table t add column trx_start timestamp(6) as row start;
> -ERROR HY000: Table `t` is not system-versioned
> +ERROR HY000: Can not add system property AS ROW START/END for field `trx_start`
This is very strange wording. What is a "system property"? The standard
has no such concept. Neither does MariaDB, it's not used anywhere in the
manual, as far as I know. Here you can use, for example,
ER_VERS_DUPLICATE_ROW_START_END:
Duplicate ROW START column `trx_start`
> alter table t add system versioning;
> show create table t;
> Table Create Table
> t CREATE TABLE `t` (
> `a` int(11) DEFAULT NULL
> ) ENGINE=MyISAM DEFAULT CHARSET=latin1 WITH SYSTEM VERSIONING
> +alter table t add column trx_start timestamp(6) as row start;
> +ERROR HY000: Can not add system property AS ROW START/END for field `trx_start`
> +alter table t modify a int as row start;
> +ERROR HY000: Can not add system property AS ROW START/END for field `a`
> alter table t add column b int;
> show create table t;
> Table Create Table
> @@ -527,6 +531,6 @@ use test;
> # MDEV-15956 Strange ER_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN upon ALTER on versioning column
> create or replace table t1 (i int, j int as (i), s timestamp(6) as row start, e timestamp(6) as row end, period for system_time(s,e)) with system versioning;
> alter table t1 modify s timestamp(6) as row start;
> -ERROR HY000: Can not change system versioning field `s`
> +ERROR HY000: Can not add system property AS ROW START/END for field `s`
This doesn't look right either. The statement does not add anything, the
field `s` is already AS ROW START. Why is it an error at all?
> drop database test;
> create database test;
Regards,
Sergei
VP of MariaDB Server Engineering
and security@mariadb.org
--
All the best,
Aleksey Midenkov
@midenok