summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorDmitry Shulga <Dmitry.Shulga@oracle.com>2010-11-10 11:58:50 +0600
committerDmitry Shulga <Dmitry.Shulga@oracle.com>2010-11-10 11:58:50 +0600
commit64b897b0cedc421dc6ce468c714bbcbb72ebd9e7 (patch)
tree3fc7d57c7d91ab1fe5561b19a738555920d441c2 /sql
parent5d7d1a42d8b3308c7b10747725978ae5428929b6 (diff)
parent5b3e668af8b1bc44cd5379f425bed38809361d5f (diff)
downloadmariadb-git-64b897b0cedc421dc6ce468c714bbcbb72ebd9e7.tar.gz
Auto-merge from 5.1-bugteam for bug#57386.
Diffstat (limited to 'sql')
-rw-r--r--sql/item_func.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/sql/item_func.cc b/sql/item_func.cc
index afb09ff5b17..bef0e461a1f 100644
--- a/sql/item_func.cc
+++ b/sql/item_func.cc
@@ -178,7 +178,14 @@ Item_func::fix_fields(THD *thd, Item **ref)
used_tables_cache= not_null_tables_cache= 0;
const_item_cache=1;
- if (check_stack_overrun(thd, STACK_MIN_SIZE, buff))
+ /*
+ Use stack limit of STACK_MIN_SIZE * 2 since
+ on some platforms a recursive call to fix_fields
+ requires more than STACK_MIN_SIZE bytes (e.g. for
+ MIPS, it takes about 22kB to make one recursive
+ call to Item_func::fix_fields())
+ */
+ if (check_stack_overrun(thd, STACK_MIN_SIZE * 2, buff))
return TRUE; // Fatal error if flag is set!
if (arg_count)
{ // Print purify happy