diff options
author | unknown <pem@mysql.com> | 2005-10-17 15:07:47 +0200 |
---|---|---|
committer | unknown <pem@mysql.com> | 2005-10-17 15:07:47 +0200 |
commit | c8a2ff6f533f91f9a56e8a12cba2965ebfadcc87 (patch) | |
tree | d16ca31453be37d53895be07584765b1337a6698 /sql/protocol.cc | |
parent | c41dc78dbce5a68729fd1a1558fb3ae07f0856ec (diff) | |
download | mariadb-git-c8a2ff6f533f91f9a56e8a12cba2965ebfadcc87.tar.gz |
Additional fix for BUG#7049, after review.
Make sure "select" aborts when finding a SP condition handler beyond the current scope.
mysql-test/r/sp.result:
Updated test results after fixing error handling in select.
sql/mysqld.cc:
Make sure "select" aborts when finding a SP condition handler beyond the current scope.
sql/protocol.cc:
Make sure "select" aborts when finding a SP condition handler beyond the current scope.
sql/sp_rcontext.h:
Added method for checking if the handler was found in the current context.
sql/sql_error.cc:
Make sure "select" aborts when finding a SP condition handler beyond the current scope.
Diffstat (limited to 'sql/protocol.cc')
-rw-r--r-- | sql/protocol.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sql/protocol.cc b/sql/protocol.cc index ade94a483a8..8c3e5a62820 100644 --- a/sql/protocol.cc +++ b/sql/protocol.cc @@ -76,6 +76,8 @@ void net_send_error(THD *thd, uint sql_errno, const char *err) if (thd->spcont && thd->spcont->find_handler(sql_errno, MYSQL_ERROR::WARN_LEVEL_ERROR)) { + if (! thd->spcont->found_handler_here()) + thd->net.report_error= 1; /* Make "select" abort correctly */ DBUG_VOID_RETURN; } thd->query_error= 1; // needed to catch query errors during replication @@ -181,6 +183,8 @@ net_printf_error(THD *thd, uint errcode, ...) if (thd->spcont && thd->spcont->find_handler(errcode, MYSQL_ERROR::WARN_LEVEL_ERROR)) { + if (! thd->spcont->found_handler_here()) + thd->net.report_error= 1; /* Make "select" abort correctly */ DBUG_VOID_RETURN; } thd->query_error= 1; // needed to catch query errors during replication |