summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <Sinisa@sinisa.nasamreza.org>2003-02-26 15:33:20 +0200
committerunknown <Sinisa@sinisa.nasamreza.org>2003-02-26 15:33:20 +0200
commitc976968d1d3c48b18cb214b1500d299fcde8ba04 (patch)
tree8c8308b8e26a79209e5e278b962b858a6e7e5365
parentbebafeba4480537414e11dbe8ce08414077e5c78 (diff)
parent8300158d768b4b25633c707137b2713d4433e973 (diff)
downloadmariadb-git-c976968d1d3c48b18cb214b1500d299fcde8ba04.tar.gz
Merge sinisa@work.mysql.com://home/bk/mysql-4.0
into sinisa.nasamreza.org:/mnt/work/mysql-4.0
-rw-r--r--sql/sql_load.cc11
1 files changed, 9 insertions, 2 deletions
diff --git a/sql/sql_load.cc b/sql/sql_load.cc
index ba62b1d5c20..c4ea41cbb69 100644
--- a/sql/sql_load.cc
+++ b/sql/sql_load.cc
@@ -90,6 +90,13 @@ int mysql_load(THD *thd,sql_exchange *ex,TABLE_LIST *table_list,
bool is_fifo=0;
LOAD_FILE_INFO lf_info;
char * db = table_list->db ? table_list->db : thd->db;
+ char * tdb= thd->db ? thd->db : db;
+/*
+ 'tdb' can be NULL only if both table_list->db and thd->db are NULL
+ 'db' itself can be NULL. but in that case it will generate
+ an error earlier open_ltable()).
+*/
+
bool transactional_table, log_delayed;
DBUG_ENTER("mysql_load");
@@ -168,10 +175,10 @@ int mysql_load(THD *thd,sql_exchange *ex,TABLE_LIST *table_list,
ex->file_name+=dirname_length(ex->file_name);
#endif
if (!dirname_length(ex->file_name) &&
- strlen(ex->file_name)+strlen(mysql_data_home)+strlen(thd->db)+3 <
+ strlen(ex->file_name)+strlen(mysql_data_home)+strlen(tdb)+3 <
FN_REFLEN)
{
- (void) sprintf(name,"%s/%s/%s",mysql_data_home,thd->db,ex->file_name);
+ (void) sprintf(name,"%s/%s/%s",mysql_data_home,tdb,ex->file_name);
unpack_filename(name,name); /* Convert to system format */
}
else