1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

MDEV-14632 Assertion `!((new_col->prtype ^ col->prtype) & ~256U)' failed in row_log_table_apply_convert_mrec

SQL, IB: proper fix is to disable unimplemented Online DDL for system-versioned tables inside InnoDB
This commit is contained in:
Eugene Kosov
2017-12-20 19:42:15 +03:00
committed by GitHub
parent b13f1cc59a
commit 4bc268d406
10 changed files with 118 additions and 54 deletions

View File

@ -1715,8 +1715,6 @@ class Create_field;
struct Vers_parse_info
{
Vers_parse_info() :
with_system_versioning(false),
without_system_versioning(false),
versioned_fields(false),
unversioned_fields(false)
{}
@ -1762,15 +1760,7 @@ protected:
{
return as_row.start || as_row.end || system_time.start || system_time.end;
}
bool need_check() const
{
return
versioned_fields ||
unversioned_fields ||
with_system_versioning ||
without_system_versioning ||
*this;
}
bool need_check(const Alter_info *alter_info) const;
bool check_with_conditions(const char *table_name) const;
bool check_sys_fields(const char *table_name, Alter_info *alter_info,
bool native) const;
@ -1784,10 +1774,6 @@ public:
bool fix_create_like(Alter_info &alter_info, HA_CREATE_INFO &create_info,
TABLE_LIST &src_table, TABLE_LIST &table);
/** Table definition has 'WITH/WITHOUT SYSTEM VERSIONING' */
bool with_system_versioning : 1;
bool without_system_versioning : 1;
/**
At least one field was specified 'WITH/WITHOUT SYSTEM VERSIONING'.
Useful for error handling.
@ -2170,6 +2156,10 @@ public:
static const HA_ALTER_FLAGS ALTER_COLUMN_UNVERSIONED = 1ULL << 42;
static const HA_ALTER_FLAGS ALTER_ADD_SYSTEM_VERSIONING= 1ULL << 43;
static const HA_ALTER_FLAGS ALTER_DROP_SYSTEM_VERSIONING= 1ULL << 44;
/**
Create options (like MAX_ROWS) for the new version of table.