mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
BUG# 10687 - MERGE engine fails under Windows
This patch was submitted by Ingo and it appears to work correctly. sql/ha_myisammrg.cc: use FN_LIBCHAR instead of / so buff works correctly on Windows strings/my_vsnprintf.c: add support for %c to my_vsnprintf
This commit is contained in:
@ -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;
|
||||
|
Reference in New Issue
Block a user