summaryrefslogtreecommitdiff
path: root/sql/item_subselect.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/item_subselect.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/item_subselect.cc')
-rw-r--r--sql/item_subselect.cc7
1 files changed, 1 insertions, 6 deletions
diff --git a/sql/item_subselect.cc b/sql/item_subselect.cc
index d16710f6660..9c34ae102ee 100644
--- a/sql/item_subselect.cc
+++ b/sql/item_subselect.cc
@@ -1735,8 +1735,6 @@ subselect_union_engine::subselect_union_engine(st_select_lex_unit *u,
:subselect_engine(item_arg, result_arg)
{
unit= u;
- if (!result_arg) //out of memory
- current_thd->fatal_error();
unit->item= item_arg;
}
@@ -1748,10 +1746,7 @@ int subselect_single_select_engine::prepare()
join= new JOIN(thd, select_lex->item_list,
select_lex->options | SELECT_NO_UNLOCK, result);
if (!join || !result)
- {
- thd->fatal_error(); //out of memory
- return 1;
- }
+ return 1; /* Fatal error is set already. */
prepared= 1;
SELECT_LEX *save_select= thd->lex->current_select;
thd->lex->current_select= select_lex;