Commit 20ca3286 authored by marty@linux.site's avatar marty@linux.site

Merge mskold@bk-internal.mysql.com:/home/bk/mysql-5.0

into linux.site:/home/marty/MySQL/mysql-5.0
parents 5d2107f9 e6d7c9fc
...@@ -821,7 +821,7 @@ MYSQL_ERROR *push_warning(THD *thd, MYSQL_ERROR::enum_warning_level level, uint ...@@ -821,7 +821,7 @@ MYSQL_ERROR *push_warning(THD *thd, MYSQL_ERROR::enum_warning_level level, uint
const char *msg); const char *msg);
void push_warning_printf(THD *thd, MYSQL_ERROR::enum_warning_level level, void push_warning_printf(THD *thd, MYSQL_ERROR::enum_warning_level level,
uint code, const char *format, ...); uint code, const char *format, ...);
void mysql_reset_errors(THD *thd); void mysql_reset_errors(THD *thd, bool force= false);
bool mysqld_show_warnings(THD *thd, ulong levels_to_show); bool mysqld_show_warnings(THD *thd, ulong levels_to_show);
/* sql_handler.cc */ /* sql_handler.cc */
......
...@@ -1606,6 +1606,7 @@ static int open_unireg_entry(THD *thd, TABLE *entry, const char *db, ...@@ -1606,6 +1606,7 @@ static int open_unireg_entry(THD *thd, TABLE *entry, const char *db,
if (ha_create_table_from_engine(thd, db, name, TRUE) != 0) if (ha_create_table_from_engine(thd, db, name, TRUE) != 0)
goto err; goto err;
mysql_reset_errors(thd, true); // Clear warnings
thd->clear_error(); // Clear error message thd->clear_error(); // Clear error message
continue; continue;
} }
......
...@@ -64,6 +64,7 @@ void MYSQL_ERROR::set_msg(THD *thd, const char *msg_arg) ...@@ -64,6 +64,7 @@ void MYSQL_ERROR::set_msg(THD *thd, const char *msg_arg)
SYNOPSIS SYNOPSIS
mysql_reset_errors() mysql_reset_errors()
thd Thread handle thd Thread handle
force Reset warnings even if it has been done before
IMPLEMENTATION IMPLEMENTATION
Don't reset warnings if this has already been called for this query. Don't reset warnings if this has already been called for this query.
...@@ -71,14 +72,15 @@ void MYSQL_ERROR::set_msg(THD *thd, const char *msg_arg) ...@@ -71,14 +72,15 @@ void MYSQL_ERROR::set_msg(THD *thd, const char *msg_arg)
in which case push_warnings() has already called this function. in which case push_warnings() has already called this function.
*/ */
void mysql_reset_errors(THD *thd) void mysql_reset_errors(THD *thd, bool force)
{ {
DBUG_ENTER("mysql_reset_errors"); DBUG_ENTER("mysql_reset_errors");
if (thd->query_id != thd->warn_id) if (thd->query_id != thd->warn_id || force)
{ {
thd->warn_id= thd->query_id; thd->warn_id= thd->query_id;
free_root(&thd->warn_root,MYF(0)); free_root(&thd->warn_root,MYF(0));
bzero((char*) thd->warn_count, sizeof(thd->warn_count)); bzero((char*) thd->warn_count, sizeof(thd->warn_count));
if (force) thd->total_warn_count= 0;
thd->warn_list.empty(); thd->warn_list.empty();
thd->row_count= 1; // by default point to row 1 thd->row_count= 1; // by default point to row 1
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment