summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Golubchik <sergii@pisem.net>2011-07-12 08:58:33 +0200
committerSergei Golubchik <sergii@pisem.net>2011-07-12 08:58:33 +0200
commit541469f7cbcbe73ea2f5e915e6fe3b94e2a8059f (patch)
treeb4c62202b5945814113e2ddc3810d37c74bf31db
parent3d4ff9a239d0749dcc7e8c7857c4b2fc3b17f255 (diff)
downloadmariadb-git-541469f7cbcbe73ea2f5e915e6fe3b94e2a8059f.tar.gz
bugfix: create internal temporary tables in mysql_tmpdir, not in datadir
-rw-r--r--sql/sql_select.cc12
1 files changed, 6 insertions, 6 deletions
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index 63eba6b19e3..c7b14fbb675 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -10092,7 +10092,7 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
bool using_unique_constraint= 0;
bool use_packed_rows= 0;
bool not_all_columns= !(select_options & TMP_TABLE_ALL_COLUMNS);
- char *tmpname,path[FN_REFLEN], tmp_table_name[50];
+ char *tmpname,path[FN_REFLEN];
uchar *pos, *group_buff, *bitmaps;
uchar *null_flags;
Field **reg_field, **from_field, **default_field;
@@ -10123,12 +10123,12 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
temp_pool_slot = bitmap_lock_set_next(&temp_pool);
if (temp_pool_slot != MY_BIT_NONE) // we got a slot
- sprintf(tmp_table_name, "%s_%lx_%i", tmp_file_prefix,
+ sprintf(path, "%s_%lx_%i", tmp_file_prefix,
current_pid, temp_pool_slot);
else
{
/* if we run out of slots or we are not using tempool */
- sprintf(tmp_table_name, "%s%lx_%lx_%x", tmp_file_prefix,current_pid,
+ sprintf(path, "%s%lx_%lx_%x", tmp_file_prefix,current_pid,
thd->thread_id, thd->tmp_table++);
}
@@ -10136,7 +10136,7 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
No need to change table name to lower case as we are only creating
MyISAM, Maria or HEAP tables here
*/
- fn_format(path, tmp_table_name, mysql_tmpdir, "",
+ fn_format(path, path, mysql_tmpdir, "",
MY_REPLACE_EXT|MY_UNPACK_FILENAME);
if (group)
@@ -10183,7 +10183,7 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
sizeof(*key_part_info)*(param->group_parts+1),
&param->start_recinfo,
sizeof(*param->recinfo)*(field_count*2+4),
- &tmpname, (uint) strlen(tmp_table_name)+1,
+ &tmpname, (uint) strlen(path)+1,
&group_buff, (group && ! using_unique_constraint ?
param->group_length : 0),
&bitmaps, bitmap_buffer_size(field_count)*2,
@@ -10202,7 +10202,7 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
DBUG_RETURN(NULL); /* purecov: inspected */
}
param->items_to_copy= copy_func;
- strmov(tmpname, tmp_table_name);
+ strmov(tmpname, path);
/* make table according to fields */
bzero((char*) table,sizeof(*table));