diff --git a/mysql-test/suite/versioning/r/partition.result b/mysql-test/suite/versioning/r/partition.result index 5c305a9005e..c476e948574 100644 --- a/mysql-test/suite/versioning/r/partition.result +++ b/mysql-test/suite/versioning/r/partition.result @@ -42,13 +42,13 @@ create or replace table t1 (x int) partition by system_time ( partition p0 history, 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); alter table t1 partition by system_time ( partition p0 history, partition pn current); -Got one of the listed errors +ERROR HY000: Table `t1` is not system-versioned create or replace table t1 (x int) with system versioning partition by system_time ( diff --git a/mysql-test/suite/versioning/t/partition.test b/mysql-test/suite/versioning/t/partition.test index 67f95aa9c49..4ae4013a2ea 100644 --- a/mysql-test/suite/versioning/t/partition.test +++ b/mysql-test/suite/versioning/t/partition.test @@ -33,14 +33,14 @@ eval alter table t1 engine=$non_default_engine; --echo ## CREATE TABLE ---error ER_VERS_ENGINE_UNSUPPORTED +--error ER_VERS_NOT_VERSIONED create or replace table t1 (x int) partition by system_time ( partition p0 history, partition pn current); create or replace table t1 (x int); ---error ER_VERS_ENGINE_UNSUPPORTED,ER_VERS_ENGINE_UNSUPPORTED +--error ER_VERS_NOT_VERSIONED alter table t1 partition by system_time ( partition p0 history, diff --git a/sql/partition_info.cc b/sql/partition_info.cc index e6ad7c9b008..87d322cf7fa 100644 --- a/sql/partition_info.cc +++ b/sql/partition_info.cc @@ -928,7 +928,8 @@ bool partition_info::vers_setup_expression(THD * thd, uint32 alter_add) { 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; } diff --git a/sql/sql_table.cc b/sql/sql_table.cc index e20208012d5..2bdd932706b 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -4641,6 +4641,12 @@ handler *mysql_create_frm_image(THD *thd, goto err; 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 for syntax stored in frm file.