Commit 9e636a24 authored by unknown's avatar unknown

- Backport of the patch to fix BUG#10687 (Merge engine fails

  on Windows): applied required patches on top of the 4.1.12
  release (will be published as 4.1.12a for Windows)


myisammrg/myrg_open.c:
  - Backport of the patch to fix BUG#10687 (Merge engine fails 
    under Windows): use fn_format to convert pathnames if the files 
    in the merge file have a pathname
mysys/my_getwd.c:
  - Backport of the patch to fix BUG#10687 (Merge engine fails 
    on Windows): Added test to see if FN_LIBCHAR != '/' before
    doing comparison to avoid redundant comparison
sql/ha_myisammrg.cc:
  - Backport of the patch to fix BUG#10687 (Merge engine fails 
    on Windows): added extra debug output
parent 420e480e
...@@ -67,7 +67,7 @@ MYRG_INFO *myrg_open(const char *name, int mode, int handle_locking) ...@@ -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))) while ((length=my_b_gets(&file,buff,FN_REFLEN-1)))
{ {
if ((end=buff+length)[-1] == '\n') if ((end=buff+length)[-1] == '\n')
end[-1]='\0'; *--end='\0';
if (!buff[0]) if (!buff[0])
continue; /* Skip empty lines */ continue; /* Skip empty lines */
if (buff[0] == '#') if (buff[0] == '#')
...@@ -86,6 +86,8 @@ MYRG_INFO *myrg_open(const char *name, int mode, int handle_locking) ...@@ -86,6 +86,8 @@ MYRG_INFO *myrg_open(const char *name, int mode, int handle_locking)
sizeof(name_buff)-1-dir_length)); sizeof(name_buff)-1-dir_length));
VOID(cleanup_dirname(buff,name_buff)); 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)))) if (!(isam=mi_open(buff,mode,(handle_locking?HA_OPEN_WAIT_IF_LOCKED:0))))
goto err; goto err;
if (!m_info) /* First file */ if (!m_info) /* First file */
......
...@@ -208,7 +208,10 @@ int test_if_hard_path(register const char *dir_name) ...@@ -208,7 +208,10 @@ int test_if_hard_path(register const char *dir_name)
my_bool has_path(const char *name) my_bool has_path(const char *name)
{ {
return test(strchr(name, FN_LIBCHAR)) return test(strchr(name, FN_LIBCHAR))
#if FN_LIBCHAR != '/'
|| test(strchr(name,'/'))
#endif
#ifdef FN_DEVCHAR #ifdef FN_DEVCHAR
|| test(strchr(name, FN_DEVCHAR)) || test(strchr(name, FN_DEVCHAR))
#endif #endif
......
...@@ -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;
......
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