From 15c936e4b3d151346c027bd4b51b44c826b095b6 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 9 Apr 2013 15:49:59 +0200 Subject: open_table_def() no longer probes for the old pre-5.1 table file names. SELECT * FROM `t-1` will no longer read "t-1.frm" file, use `#mysql50#t-1` for this. --- sql/table.cc | 45 ++++++--------------------------------------- 1 file changed, 6 insertions(+), 39 deletions(-) (limited to 'sql/table.cc') diff --git a/sql/table.cc b/sql/table.cc index b8a631f6b18..647e8d3ee5a 100644 --- a/sql/table.cc +++ b/sql/table.cc @@ -621,48 +621,15 @@ enum open_frm_error open_table_def(THD *thd, TABLE_SHARE *share, uint flags) share->error= OPEN_FRM_OPEN_ERROR; strxmov(path, share->normalized_path.str, reg_ext, NullS); - if ((file= mysql_file_open(key_file_frm, - path, O_RDONLY | O_SHARE, MYF(0))) < 0) + file= mysql_file_open(key_file_frm, path, O_RDONLY | O_SHARE, MYF(0)); + if (file < 0) { - if (!has_disabled_path_chars(share->table_name.str) && - !has_disabled_path_chars(share->db.str)) + if ((flags & GTS_TABLE) && (flags & GTS_FORCE_DISCOVERY)) { - /* Try unencoded 5.0 name */ - uint length; - strxnmov(path, sizeof(path)-1, - mysql_data_home, "/", share->db.str, "/", - share->table_name.str, reg_ext, NullS); - length= unpack_filename(path, path) - reg_ext_length; - /* - The following is a safety test and should never fail - as the old file name should never be longer than the new one. - */ - DBUG_ASSERT(length <= share->normalized_path.length); - /* - If the old and the new names have the same length, - then table name does not have tricky characters, - so no need to check the old file name. - */ - if (length != share->normalized_path.length && - (file= mysql_file_open(key_file_frm, - path, O_RDONLY | O_SHARE, MYF(0))) >= 0) - { - /* Unencoded 5.0 table name found */ - path[length]= '\0'; // Remove .frm extension - strmov(share->normalized_path.str, path); - share->normalized_path.length= length; - } - } - /* still no luck? try to discover the table */ - if (file < 0) - { - if (flags & GTS_TABLE && flags & GTS_FORCE_DISCOVERY) - { - ha_discover_table(thd, share); - error_given= true; - } - goto err_not_open; + ha_discover_table(thd, share); + error_given= true; } + goto err_not_open; } if (mysql_file_read(file, head, sizeof(head), MYF(MY_NABP))) -- cgit v1.2.1