summaryrefslogtreecommitdiff
path: root/sql/sql_error.cc
diff options
context:
space:
mode:
authormonty@mashka.mysql.fi <>2002-11-21 02:07:14 +0200
committermonty@mashka.mysql.fi <>2002-11-21 02:07:14 +0200
commit305d16a7cb3955c20ab5d119b3eb0968008683b6 (patch)
treee086ef10a8fa45e7bf43bf8810311b4b931601d1 /sql/sql_error.cc
parentf86d328927018f0392ee8c01af19f76d26865417 (diff)
downloadmariadb-git-305d16a7cb3955c20ab5d119b3eb0968008683b6.tar.gz
Automatic conversion from CHAR(length) to BLOB when length > 255
New operators MOD and DIV SELECT ... FROM DUAL TRUE = 1 and FALSE = 0
Diffstat (limited to 'sql/sql_error.cc')
-rw-r--r--sql/sql_error.cc18
1 files changed, 15 insertions, 3 deletions
diff --git a/sql/sql_error.cc b/sql/sql_error.cc
index 3d6a0fa24aa..0740dc428f0 100644
--- a/sql/sql_error.cc
+++ b/sql/sql_error.cc
@@ -51,13 +51,22 @@ This file contains the implementation of error and warnings related
SYNOPSIS
mysql_reset_errors()
thd Thread handle
+
+ IMPLEMENTATION
+ Don't reset warnings if this has already been called for this query.
+ This may happen if one gets a warning during the parsing stage,
+ in which case push_warnings() has already called this function.
*/
void mysql_reset_errors(THD *thd)
{
- free_root(&thd->warn_root,MYF(0));
- bzero((char*) thd->warn_count, sizeof(thd->warn_count));
- thd->warn_list.empty();
+ if (thd->query_id != thd->warn_id)
+ {
+ thd->warn_id= thd->query_id;
+ free_root(&thd->warn_root,MYF(0));
+ bzero((char*) thd->warn_count, sizeof(thd->warn_count));
+ thd->warn_list.empty();
+ }
}
@@ -75,6 +84,9 @@ void mysql_reset_errors(THD *thd)
void push_warning(THD *thd, MYSQL_ERROR::enum_warning_level level, uint code,
const char *msg)
{
+ if (thd->query_id != thd->warn_id)
+ mysql_reset_errors(thd);
+
if (thd->warn_list.elements < thd->variables.max_error_count)
{
/*