summaryrefslogtreecommitdiff
path: root/sql/sql_partition.cc
diff options
context:
space:
mode:
authorDavi Arnaut <Davi.Arnaut@Sun.COM>2009-11-10 18:31:28 -0200
committerDavi Arnaut <Davi.Arnaut@Sun.COM>2009-11-10 18:31:28 -0200
commita7bbc779aefc48fe73f0c4b9ea9a609b15496b78 (patch)
treed803bec0022e21f905aea52acf60f35a85e92762 /sql/sql_partition.cc
parent5783428f3b3fd8fbae5b9923cb942f3916011f32 (diff)
downloadmariadb-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.cc8
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);