Commit dfb6f96e authored by Sergei Golubchik's avatar Sergei Golubchik

MDEV-15190 Bad error for non-versioned table PARTITION BY SYSTEM_TIME

parent edeeaac4
...@@ -42,13 +42,13 @@ create or replace table t1 (x int) ...@@ -42,13 +42,13 @@ create or replace table t1 (x int)
partition by system_time ( partition by system_time (
partition p0 history, partition p0 history,
partition pn current); partition pn current);
ERROR HY000: Transaction system versioning for `t1` is not supported ERROR HY000: Table `t1` is not system-versioned
create or replace table t1 (x int); create or replace table t1 (x int);
alter table t1 alter table t1
partition by system_time ( partition by system_time (
partition p0 history, partition p0 history,
partition pn current); partition pn current);
Got one of the listed errors ERROR HY000: Table `t1` is not system-versioned
create or replace table t1 (x int) create or replace table t1 (x int)
with system versioning with system versioning
partition by system_time ( partition by system_time (
......
...@@ -33,14 +33,14 @@ eval alter table t1 engine=$non_default_engine; ...@@ -33,14 +33,14 @@ eval alter table t1 engine=$non_default_engine;
--echo ## CREATE TABLE --echo ## CREATE TABLE
--error ER_VERS_ENGINE_UNSUPPORTED --error ER_VERS_NOT_VERSIONED
create or replace table t1 (x int) create or replace table t1 (x int)
partition by system_time ( partition by system_time (
partition p0 history, partition p0 history,
partition pn current); partition pn current);
create or replace table t1 (x int); create or replace table t1 (x int);
--error ER_VERS_ENGINE_UNSUPPORTED,ER_VERS_ENGINE_UNSUPPORTED --error ER_VERS_NOT_VERSIONED
alter table t1 alter table t1
partition by system_time ( partition by system_time (
partition p0 history, partition p0 history,
......
...@@ -928,7 +928,8 @@ bool partition_info::vers_setup_expression(THD * thd, uint32 alter_add) ...@@ -928,7 +928,8 @@ bool partition_info::vers_setup_expression(THD * thd, uint32 alter_add)
{ {
if (!table->versioned()) if (!table->versioned())
{ {
my_error(ER_VERS_ENGINE_UNSUPPORTED, MYF(0), table->s->table_name.str); // frm must be corrupted, normally CREATE/ALTER TABLE checks for that
my_error(ER_FILE_CORRUPT, MYF(0), table->s->path.str);
return true; return true;
} }
......
...@@ -4641,6 +4641,12 @@ handler *mysql_create_frm_image(THD *thd, ...@@ -4641,6 +4641,12 @@ handler *mysql_create_frm_image(THD *thd,
goto err; goto err;
part_info->default_engine_type= engine_type; part_info->default_engine_type= engine_type;
if (part_info->vers_info && !create_info->versioned())
{
my_error(ER_VERS_NOT_VERSIONED, MYF(0), table_name->str);
goto err;
}
/* /*
We reverse the partitioning parser and generate a standard format We reverse the partitioning parser and generate a standard format
for syntax stored in frm file. for syntax stored in frm file.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment