summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mysys/mf_iocache2.c9
-rw-r--r--sql/log_event.cc14
2 files changed, 15 insertions, 8 deletions
diff --git a/mysys/mf_iocache2.c b/mysys/mf_iocache2.c
index 04d2bc34ae4..1b0375cb88e 100644
--- a/mysys/mf_iocache2.c
+++ b/mysys/mf_iocache2.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+/* Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -408,6 +408,13 @@ process_flags:
if (my_b_write(info, (uchar*) par, length2))
goto err;
}
+ else if (*fmt == 'c') /* char type parameter */
+ {
+ char par[2];
+ par[0] = va_arg(args, int);
+ if (my_b_write(info, (uchar*) par, 1))
+ goto err;
+ }
else if (*fmt == 'b') /* Sized buffer parameter, only precision makes sense */
{
char *par = va_arg(args, char *);
diff --git a/sql/log_event.cc b/sql/log_event.cc
index fea7c863cbc..40e626f1083 100644
--- a/sql/log_event.cc
+++ b/sql/log_event.cc
@@ -4384,7 +4384,7 @@ uint Load_log_event::get_query_buffer_length()
return
//the DB name may double if we escape the quote character
5 + 2*db_len + 3 +
- 18 + fname_len + 2 + // "LOAD DATA INFILE 'file''"
+ 18 + fname_len*4 + 2 + // "LOAD DATA INFILE 'file''"
11 + // "CONCURRENT "
7 + // LOCAL
9 + // " REPLACE or IGNORE "
@@ -4430,9 +4430,9 @@ void Load_log_event::print_query(bool need_db, const char *cs, char *buf,
if (check_fname_outside_temp_buf())
pos= strmov(pos, "LOCAL ");
- pos= strmov(pos, "INFILE '");
- memcpy(pos, fname, fname_len);
- pos= strmov(pos+fname_len, "' ");
+ pos= strmov(pos, "INFILE ");
+ pos= pretty_print_str(pos, fname, fname_len);
+ pos= strmov(pos, " ");
if (sql_ex.opt_flags & REPLACE_FLAG)
pos= strmov(pos, "REPLACE ");
@@ -7339,9 +7339,9 @@ void Execute_load_query_log_event::print(FILE* file,
if (local_fname)
{
my_b_write(&cache, (uchar*) query, fn_pos_start);
- my_b_printf(&cache, " LOCAL INFILE \'");
- my_b_printf(&cache, "%s", local_fname);
- my_b_printf(&cache, "\'");
+ my_b_printf(&cache, " LOCAL INFILE ");
+ pretty_print_str(&cache, local_fname, strlen(local_fname));
+
if (dup_handling == LOAD_DUP_REPLACE)
my_b_printf(&cache, " REPLACE");
my_b_printf(&cache, " INTO");