Commit 69859967 authored by unknown's avatar unknown

Fix for sporadically failures of innodb.test on Darwin 7.3

which occured because we were not lowering case of file names 
for temporary tables altough handler assumes so if 
lower_case_table_names==2. Now we are lowering case for them.


sql/sql_select.cc:
  Now we are lowering case of file names for temporary tables.
sql/sql_table.cc:
  Now we are lowering case of file names for temporary tables.
parent 88da3ae5
...@@ -4909,6 +4909,9 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields, ...@@ -4909,6 +4909,9 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
else // if we run out of slots or we are not using tempool else // if we run out of slots or we are not using tempool
sprintf(path,"%s%s%lx_%lx_%x",mysql_tmpdir,tmp_file_prefix,current_pid, sprintf(path,"%s%s%lx_%lx_%x",mysql_tmpdir,tmp_file_prefix,current_pid,
thd->thread_id, thd->tmp_table++); thd->thread_id, thd->tmp_table++);
if (lower_case_table_names)
my_casedn_str(files_charset_info, path);
if (group) if (group)
{ {
......
...@@ -1159,6 +1159,8 @@ int mysql_create_table(THD *thd,const char *db, const char *table_name, ...@@ -1159,6 +1159,8 @@ int mysql_create_table(THD *thd,const char *db, const char *table_name,
my_snprintf(path, sizeof(path), "%s%s%lx_%lx_%x%s", my_snprintf(path, sizeof(path), "%s%s%lx_%lx_%x%s",
mysql_tmpdir, tmp_file_prefix, current_pid, thd->thread_id, mysql_tmpdir, tmp_file_prefix, current_pid, thd->thread_id,
thd->tmp_table++, reg_ext); thd->tmp_table++, reg_ext);
if (lower_case_table_names)
my_casedn_str(files_charset_info, path);
create_info->table_options|=HA_CREATE_DELAY_KEY_WRITE; create_info->table_options|=HA_CREATE_DELAY_KEY_WRITE;
} }
else else
...@@ -2086,6 +2088,8 @@ int mysql_create_like_table(THD* thd, TABLE_LIST* table, ...@@ -2086,6 +2088,8 @@ int mysql_create_like_table(THD* thd, TABLE_LIST* table,
my_snprintf(dst_path, sizeof(dst_path), "%s%s%lx_%lx_%x%s", my_snprintf(dst_path, sizeof(dst_path), "%s%s%lx_%lx_%x%s",
mysql_tmpdir, tmp_file_prefix, current_pid, mysql_tmpdir, tmp_file_prefix, current_pid,
thd->thread_id, thd->tmp_table++, reg_ext); thd->thread_id, thd->tmp_table++, reg_ext);
if (lower_case_table_names)
my_casedn_str(files_charset_info, dst_path);
create_info->table_options|= HA_CREATE_DELAY_KEY_WRITE; create_info->table_options|= HA_CREATE_DELAY_KEY_WRITE;
} }
else else
...@@ -3044,6 +3048,8 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name, ...@@ -3044,6 +3048,8 @@ int mysql_alter_table(THD *thd,char *new_db, char *new_name,
thd->proc_info="rename result table"; thd->proc_info="rename result table";
my_snprintf(old_name, sizeof(old_name), "%s2-%lx-%lx", tmp_file_prefix, my_snprintf(old_name, sizeof(old_name), "%s2-%lx-%lx", tmp_file_prefix,
current_pid, thd->thread_id); current_pid, thd->thread_id);
if (lower_case_table_names)
my_casedn_str(files_charset_info, old_name);
if (new_name != table_name || new_db != db) if (new_name != table_name || new_db != db)
{ {
if (!access(new_name_buff,F_OK)) if (!access(new_name_buff,F_OK))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment