diff options
author | Alexander Nozdrin <alik@sun.com> | 2010-01-31 00:12:29 +0300 |
---|---|---|
committer | Alexander Nozdrin <alik@sun.com> | 2010-01-31 00:12:29 +0300 |
commit | 2cdad6c3eb353cc4d986c274caad2dad5eaa6494 (patch) | |
tree | f2eeac784b7db952ba98d0ce33063cd5fdcf1b2f | |
parent | 7e4234b4f5c60747fecf17a2ffcd4d11199fca04 (diff) | |
parent | 5aa4c33e3233e2c1cac9f3bb0b17379a56503666 (diff) | |
download | mariadb-git-2cdad6c3eb353cc4d986c274caad2dad5eaa6494.tar.gz |
Manual merge from mysql-trunk-merge.
Conflicts:
- mysql-test/suite/binlog/t/binlog_write_error.test
- sql/log.cc
- sql/log_event.cc
- sql/log_event_old.cc
- sql/mysql_priv.h
- sql/sp.cc
- sql/sql_acl.cc
- sql/sql_base.cc
- sql/sql_delete.cc
- sql/sql_insert.cc
- sql/sql_load.cc
- sql/sql_table.cc
- sql/sql_udf.cc
- sql/sql_update.cc
- sql/sql_view.cc
-rw-r--r-- | sql/log.cc | 2 | ||||
-rw-r--r-- | sql/sql_udf.cc | 10 | ||||
-rw-r--r-- | sql/sql_update.cc | 1 |
3 files changed, 10 insertions, 3 deletions
diff --git a/sql/log.cc b/sql/log.cc index 35a5885ca0f..26cfdb615fe 100644 --- a/sql/log.cc +++ b/sql/log.cc @@ -1753,7 +1753,7 @@ static int binlog_rollback(handlerton *hton, THD *thd, bool all) */ if (cache_mngr->stmt_cache.has_incident()) { - mysql_bin_log.write_incident(thd, TRUE); + error= mysql_bin_log.write_incident(thd, TRUE); cache_mngr->reset_cache(&cache_mngr->stmt_cache); } else if (!cache_mngr->stmt_cache.empty()) diff --git a/sql/sql_udf.cc b/sql/sql_udf.cc index 57c9110405a..d0e446fb157 100644 --- a/sql/sql_udf.cc +++ b/sql/sql_udf.cc @@ -531,8 +531,11 @@ int mysql_create_function(THD *thd,udf_func *udf) /* Binlog the create function. */ if (write_bin_log(thd, TRUE, thd->query(), thd->query_length())) + { + /* Restore the state of binlog format */ + thd->current_stmt_binlog_row_based= save_binlog_row_based; DBUG_RETURN(1); - + } /* Restore the state of binlog format */ thd->current_stmt_binlog_row_based= save_binlog_row_based; DBUG_RETURN(0); @@ -612,8 +615,11 @@ int mysql_drop_function(THD *thd,const LEX_STRING *udf_name) /* Binlog the drop function. */ if (write_bin_log(thd, TRUE, thd->query(), thd->query_length())) + { + /* Restore the state of binlog format */ + thd->current_stmt_binlog_row_based= save_binlog_row_based; DBUG_RETURN(1); - + } /* Restore the state of binlog format */ thd->current_stmt_binlog_row_based= save_binlog_row_based; DBUG_RETURN(0); diff --git a/sql/sql_update.cc b/sql/sql_update.cc index 4e5941a87a0..97abf2cd89b 100644 --- a/sql/sql_update.cc +++ b/sql/sql_update.cc @@ -1868,6 +1868,7 @@ void multi_update::abort() into repl event. */ int errcode= query_error_code(thd, thd->killed == THD::NOT_KILLED); + /* the error of binary logging is ignored */ (void)thd->binlog_query(THD::ROW_QUERY_TYPE, thd->query(), thd->query_length(), transactional_tables, FALSE, FALSE, errcode); |