diff options
-rw-r--r-- | storage/myisam/mi_create.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/storage/myisam/mi_create.c b/storage/myisam/mi_create.c index 2b8cbcc7da5..e2245aff065 100644 --- a/storage/myisam/mi_create.c +++ b/storage/myisam/mi_create.c @@ -599,10 +599,12 @@ int mi_create(const char *name,uint keys,MI_KEYDEF *keydefs, } else { + char *iext= strrchr(name, '.'); + int have_iext= iext && !strcmp(iext, MI_NAME_IEXT); fn_format(filename, name, "", MI_NAME_IEXT, - (MY_UNPACK_FILENAME | - (flags & HA_DONT_TOUCH_DATA) ? MY_RETURN_REAL_PATH : 0) | - MY_APPEND_EXT); + MY_UNPACK_FILENAME | + ((flags & HA_DONT_TOUCH_DATA) ? MY_RETURN_REAL_PATH : 0) | + (have_iext ? MY_REPLACE_EXT : MY_APPEND_EXT)); linkname_ptr=0; /* Replace the current file */ create_flag=MY_DELETE_OLD; |