Commit 0e8e44e7 authored by reggie@mdk10.(none)'s avatar reggie@mdk10.(none)

BUG# 10687 - MERGE engine fails under Windows

This patch was submitted by Ingo and it appears to work correctly.
parent b5a60fe2
......@@ -406,8 +406,8 @@ int ha_myisammrg::create(const char *name, register TABLE *form,
This means that it might not be possible to move the DATADIR of
an embedded server without changing the paths in the .MRG file.
*/
uint length= my_snprintf(buff, FN_REFLEN, "%s/%s/%s", mysql_data_home,
tables->db, tables->real_name);
uint length= my_snprintf(buff, FN_REFLEN, "%s%c%s/%s", mysql_data_home,
FN_LIBCHAR, tables->db, tables->real_name);
/*
If a MyISAM table is in the same directory as the MERGE table,
we use the table name without a path. This means that the
......@@ -422,6 +422,7 @@ int ha_myisammrg::create(const char *name, register TABLE *form,
}
else
table_name=(*tbl)->path;
DBUG_PRINT("info",("MyISAM table_name: '%s'", table_name));
*pos++= table_name;
}
*pos=0;
......
......@@ -28,6 +28,7 @@
%#[l]u
%#[l]x
%#.#s Note first # is ignored
%c
RETURN
length of result string
......@@ -120,6 +121,11 @@ int my_vsnprintf(char *to, size_t n, const char* fmt, va_list ap)
to+= res_length;
continue;
}
else if (*fmt == 'c')
{
*(to++)= (char) va_arg(ap, int);
continue;
}
/* We come here on '%%', unknown code or too long parameter */
if (to == end)
break;
......
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