mirror of
https://github.com/MariaDB/server.git
synced 2025-10-12 12:25:37 +03:00
BUG# 10687: MERGE Engine fails on Windows
This is a replacement for the original patch given by Ingo. This one comes from Monty. The problem is that merge files now use unix style pathnames on all platforms. The merge file open code was not properly converting those pathnames back to non-unix when necessary.
This commit is contained in:
@@ -67,7 +67,7 @@ MYRG_INFO *myrg_open(const char *name, int mode, int handle_locking)
|
||||
while ((length=my_b_gets(&file,buff,FN_REFLEN-1)))
|
||||
{
|
||||
if ((end=buff+length)[-1] == '\n')
|
||||
end[-1]='\0';
|
||||
*--end='\0';
|
||||
if (!buff[0])
|
||||
continue; /* Skip empty lines */
|
||||
if (buff[0] == '#')
|
||||
@@ -86,6 +86,8 @@ MYRG_INFO *myrg_open(const char *name, int mode, int handle_locking)
|
||||
sizeof(name_buff)-1-dir_length));
|
||||
VOID(cleanup_dirname(buff,name_buff));
|
||||
}
|
||||
else
|
||||
fn_format(buff, buff, "", "", 0);
|
||||
if (!(isam=mi_open(buff,mode,(handle_locking?HA_OPEN_WAIT_IF_LOCKED:0))))
|
||||
goto err;
|
||||
if (!m_info) /* First file */
|
||||
|
@@ -208,7 +208,7 @@ int test_if_hard_path(register const char *dir_name)
|
||||
|
||||
my_bool has_path(const char *name)
|
||||
{
|
||||
return test(strchr(name, FN_LIBCHAR))
|
||||
return test(strchr(name, FN_LIBCHAR)) || test(strchr(name,'/'))
|
||||
#ifdef FN_DEVCHAR
|
||||
|| test(strchr(name, FN_DEVCHAR))
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user