diff options
author | unknown <monty@mysql.com> | 2005-02-25 17:12:06 +0200 |
---|---|---|
committer | unknown <monty@mysql.com> | 2005-02-25 17:12:06 +0200 |
commit | 08b3e79e409c79e09751ac8fd684898e390737d3 (patch) | |
tree | 6fc367f3ae7c8968bf852d78cccec9f8c03ab417 /sql/protocol.cc | |
parent | c5d4d50ab703d9b3cb087ea5e721baed6fbdab8c (diff) | |
parent | 248e44945161ec6a84072c8684447aeb702e5bd7 (diff) | |
download | mariadb-git-08b3e79e409c79e09751ac8fd684898e390737d3.tar.gz |
Merge with global tree
mysql-test/r/innodb.result:
Auto merged
mysql-test/t/innodb.test:
Auto merged
mysql-test/t/rpl_rotate_logs.test:
Auto merged
sql/item.cc:
Auto merged
sql/log.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/opt_range.cc:
Auto merged
sql/protocol.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_db.cc:
Auto merged
sql/sql_select.cc:
Auto merged
tests/mysql_client_test.c:
Auto merged
sql/examples/ha_archive.cc:
Merge with global tree
(Use my changes)
sql/sql_parse.cc:
Remove 'tmp' fix to be able to run tests
Diffstat (limited to 'sql/protocol.cc')
-rw-r--r-- | sql/protocol.cc | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/sql/protocol.cc b/sql/protocol.cc index e14262fdbe0..81444500421 100644 --- a/sql/protocol.cc +++ b/sql/protocol.cc @@ -59,8 +59,8 @@ void net_send_error(THD *thd, uint sql_errno, const char *err) uint length; char buff[MYSQL_ERRMSG_SIZE+2], *pos; #endif - const char *orig_err= err; NET *net= &thd->net; + bool generate_warning= 1; DBUG_ENTER("net_send_error"); DBUG_PRINT("enter",("sql_errno: %d err: %s", sql_errno, err ? err : net->last_error[0] ? @@ -85,14 +85,22 @@ void net_send_error(THD *thd, uint sql_errno, const char *err) else { if ((err=net->last_error)[0]) + { sql_errno=net->last_errno; + generate_warning= 0; // This warning has already been given + } else { sql_errno=ER_UNKNOWN_ERROR; err=ER(sql_errno); /* purecov: inspected */ } } - orig_err= err; + } + + if (generate_warning) + { + /* Error that we have not got with my_error() */ + push_warning(thd, MYSQL_ERROR::WARN_LEVEL_ERROR, sql_errno, err); } #ifdef EMBEDDED_LIBRARY @@ -131,8 +139,6 @@ void net_send_error(THD *thd, uint sql_errno, const char *err) } VOID(net_write_command(net,(uchar) 255, "", 0, (char*) err,length)); #endif /* EMBEDDED_LIBRARY*/ - push_warning(thd, MYSQL_ERROR::WARN_LEVEL_ERROR, sql_errno, - orig_err ? orig_err : ER(sql_errno)); thd->is_fatal_error=0; // Error message is given thd->net.report_error= 0; |