Commit 22bce83c authored by ram@mysql.r18.ru's avatar ram@mysql.r18.ru

Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.0

into mysql.r18.ru:/usr/home/ram/work/4.0
parents 15346c8a c96c87d5
This diff is collapsed.
...@@ -1289,7 +1289,10 @@ void Load_log_event::print(FILE* file, bool short_form, char* last_db) ...@@ -1289,7 +1289,10 @@ void Load_log_event::print(FILE* file, bool short_form, char* last_db)
if (db && db[0] && !same_db) if (db && db[0] && !same_db)
fprintf(file, "use %s;\n", db); fprintf(file, "use %s;\n", db);
fprintf(file, "LOAD DATA INFILE '%-*s' ", fname_len, fname); fprintf(file, "LOAD DATA ");
if (check_fname_outside_temp_buf())
fprintf(file, "LOCAL ");
fprintf(file, "INFILE '%-*s' ", fname_len, fname);
if (sql_ex.opt_flags & REPLACE_FLAG ) if (sql_ex.opt_flags & REPLACE_FLAG )
fprintf(file," REPLACE "); fprintf(file," REPLACE ");
...@@ -1551,13 +1554,31 @@ Create_file_log_event::Create_file_log_event(const char* buf, int len, ...@@ -1551,13 +1554,31 @@ Create_file_log_event::Create_file_log_event(const char* buf, int len,
#ifdef MYSQL_CLIENT #ifdef MYSQL_CLIENT
void Create_file_log_event::print(FILE* file, bool short_form, void Create_file_log_event::print(FILE* file, bool short_form,
char* last_db) char* last_db, bool enable_local)
{ {
if (short_form) if (short_form)
{
if (enable_local && check_fname_outside_temp_buf())
Load_log_event::print(file, 1, last_db);
return; return;
}
if (enable_local)
{
if (!check_fname_outside_temp_buf())
fprintf(file, "#");
Load_log_event::print(file, 1, last_db); Load_log_event::print(file, 1, last_db);
fprintf(file, "#");
}
fprintf(file, " file_id: %d block_len: %d\n", file_id, block_len); fprintf(file, " file_id: %d block_len: %d\n", file_id, block_len);
} }
void Create_file_log_event::print(FILE* file, bool short_form,
char* last_db)
{
print(file,short_form,last_db,0);
}
#endif #endif
#ifndef MYSQL_CLIENT #ifndef MYSQL_CLIENT
......
...@@ -404,6 +404,13 @@ public: ...@@ -404,6 +404,13 @@ public:
uint32 skip_lines; uint32 skip_lines;
sql_ex_info sql_ex; sql_ex_info sql_ex;
/* fname doesn't point to memory inside Log_event::temp_buf */
void set_fname_outside_temp_buf(const char *afname, uint alen)
{fname=afname;fname_len=alen;}
/* fname doesn't point to memory inside Log_event::temp_buf */
int check_fname_outside_temp_buf()
{return fname<temp_buf || fname>temp_buf+cached_event_len;}
#ifndef MYSQL_CLIENT #ifndef MYSQL_CLIENT
String field_lens_buf; String field_lens_buf;
String fields_buf; String fields_buf;
...@@ -636,6 +643,7 @@ public: ...@@ -636,6 +643,7 @@ public:
int exec_event(struct st_relay_log_info* rli); int exec_event(struct st_relay_log_info* rli);
#else #else
void print(FILE* file, bool short_form = 0, char* last_db = 0); void print(FILE* file, bool short_form = 0, char* last_db = 0);
void print(FILE* file, bool short_form, char* last_db, bool enable_local);
#endif #endif
Create_file_log_event(const char* buf, int event_len, bool old_format); Create_file_log_event(const char* buf, int event_len, bool old_format);
......
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