summaryrefslogtreecommitdiff
path: root/sql/sql_parse.cc
diff options
context:
space:
mode:
authorunknown <gshchepa/uchum@gleb.loc>2007-08-03 01:58:21 +0500
committerunknown <gshchepa/uchum@gleb.loc>2007-08-03 01:58:21 +0500
commita53510f0be0bfdbaff6e60366d5e8cfc1d2d197f (patch)
tree47296516b38e3c9b2c7c5042a7374083dfbb1207 /sql/sql_parse.cc
parent465c3ef06085c5f8ec6d5de8ad66a4d0ef560f2b (diff)
downloadmariadb-git-a53510f0be0bfdbaff6e60366d5e8cfc1d2d197f.tar.gz
Fixed bug #27352.
The SELECT query with more than 31 nested dependent SELECT queries returned wrong result. New error message has been added: ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT. It will be reported as: "Too high level of nesting for select". sql/sql_parse.cc: Fixed bug #27352. The Item_sum::register_sum_func method has been modified to return TRUE on exceeding of allowed level of SELECT nesting and to report corresponding error message. sql/unireg.h: Fixed bug #27352. Constant definition has been added: maximal allowed level of SELECT nesting. mysql-test/t/select.test: Updated test case for bug #27352. mysql-test/r/select.result: Updated test case for bug #27352. sql/share/errmsg.txt: Fixed bug #27352. New error message has been added: ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT.
Diffstat (limited to 'sql/sql_parse.cc')
-rw-r--r--sql/sql_parse.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
index ae3bc0f5597..78b3904a207 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -5889,6 +5889,11 @@ mysql_new_select(LEX *lex, bool move_down)
select_lex->init_query();
select_lex->init_select();
lex->nest_level++;
+ if (lex->nest_level > (int) MAX_SELECT_NESTING)
+ {
+ my_error(ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT,MYF(0),MAX_SELECT_NESTING);
+ DBUG_RETURN(1);
+ }
select_lex->nest_level= lex->nest_level;
/*
Don't evaluate this subquery during statement prepare even if