1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

MDEV-14787 CREATE does not allow tables with versioning columns only, but ALTER does

This commit is contained in:
Eugene Kosov
2018-01-03 15:51:23 +03:00
committed by GitHub
parent b8b5d8d87d
commit dbf21ff396
3 changed files with 18 additions and 0 deletions

View File

@ -445,5 +445,10 @@ t CREATE TABLE `t` (
alter table t add fulltext key (c);
Warnings:
Warning 124 InnoDB rebuilding table to add column FTS_DOC_ID
create or replace table t (a int) with system versioning;
alter table t drop column a;
ERROR HY000: Table `t` must have at least one temporal column
alter table t drop column a, drop column a;
ERROR 42000: Can't DROP COLUMN `a`; check that it exists
drop database test;
create database test;

View File

@ -377,6 +377,12 @@ create or replace table t (c text) engine=innodb with system versioning;
show create table t;
alter table t add fulltext key (c);
create or replace table t (a int) with system versioning;
--error ER_VERS_TABLE_MUST_HAVE_COLUMNS
alter table t drop column a;
--error ER_CANT_DROP_FIELD_OR_KEY
alter table t drop column a, drop column a;
drop database test;
create database test;

View File

@ -8363,6 +8363,13 @@ mysql_prepare_alter_table(THD *thd, TABLE *table,
}
}
if (table->versioned() && !(alter_info->flags & Alter_info::ALTER_DROP_SYSTEM_VERSIONING) &&
new_create_list.elements == VERSIONING_FIELDS)
{
my_error(ER_VERS_TABLE_MUST_HAVE_COLUMNS, MYF(0), table->s->table_name.str);
goto err;
}
if (!create_info->comment.str)
{
create_info->comment.str= table->s->comment.str;