summaryrefslogtreecommitdiff
path: root/sql/log_event.cc
diff options
context:
space:
mode:
authorVladislav Vaintroub <vvaintroub@mysql.com>2009-12-19 14:11:48 +0100
committerVladislav Vaintroub <vvaintroub@mysql.com>2009-12-19 14:11:48 +0100
commit3de04825514e4dc3fd6f1a8f5eb18a280f817699 (patch)
treed5461ec6ad35812385dd5cfef327052838c471b4 /sql/log_event.cc
parent4f233c43b11b6f4f159350a192fa3fb3e3ce6c9a (diff)
parent02b76970c5da2b836d322e4189cdde79a5c15f4c (diff)
downloadmariadb-git-3de04825514e4dc3fd6f1a8f5eb18a280f817699.tar.gz
merge
Diffstat (limited to 'sql/log_event.cc')
-rw-r--r--sql/log_event.cc13
1 files changed, 9 insertions, 4 deletions
diff --git a/sql/log_event.cc b/sql/log_event.cc
index 10b4ecd3f7b..9cfa6cf1540 100644
--- a/sql/log_event.cc
+++ b/sql/log_event.cc
@@ -2139,8 +2139,8 @@ void Query_log_event::pack_info(Protocol *protocol)
/**
Utility function for the next method (Query_log_event::write()) .
*/
-static void write_str_with_code_and_len(char **dst, const char *src,
- int len, uint code)
+static void write_str_with_code_and_len(uchar **dst, const char *src,
+ uint len, uint code)
{
/*
only 1 byte to store the length of catalog, so it should not
@@ -2235,7 +2235,7 @@ bool Query_log_event::write(IO_CACHE* file)
}
if (catalog_len) // i.e. this var is inited (false for 4.0 events)
{
- write_str_with_code_and_len((char **)(&start),
+ write_str_with_code_and_len(&start,
catalog, catalog_len, Q_CATALOG_NZ_CODE);
/*
In 5.0.x where x<4 masters we used to store the end zero here. This was
@@ -2273,7 +2273,7 @@ bool Query_log_event::write(IO_CACHE* file)
{
/* In the TZ sys table, column Name is of length 64 so this should be ok */
DBUG_ASSERT(time_zone_len <= MAX_TIME_ZONE_NAME_LENGTH);
- write_str_with_code_and_len((char **)(&start),
+ write_str_with_code_and_len(&start,
time_zone_str, time_zone_len, Q_TIME_ZONE_CODE);
}
if (lc_time_names_number)
@@ -4035,6 +4035,7 @@ uint Load_log_event::get_query_buffer_length()
return
5 + db_len + 3 + // "use DB; "
18 + fname_len + 2 + // "LOAD DATA INFILE 'file''"
+ 11 + // "CONCURRENT "
7 + // LOCAL
9 + // " REPLACE or IGNORE "
13 + table_name_len*2 + // "INTO TABLE `table`"
@@ -4062,6 +4063,9 @@ void Load_log_event::print_query(bool need_db, const char *cs, char *buf,
pos= strmov(pos, "LOAD DATA ");
+ if (thd->lex->lock_option == TL_WRITE_CONCURRENT_INSERT)
+ pos= strmov(pos, "CONCURRENT ");
+
if (fn_start)
*fn_start= pos;
@@ -4539,6 +4543,7 @@ int Load_log_event::do_apply_event(NET* net, Relay_log_info const *rli,
as the present method does not call mysql_parse().
*/
lex_start(thd);
+ thd->lex->local_file= local_fname;
mysql_reset_thd_for_next_command(thd);
if (!use_rli_only_for_errors)