mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
Always save/restore connect string.
sql/table.cc: If extra block present always restore connect string. sql/unireg.cc: Always save connect string.
This commit is contained in:
parent
57ef857681
commit
f08fdca304
2 changed files with 12 additions and 18 deletions
15
sql/table.cc
15
sql/table.cc
|
@ -316,17 +316,14 @@ int openfrm(THD *thd, const char *name, const char *alias, uint db_stat,
|
|||
my_free(buff, MYF(0));
|
||||
goto err;
|
||||
}
|
||||
if (share->db_type == DB_TYPE_FEDERATED_DB)
|
||||
share->connect_string.length= uint2korr(buff);
|
||||
if (! (share->connect_string.str= strmake_root(&outparam->mem_root,
|
||||
next_chunk + 2, share->connect_string.length)))
|
||||
{
|
||||
share->connect_string.length= uint2korr(buff);
|
||||
if (! (share->connect_string.str= strmake_root(&outparam->mem_root,
|
||||
next_chunk + 2, share->connect_string.length)))
|
||||
{
|
||||
my_free(buff, MYF(0));
|
||||
goto err;
|
||||
}
|
||||
next_chunk+= share->connect_string.length + 2;
|
||||
my_free(buff, MYF(0));
|
||||
goto err;
|
||||
}
|
||||
next_chunk+= share->connect_string.length + 2;
|
||||
buff_end= buff + n_length;
|
||||
if (next_chunk + 2 < buff_end)
|
||||
{
|
||||
|
|
|
@ -122,8 +122,7 @@ bool mysql_create_frm(THD *thd, my_string file_name,
|
|||
str_db_type.str= (char *)ha_get_storage_engine(create_info->db_type);
|
||||
str_db_type.length= strlen(str_db_type.str);
|
||||
create_info->extra_size= 2 + str_db_type.length;
|
||||
if (create_info->db_type == DB_TYPE_FEDERATED_DB)
|
||||
create_info->extra_size+= create_info->connect_string.length + 2;
|
||||
create_info->extra_size+= create_info->connect_string.length + 2;
|
||||
|
||||
if ((file=create_frm(thd, file_name, db, table, reclength, fileinfo,
|
||||
create_info, keys)) < 0)
|
||||
|
@ -159,14 +158,12 @@ bool mysql_create_frm(THD *thd, my_string file_name,
|
|||
create_fields,reclength, data_offset))
|
||||
goto err;
|
||||
|
||||
if (create_info->db_type == DB_TYPE_FEDERATED_DB)
|
||||
{
|
||||
int2store(buff, create_info->connect_string.length);
|
||||
if (my_write(file, (const byte*)buff, sizeof(buff), MYF(MY_NABP)) ||
|
||||
my_write(file, (const byte*)create_info->connect_string.str,
|
||||
create_info->connect_string.length, MYF(MY_NABP)))
|
||||
int2store(buff, create_info->connect_string.length);
|
||||
if (my_write(file, (const byte*)buff, sizeof(buff), MYF(MY_NABP)) ||
|
||||
my_write(file, (const byte*)create_info->connect_string.str,
|
||||
create_info->connect_string.length, MYF(MY_NABP)))
|
||||
goto err;
|
||||
}
|
||||
|
||||
int2store(buff, str_db_type.length);
|
||||
if (my_write(file, (const byte*)buff, sizeof(buff), MYF(MY_NABP)) ||
|
||||
my_write(file, (const byte*)str_db_type.str,
|
||||
|
|
Loading…
Reference in a new issue