diff options
author | unknown <gluh@mysql.com/eagle.(none)> | 2007-01-11 16:50:34 +0400 |
---|---|---|
committer | unknown <gluh@mysql.com/eagle.(none)> | 2007-01-11 16:50:34 +0400 |
commit | b73c5cdc31a3649d96367508bca7d0a63ea0ee1d (patch) | |
tree | 520a871563b9164c6dc91fbca9d2016e5d5b7ded /sql/sql_base.cc | |
parent | 93c01eb13e54e726b042faf4db5dfb2a6e3e15ff (diff) | |
download | mariadb-git-b73c5cdc31a3649d96367508bca7d0a63ea0ee1d.tar.gz |
after merge fix
Diffstat (limited to 'sql/sql_base.cc')
-rw-r--r-- | sql/sql_base.cc | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/sql/sql_base.cc b/sql/sql_base.cc index 3de7d4375f1..6ecb8d42c7b 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -6076,7 +6076,7 @@ my_bool mysql_rm_tmp_tables(void) char filePath[FN_REFLEN], *tmpdir, filePathCopy[FN_REFLEN]; MY_DIR *dirp; FILEINFO *file; - TABLE tmp_table; + TABLE_SHARE share; THD *thd; DBUG_ENTER("mysql_rm_tmp_tables"); @@ -6108,21 +6108,24 @@ my_bool mysql_rm_tmp_tables(void) char *ext= fn_ext(file->name); uint ext_len= strlen(ext); uint filePath_len= my_snprintf(filePath, sizeof(filePath), - "%s%c%s", FN_LIBCHAR,tmpdir, + "%s%c%s", tmpdir, FN_LIBCHAR, file->name); if (!bcmp(reg_ext, ext, ext_len)) { - TABLE tmp_table; - if (!openfrm(thd, filePath, "tmp_table", (uint) 0, - READ_KEYINFO | COMPUTE_TYPES | EXTRA_RECORD, - 0, &tmp_table)) + handler *handler_file= 0; + /* We should cut file extention before deleting of table */ + memcpy(filePathCopy, filePath, filePath_len - ext_len); + filePathCopy[filePath_len - ext_len]= 0; + init_tmp_table_share(&share, "", 0, "", filePathCopy); + if (!open_table_def(thd, &share, 0) && + ((handler_file= get_new_handler(&share, thd->mem_root, + share.db_type)))) { - /* We should cut file extention before deleting of table */ - memcpy(filePathCopy, filePath, filePath_len - ext_len); - filePathCopy[filePath_len - ext_len]= 0; - tmp_table.file->delete_table(filePathCopy); - closefrm(&tmp_table); + handler_file->delete_table(filePathCopy); + delete handler_file; } + free_table_share(&share); + } } /* File can be already deleted by tmp_table.file->delete_table(). |