summaryrefslogtreecommitdiff
path: root/sql/sql_base.cc
diff options
context:
space:
mode:
authorunknown <knielsen@knielsen-hq.org>2012-08-24 10:34:55 +0200
committerunknown <knielsen@knielsen-hq.org>2012-08-24 10:34:55 +0200
commit4997ddfa9e4399915091a2a726f3d043927c4118 (patch)
treef0e977456b81554e03acd56307177d315fd75448 /sql/sql_base.cc
parent115a2967563d3ac734ce371260098710ba42cdf0 (diff)
parentcdeabcfd436c65e0a97e74b1722d0259ba907541 (diff)
downloadmariadb-git-4997ddfa9e4399915091a2a726f3d043927c4118.tar.gz
Merge with latest 5.1.
Diffstat (limited to 'sql/sql_base.cc')
-rw-r--r--sql/sql_base.cc22
1 files changed, 11 insertions, 11 deletions
diff --git a/sql/sql_base.cc b/sql/sql_base.cc
index 77ba3c5099c..01ae9160b24 100644
--- a/sql/sql_base.cc
+++ b/sql/sql_base.cc
@@ -4176,22 +4176,22 @@ retry:
entry->file->implicit_emptied= 0;
if (mysql_bin_log.is_open())
{
- char *query, *end;
- uint query_buf_size= 20 + share->db.length + share->table_name.length +1;
- if ((query= (char*) my_malloc(query_buf_size,MYF(MY_WME))))
+ char query_buf[2*FN_REFLEN + 21];
+ String query(query_buf, sizeof(query_buf), system_charset_info);
+ query.length(0);
+ if (query.ptr())
{
/* this DELETE FROM is needed even with row-based binlogging */
- end = strxmov(strmov(query, "DELETE FROM `"),
- share->db.str,"`.`",share->table_name.str,"`", NullS);
+ query.append("DELETE FROM ");
+ append_identifier(thd, &query, share->db.str, share->db.length);
+ query.append(".");
+ append_identifier(thd, &query, share->table_name.str,
+ share->table_name.length);
int errcode= query_error_code(thd, TRUE);
if (thd->binlog_query(THD::STMT_QUERY_TYPE,
- query, (ulong)(end-query),
+ query.ptr(), query.length(),
FALSE, FALSE, errcode))
- {
- my_free(query, MYF(0));
goto err;
- }
- my_free(query, MYF(0));
}
else
{
@@ -4201,7 +4201,7 @@ retry:
because of MYF(MY_WME) in my_malloc() above).
*/
sql_print_error("When opening HEAP table, could not allocate memory "
- "to write 'DELETE FROM `%s`.`%s`' to the binary log",
+ "to write 'DELETE FROM %`s.%`s' to the binary log",
table_list->db, table_list->table_name);
delete entry->triggers;
closefrm(entry, 0);