diff options
author | unknown <gshchepa/uchum@gleb.loc> | 2007-08-03 01:58:21 +0500 |
---|---|---|
committer | unknown <gshchepa/uchum@gleb.loc> | 2007-08-03 01:58:21 +0500 |
commit | a53510f0be0bfdbaff6e60366d5e8cfc1d2d197f (patch) | |
tree | 47296516b38e3c9b2c7c5042a7374083dfbb1207 /sql/sql_parse.cc | |
parent | 465c3ef06085c5f8ec6d5de8ad66a4d0ef560f2b (diff) | |
download | mariadb-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.cc | 5 |
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 |