diff options
author | unknown <monty@mysql.com> | 2005-02-24 23:33:42 +0200 |
---|---|---|
committer | unknown <monty@mysql.com> | 2005-02-24 23:33:42 +0200 |
commit | eb18f93a7847ca6cdb8430d4500a797fe68826db (patch) | |
tree | 7dbb7787461bf6040b70c1701768dfa24df638d8 /sql/protocol.cc | |
parent | a2a1449c36c8124c808ab207d92a0749346b9d15 (diff) | |
download | mariadb-git-eb18f93a7847ca6cdb8430d4500a797fe68826db.tar.gz |
Show all generated warnings in SHOW ERROR
Previously we only stored the first given error (the error sent to the client)
include/mysys_err.h:
Moved ER_FILENOTFOUND last to avoid getting 'error 0'
mysql-test/r/backup.result:
More warnings from in case of errors
mysql-test/r/innodb.result:
More warnings from in case of errors
mysql-test/r/key_cache.result:
More warnings from in case of errors
mysql-test/r/myisam.result:
More warnings from in case of errors
mysql-test/r/preload.result:
More warnings from in case of errors
mysql-test/r/repair.result:
More warnings from in case of errors
mysql-test/r/rpl_failed_optimize.result:
More warnings from in case of errors
mysql-test/r/subselect.result:
More warnings from in case of errors
mysql-test/t/backup.test:
Portability fix
mysql-test/t/innodb.test:
Avoid some warnings
mysql-test/t/myisam.test:
Portability fix
mysql-test/t/rpl_rotate_logs.test:
Portablitiy fix
mysys/errors.c:
Move ER_FILENOTFOUND last to avoid error 0
sql/mysql_priv.h:
Indentation change
sql/mysqld.cc:
Save all given errors for SHOW ERRORS
sql/protocol.cc:
Store new errors for SHOW ERROR
(Ignore those that are already reported with my_error())
sql/sql_class.cc:
More errors with SHOW ERROR
sql/sql_class.h:
More errors with SHOW ERROR
sql/sql_error.cc:
More errors with SHOW ERROR
sql/sql_parse.cc:
Temporary fix: Don't give error for the to-be-removed 'pre-open tables code'
sql/sql_show.cc:
More debugging
Don't register errors while populating schema tables.
(If we do, we get a LOT of warnings from information_schema.test)
sql/sql_table.cc:
Don't register errors from handler in drop table (as we already do it the upper level DROP TABLE code)
Don't register errors for 'restore_table' as in most cases the table doesn't exists
sql/sql_union.cc:
Use file->write_row() instead of 'write_record'.
This gives us easer to handle error messages and is faster than the old version
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 b84d170873d..460fa969898 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] ? @@ -79,14 +79,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 @@ -125,8 +133,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; |