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

SQL: CREATE TABLE LIKE for versioned tables [fixes #146]

This commit is contained in:
kevg
2017-03-06 15:53:53 +03:00
committed by Aleksey Midenkov
parent 17745222a1
commit 9355e3e966
6 changed files with 57 additions and 4 deletions

View File

@ -6850,6 +6850,33 @@ bool Vers_parse_info::check_and_fix_alter(THD *thd, Alter_info *alter_info,
check_generated_type(table_name, alter_info, integer_fields)));
}
bool Vers_parse_info::fix_create_like(THD *thd, Alter_info *alter_info,
HA_CREATE_INFO *create_info)
{
List_iterator<Create_field> it(alter_info->create_list);
Create_field *f= NULL;
DBUG_ASSERT(alter_info->create_list.elements > 2);
for (uint i= 0; i < alter_info->create_list.elements - 1; ++i)
f= it++;
DBUG_ASSERT(f->flags & VERS_SYS_START_FLAG);
if (create_string(thd->mem_root, &generated_as_row.start, f->field_name) ||
create_string(thd->mem_root, &period_for_system_time.start,
f->field_name))
return true;
f= it++;
DBUG_ASSERT(f->flags & VERS_SYS_END_FLAG);
if (create_string(thd->mem_root, &generated_as_row.end, f->field_name) ||
create_string(thd->mem_root, &period_for_system_time.end, f->field_name))
return true;
create_info->options|= HA_VERSIONED_TABLE;
return false;
}
bool Vers_parse_info::check_with_conditions(const char *table_name) const
{
if (!generated_as_row.start)