From f08fdca3043a976f6625bca8fcb0c2cd24ee892a Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 10 Oct 2005 23:53:53 +0500 Subject: [PATCH] Always save/restore connect string. sql/table.cc: If extra block present always restore connect string. sql/unireg.cc: Always save connect string. --- sql/table.cc | 15 ++++++--------- sql/unireg.cc | 15 ++++++--------- 2 files changed, 12 insertions(+), 18 deletions(-) diff --git a/sql/table.cc b/sql/table.cc index c9a1544e4d2..f78e196a29e 100644 --- a/sql/table.cc +++ b/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) { diff --git a/sql/unireg.cc b/sql/unireg.cc index 402d24a665b..e4f5c8251dc 100644 --- a/sql/unireg.cc +++ b/sql/unireg.cc @@ -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,