summaryrefslogtreecommitdiff
path: root/sql/sql_load.cc
diff options
context:
space:
mode:
authorMichael Widenius <monty@askmonty.org>2011-02-28 13:16:17 +0200
committerMichael Widenius <monty@askmonty.org>2011-02-28 13:16:17 +0200
commit869f5d0e81d5cbecaec3605f292fbb363b9ccbf6 (patch)
tree9e2bc4700a2db961d967e53f00c941f3ee501173 /sql/sql_load.cc
parentcfa0c6ff1d8f7268f895d79daf94e7d29197327d (diff)
parentff3da0f963b28d128005da8ca5d0c93a72d34b27 (diff)
downloadmariadb-git-869f5d0e81d5cbecaec3605f292fbb363b9ccbf6.tar.gz
Merge with alias as String
Diffstat (limited to 'sql/sql_load.cc')
-rw-r--r--sql/sql_load.cc15
1 files changed, 10 insertions, 5 deletions
diff --git a/sql/sql_load.cc b/sql/sql_load.cc
index a909335bfa7..f440f78a9bc 100644
--- a/sql/sql_load.cc
+++ b/sql/sql_load.cc
@@ -604,11 +604,15 @@ static bool write_execute_load_query_log_event(THD *thd, sql_exchange* ex,
size_t pl= 0;
List<Item> fv;
Item *item, *val;
- String pfield, pfields;
int n;
const char *tbl= table_name_arg;
const char *tdb= (thd->db != NULL ? thd->db : db_arg);
- String string_buf;
+ char name_buffer[SAFE_NAME_LEN*2];
+ char command_buffer[1024];
+ String string_buf(name_buffer, sizeof(name_buffer),
+ system_charset_info);
+ String pfields(command_buffer, sizeof(command_buffer),
+ system_charset_info);
if (!thd->db || strcmp(db_arg, thd->db))
{
@@ -617,7 +621,7 @@ static bool write_execute_load_query_log_event(THD *thd, sql_exchange* ex,
prefix table name with database name so that it
becomes a FQ name.
*/
- string_buf.set_charset(system_charset_info);
+ string_buf.length(0);
string_buf.append(db_arg);
string_buf.append("`");
string_buf.append(".");
@@ -638,6 +642,7 @@ static bool write_execute_load_query_log_event(THD *thd, sql_exchange* ex,
/*
prepare fields-list and SET if needed; print_query won't do that for us.
*/
+ pfields.length(0);
if (!thd->lex->field_list.is_empty())
{
List_iterator<Item> li(thd->lex->field_list);
@@ -682,8 +687,8 @@ static bool write_execute_load_query_log_event(THD *thd, sql_exchange* ex,
}
}
- p= pfields.c_ptr_safe();
- pl= strlen(p);
+ p= pfields.c_ptr_safe();
+ pl= pfields.length();
if (!(load_data_query= (char *)thd->alloc(lle.get_query_buffer_length() + 1 + pl)))
return TRUE;