summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <evgen@moonbone.local>2007-11-19 21:28:50 +0000
committerunknown <evgen@moonbone.local>2007-11-19 21:28:50 +0000
commit524e1cd93d1a977004956ce675d01e970e310588 (patch)
tree373ef3324ae1bb80558944a3aa9c661b764dc520 /sql
parent1c232504a99684c5b2e2533ea5d741cdc95ee009 (diff)
parentb3347a6a980d2ac0a8844cb82168ad40958e44e5 (diff)
downloadmariadb-git-524e1cd93d1a977004956ce675d01e970e310588.tar.gz
Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into moonbone.local:/work/31048-bug-5.0-opt-mysql
Diffstat (limited to 'sql')
-rw-r--r--sql/item_subselect.cc4
-rw-r--r--sql/opt_range.cc6
2 files changed, 9 insertions, 1 deletions
diff --git a/sql/item_subselect.cc b/sql/item_subselect.cc
index 57c3b391507..b3710841dfb 100644
--- a/sql/item_subselect.cc
+++ b/sql/item_subselect.cc
@@ -1800,7 +1800,9 @@ int subselect_single_select_engine::exec()
DBUG_RETURN(1);
}
}
- if (select_lex->uncacheable && executed)
+ if (select_lex->uncacheable &&
+ select_lex->uncacheable != UNCACHEABLE_EXPLAIN
+ && executed)
{
if (join->reinit())
{
diff --git a/sql/opt_range.cc b/sql/opt_range.cc
index 969777d4792..dbdb2b919dc 100644
--- a/sql/opt_range.cc
+++ b/sql/opt_range.cc
@@ -1978,12 +1978,18 @@ int SQL_SELECT::test_quick_select(THD *thd, key_map keys_to_use,
keys_to_use.intersect(head->keys_in_use_for_query);
if (!keys_to_use.is_clear_all())
{
+#ifndef EMBEDDED_LIBRARY // Avoid compiler warning
+ char buff[STACK_BUFF_ALLOC];
+#endif
MEM_ROOT alloc;
SEL_TREE *tree= NULL;
KEY_PART *key_parts;
KEY *key_info;
PARAM param;
+ if (check_stack_overrun(thd, STACK_MIN_SIZE, buff))
+ DBUG_RETURN(0); // Fatal error flag is set
+
/* set up parameter that is passed to all functions */
param.thd= thd;
param.baseflag=head->file->table_flags();