diff options
-rw-r--r-- | mysys/mf_iocache2.c | 9 | ||||
-rw-r--r-- | sql/log_event.cc | 14 |
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"); |