1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-27 18:02:13 +03:00

Merge 10.5 into 10.6

The changes to galera.galear_var_replicate_myisam_on
in commit d9b933bec6
are omitted due to conflicts
with commit 27d66d644c.
This commit is contained in:
Marko Mäkelä
2021-10-13 13:28:12 +03:00
76 changed files with 1139 additions and 368 deletions

View File

@ -8200,11 +8200,11 @@ bool Vers_parse_info::is_end(const char *name) const
}
bool Vers_parse_info::is_start(const Create_field &f) const
{
return f.flags & VERS_SYS_START_FLAG;
return f.flags & VERS_ROW_START;
}
bool Vers_parse_info::is_end(const Create_field &f) const
{
return f.flags & VERS_SYS_END_FLAG;
return f.flags & VERS_ROW_END;
}
static Create_field *vers_init_sys_field(THD *thd, const char *field_name, int flags, bool integer)
@ -8264,8 +8264,8 @@ bool Vers_parse_info::fix_implicit(THD *thd, Alter_info *alter_info)
period= start_end_t(default_start, default_end);
as_row= period;
if (vers_create_sys_field(thd, default_start, alter_info, VERS_SYS_START_FLAG) ||
vers_create_sys_field(thd, default_end, alter_info, VERS_SYS_END_FLAG))
if (vers_create_sys_field(thd, default_start, alter_info, VERS_ROW_START) ||
vers_create_sys_field(thd, default_end, alter_info, VERS_ROW_END))
{
return true;
}
@ -8420,7 +8420,7 @@ bool Vers_parse_info::fix_alter_info(THD *thd, Alter_info *alter_info,
return true;
}
my_error(ER_VERS_DUPLICATE_ROW_START_END, MYF(0),
f->flags & VERS_SYS_START_FLAG ? "START" : "END", f->field_name.str);
f->flags & VERS_ROW_START ? "START" : "END", f->field_name.str);
return true;
}
}
@ -8534,13 +8534,13 @@ Vers_parse_info::fix_create_like(Alter_info &alter_info, HA_CREATE_INFO &create_
while ((f= it++))
{
if (f->flags & VERS_SYS_START_FLAG)
if (f->flags & VERS_ROW_START)
{
f_start= f;
if (f_end)
break;
}
else if (f->flags & VERS_SYS_END_FLAG)
else if (f->flags & VERS_ROW_END)
{
f_end= f;
if (f_start)
@ -8686,6 +8686,7 @@ bool Vers_type_trx::check_sys_fields(const LEX_CSTRING &table_name,
return false;
}
bool Vers_parse_info::check_sys_fields(const Lex_table_name &table_name,
const Lex_table_name &db,
Alter_info *alter_info) const
@ -8694,18 +8695,21 @@ bool Vers_parse_info::check_sys_fields(const Lex_table_name &table_name,
return true;
List_iterator<Create_field> it(alter_info->create_list);
const Create_field *row_start= NULL;
const Create_field *row_end= NULL;
const Create_field *row_start= nullptr;
const Create_field *row_end= nullptr;
while (const Create_field *f= it++)
{
if (f->flags & VERS_SYS_START_FLAG && !row_start)
if (f->flags & VERS_ROW_START && !row_start)
row_start= f;
if (f->flags & VERS_SYS_END_FLAG && !row_end)
if (f->flags & VERS_ROW_END && !row_end)
row_end= f;
}
DBUG_ASSERT(row_start);
DBUG_ASSERT(row_end);
if (!row_start || !row_end)
{
my_error(ER_VERS_PERIOD_COLUMNS, MYF(0), as_row.start.str, as_row.end.str);
return true;
}
const Vers_type_handler *row_start_vers= row_start->type_handler()->vers();
@ -8715,10 +8719,7 @@ bool Vers_parse_info::check_sys_fields(const Lex_table_name &table_name,
return true;
}
if (row_start_vers->check_sys_fields(table_name, row_start, row_end))
return true;
return false;
return row_start_vers->check_sys_fields(table_name, row_start, row_end);
}
bool Table_period_info::check_field(const Create_field* f,