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