From: Jon Olav Hauglid Date: November 15 2010 11:32am Subject: bzr commit into mysql-5.5-runtime branch (jon.hauglid:3184) Bug#57663 List-Archive: http://lists.mysql.com/commits/123887 X-Bug: 57663 Message-Id: <201011151133.oAF2ttJp023904@rcsinet13.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============3375107453852869355==" --===============3375107453852869355== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///export/home/x/mysql-5.5-runtime-prereq/ based on revid:kostja@stripped 3184 Jon Olav Hauglid 2010-11-15 Bug #57663 Concurrent statement using stored function and DROP DATABASE breaks SBR This pre-requisite patch removes obsolete and dead code used to remove raid subdirectories and files during DROP DATABASE. Other parts of the raid code have already been removed in WL#5498 and the support for MyISAM raid tables was removed in 5.0. modified: sql/sql_db.cc === modified file 'sql/sql_db.cc' --- a/sql/sql_db.cc 2010-11-12 12:56:21 +0000 +++ b/sql/sql_db.cc 2010-11-15 11:32:49 +0000 @@ -45,7 +45,7 @@ static TYPELIB deletable_extentions= {array_elements(del_exts)-1,"del_exts", del_exts, NULL}; static long mysql_rm_known_files(THD *thd, MY_DIR *dirp, - const char *db, const char *path, uint level, + const char *db, const char *path, TABLE_LIST **dropped_tables); long mysql_rm_arc_files(THD *thd, MY_DIR *dirp, const char *org_path); @@ -809,7 +809,7 @@ bool mysql_rm_db(THD *thd,char *db,bool as disabled and will not log the drop database statement on any other connected server. */ - if ((deleted= mysql_rm_known_files(thd, dirp, db, path, 0, + if ((deleted= mysql_rm_known_files(thd, dirp, db, path, &dropped_tables)) >= 0) { ha_drop_database(path); @@ -932,20 +932,18 @@ exit: } /* - Removes files with known extensions plus all found subdirectories that - are 2 hex digits (raid directories). + Removes files with known extensions. thd MUST be set when calling this function! */ static long mysql_rm_known_files(THD *thd, MY_DIR *dirp, const char *db, - const char *org_path, uint level, + const char *org_path, TABLE_LIST **dropped_tables) { long deleted=0; ulong found_other_files=0; char filePath[FN_REFLEN]; TABLE_LIST *tot_list=0, **tot_list_next_local, **tot_list_next_global; - List raid_dirs; DBUG_ENTER("mysql_rm_known_files"); DBUG_PRINT("enter",("path: %s", org_path)); @@ -964,36 +962,7 @@ static long mysql_rm_known_files(THD *th (file->name[1] == '.' && !file->name[2]))) continue; - /* Check if file is a raid directory */ - if ((my_isdigit(system_charset_info, file->name[0]) || - (file->name[0] >= 'a' && file->name[0] <= 'f')) && - (my_isdigit(system_charset_info, file->name[1]) || - (file->name[1] >= 'a' && file->name[1] <= 'f')) && - !file->name[2] && !level) - { - char newpath[FN_REFLEN], *copy_of_path; - MY_DIR *new_dirp; - String *dir; - uint length; - - strxmov(newpath,org_path,"/",file->name,NullS); - length= unpack_filename(newpath,newpath); - if ((new_dirp = my_dir(newpath,MYF(MY_DONT_SORT)))) - { - DBUG_PRINT("my",("New subdir found: %s", newpath)); - if ((mysql_rm_known_files(thd, new_dirp, NullS, newpath,1,0)) < 0) - goto err; - if (!(copy_of_path= (char*) thd->memdup(newpath, length+1)) || - !(dir= new (thd->mem_root) String(copy_of_path, length, - &my_charset_bin)) || - raid_dirs.push_back(dir)) - goto err; - continue; - } - found_other_files++; - continue; - } - else if (file->name[0] == 'a' && file->name[1] == 'r' && + if (file->name[0] == 'a' && file->name[1] == 'r' && file->name[2] == 'c' && file->name[3] == '\0') { /* .frm archive: @@ -1075,14 +1044,6 @@ static long mysql_rm_known_files(THD *th (tot_list && mysql_rm_table_part2(thd, tot_list, 1, 0, 1, 1))) goto err; - /* Remove RAID directories */ - { - List_iterator it(raid_dirs); - String *dir; - while ((dir= it++)) - if (rmdir(dir->c_ptr()) < 0) - found_other_files++; - } my_dirend(dirp); if (dropped_tables) @@ -1099,8 +1060,7 @@ static long mysql_rm_known_files(THD *th } else { - /* Don't give errors if we can't delete 'RAID' directory */ - if (rm_dir_w_symlink(org_path, level == 0)) + if (rm_dir_w_symlink(org_path, true)) DBUG_RETURN(-1); } --===============3375107453852869355== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/jon.hauglid@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: jon.hauglid@stripped # target_branch: file:///export/home/x/mysql-5.5-runtime-prereq/ # testament_sha1: b40f39cfdef6a153cac73b9dc4ea99a248f55e0d # timestamp: 2010-11-15 12:32:53 +0100 # source_branch: file:///export/home/x/mysql-5.5-bugfixing/ # base_revision_id: kostja@stripped # # Begin bundle IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWZB0OOIAAgtfgECwWff/9352 3Iq////wUATc5sym2YaHtXRGCUQmk09Q0yaYST09ExMp6jaaR5QaNBpiemoOMmTJiMTACZMEyAGj CMAQwCUIAQiemUaanlNGJ6geoAGmgAABJITQmJ6mptEzTU9SHqMmnojRk0ekAGg9QJRUn6TaGmqP 1Q9RsRA2oPU9TRkA0NAABxAGFAtJbtWMrXNM2X6/jjL+StczKFWMhmIMLFkWY5mxnjTXQ+LvfRoB PR37Dad5Js6w37WTMl9vkB4QoxzcZZGMHmdWnBpwjN81ksFcvw6yfrHZfrHDk/Lcqq391JQ3nQMs JdE4Pl9qPgqfXdtmYMsbnt173YUmX43UV5zMQc+Qqv22ty9c4xRO+uoUk/bE3KWLf2Z5nJUnj6Us bQegj9FBcK5MYaqJjn8VeBz9V2E7NXarAqSZLO1b5QS6WE6vqfuN1dhOInBMrR2lkTEMBPm9B/hW KC8NVnLdq0AbVSd++QJ1UYim00b3PEIBiIokI2II9RUjWnHDLS6BIT3maOTtXQEsa+nV1FzRK8lc OaWbzwcBVl9tY8ZNpkIknRmSfgLmdfdM95jGGwbXW4L9w9xohPWYTUUiJaAxOxHMzunO9Ghx6ukS uKwvRTSyS2nKR4pbQwHlb1IZCOzLlVnZGX8pkkDW6G67NkxeElR9vOHfZE3PzIsWMsnymgxYb1Zj kWcguR+Zz2xexdLGGioGGCWGys45s7iwu67SVpcp2M75oZsyy6FMLC/NkWyWfAutVJWiNdONRHGa uVbDlNClxRqE9KjtRcRGKyvJj9CVEwSVnLMai30WAoZKM9yK9WkYPjX5mDeYM9UNjka86fDs6h6J jDkcug8iGFRVX+EW/VKg0eztd6xu/IsnqXrw7ksYPZAy1dSY6yx6De44P4vNvd+vgJEGs6TXpGpv DbBvGCJNsFFLuOaJEi4VUpCJqVzJqviY6xlxQZyeiVrrEtnQ3Ke9ybqThNhoNfl2aEjtCOTrnsO3 uTsBjLrwlmXtLHsk8pSKnKORosz2DQaMZVswlM9rTKkkiRJUMgQiEO0h54OaSGvIO+8MUpcsffuM j8SvPSyoZkcaNTAKNq/Xc2vN7pOjrJWNISBglwEwpbOZoT5tuJezJ9tFND1l82E9+ZOKuaylSdFQ ojre6jNbZIKjLoweEadLUc96W2GiXTRhoz2l0m/uqa1U0vSzExN8WbSKaR6DAH8clVigo0FTiRJm I5e7IQAetUuga3l4lRcnpOmo/K1mxaAILMuYJUXVa77o0xQ5Me6FaMzY7zqyQPA5hZ38A0jqWWkK FaFVxiCQJOB4b9qqSZdLHRHSvSBKu/Vin5aUjkRVBVWvMlHPPfJCcyi51JKu2TXgqA5YcCkHsEgZ U6V5zG6apkwUMosmUuW2zSUu1vBcKDuSZcOV0yoKuCVaOzndBdQ5XBntRtMjrVxXsyYrbaYqJTts NRCe/JZiK/KKl3YLbisrQfvduQzNsikZfK0+TO6MZg01IptpttImRzbLY5yZenY+2icqYNLBk2QB 8ouSz+N1NPmUte+oUVylE8WXDgtO+zDX1Rc8QwBjtgrYY4prolRHt/icR9sYM5sYmyMA5XnDrfxY X6TuaAoqDPB0Bktrv4IqM7gLLThaCx3hs85daSwVTURRmALEiE66zDKNIwc9PuA/OQuJxOgoEvky diQqMIyIWstP8XckU4UJCQdDjiA= --===============3375107453852869355==--