mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
MDEV-14787 CREATE does not allow tables with versioning columns only, but ALTER does
This commit is contained in:
@@ -445,5 +445,10 @@ t CREATE TABLE `t` (
|
|||||||
alter table t add fulltext key (c);
|
alter table t add fulltext key (c);
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 124 InnoDB rebuilding table to add column FTS_DOC_ID
|
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;
|
drop database test;
|
||||||
create database test;
|
create database test;
|
||||||
|
@@ -377,6 +377,12 @@ create or replace table t (c text) engine=innodb with system versioning;
|
|||||||
show create table t;
|
show create table t;
|
||||||
alter table t add fulltext key (c);
|
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;
|
drop database test;
|
||||||
create database test;
|
create database test;
|
||||||
|
@@ -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)
|
if (!create_info->comment.str)
|
||||||
{
|
{
|
||||||
create_info->comment.str= table->s->comment.str;
|
create_info->comment.str= table->s->comment.str;
|
||||||
|
Reference in New Issue
Block a user