mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Backport of Bug#15192 to mysql-next-mr
------------------------------------------------------------ revno: 2597.4.17 revision-id: sp1r-davi@mysql.com/endora.local-20080328174753-24337 parent: sp1r-anozdrin/alik@quad.opbmk-20080328140038-16479 committer: davi@mysql.com/endora.local timestamp: Fri 2008-03-28 14:47:53 -0300 message: Bug#15192 "fatal errors" are caught by handlers in stored procedures The problem is that fatal errors (e.g.: out of memory) were being caught by stored procedure exception handlers which could cause the execution to not be stopped due to a continue handler. The solution is to not call any exception handler if the error is fatal and send the fatal error to the client.
This commit is contained in:
@ -1978,6 +1978,7 @@ public:
|
||||
*/
|
||||
inline void fatal_error()
|
||||
{
|
||||
DBUG_ASSERT(main_da.is_error());
|
||||
is_fatal_error= 1;
|
||||
DBUG_PRINT("error",("Fatal error set"));
|
||||
}
|
||||
@ -2139,7 +2140,10 @@ public:
|
||||
else
|
||||
{
|
||||
x_free(db);
|
||||
db= new_db ? my_strndup(new_db, new_db_len, MYF(MY_WME)) : NULL;
|
||||
if (new_db)
|
||||
db= my_strndup(new_db, new_db_len, MYF(MY_WME | ME_FATALERROR));
|
||||
else
|
||||
db= NULL;
|
||||
}
|
||||
db_length= db ? new_db_len : 0;
|
||||
return new_db && !db;
|
||||
|
Reference in New Issue
Block a user