summaryrefslogtreecommitdiff
path: root/sql/sql_class.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/sql_class.cc')
-rw-r--r--sql/sql_class.cc11
1 files changed, 8 insertions, 3 deletions
diff --git a/sql/sql_class.cc b/sql/sql_class.cc
index b564775703c..349fc792a2a 100644
--- a/sql/sql_class.cc
+++ b/sql/sql_class.cc
@@ -892,9 +892,14 @@ static File create_file(THD *thd, char *path, sql_exchange *exchange,
option|= MY_REPLACE_DIR; // Force use of db directory
#endif
- strxnmov(path, FN_REFLEN, mysql_real_data_home, thd->db ? thd->db : "",
- NullS);
- (void) fn_format(path, exchange->file_name, path, "", option);
+ if (!dirname_length(exchange->file_name))
+ {
+ strxnmov(path, FN_REFLEN, mysql_real_data_home, thd->db ? thd->db : "", NullS);
+ (void) fn_format(path, exchange->file_name, path, "", option);
+ }
+ else
+ (void) fn_format(path, exchange->file_name, mysql_real_data_home, "", option);
+
if (!access(path, F_OK))
{
my_error(ER_FILE_EXISTS_ERROR, MYF(0), exchange->file_name);