diff options
author | Davi Arnaut <Davi.Arnaut@Sun.COM> | 2009-11-10 18:31:28 -0200 |
---|---|---|
committer | Davi Arnaut <Davi.Arnaut@Sun.COM> | 2009-11-10 18:31:28 -0200 |
commit | a7bbc779aefc48fe73f0c4b9ea9a609b15496b78 (patch) | |
tree | d803bec0022e21f905aea52acf60f35a85e92762 /sql/sql_partition.cc | |
parent | 5783428f3b3fd8fbae5b9923cb942f3916011f32 (diff) | |
download | mariadb-git-a7bbc779aefc48fe73f0c4b9ea9a609b15496b78.tar.gz |
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.
Diffstat (limited to 'sql/sql_partition.cc')
-rw-r--r-- | sql/sql_partition.cc | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/sql/sql_partition.cc b/sql/sql_partition.cc index eb711001ef6..efafc15704b 100644 --- a/sql/sql_partition.cc +++ b/sql/sql_partition.cc @@ -2084,8 +2084,7 @@ char *generate_partition_syntax(partition_info *part_info, default: DBUG_ASSERT(0); /* We really shouldn't get here, no use in continuing from here */ - my_error(ER_OUT_OF_RESOURCES, MYF(0)); - current_thd->fatal_error(); + my_error(ER_OUT_OF_RESOURCES, MYF(ME_FATALERROR)); DBUG_RETURN(NULL); } if (part_info->part_expr) @@ -5150,10 +5149,7 @@ static bool mysql_change_partitions(ALTER_PARTITION_PARAM_TYPE *lpt) &lpt->deleted, lpt->pack_frm_data, lpt->pack_frm_len))) { - if (error != ER_OUTOFMEMORY) - file->print_error(error, MYF(0)); - else - lpt->thd->fatal_error(); + file->print_error(error, MYF(error != ER_OUTOFMEMORY ? 0 : ME_FATALERROR)); DBUG_RETURN(TRUE); } DBUG_RETURN(FALSE); |