summaryrefslogtreecommitdiff
path: root/sql/sql_lex.h
diff options
context:
space:
mode:
authorunknown <sergefp@mysql.com>2006-09-01 13:23:43 +0400
committerunknown <sergefp@mysql.com>2006-09-01 13:23:43 +0400
commitdd6dc7adea58d3a325c9a00d92c3ebfe038aa3ae (patch)
tree810129f480963d677f8bdab92d41e2fcd2dd0bd6 /sql/sql_lex.h
parentf40b6c273cb782bd3fd4563518eb5d57c010f13d (diff)
downloadmariadb-git-dd6dc7adea58d3a325c9a00d92c3ebfe038aa3ae.tar.gz
BUG#21477 "memory overruns for certain kinds of subqueries":
make st_select_lex::setup_ref_array() take into account that Item_sum-descendant objects located within descendant SELECTs may be added into ref_pointer_array. sql/item_sum.cc: BUG#21477 "memory overruns for certain kinds of subqueries": Make SELECT_LEX::n_sum_items contain # of Item_sum-derived objects that exist within this SELECT. sql/sql_lex.h: BUG#21477 "memory overruns for certain kinds of subqueries": Add SELECT_LEX::n_sum_items and SELECT_LEXT::n_child_sum_items. sql/sql_yacc.yy: BUG#21477 "memory overruns for certain kinds of subqueries": Make SELECT_LEX::n_sum_items contain # of Item_sum-derived objects that exist within this SELECT.
Diffstat (limited to 'sql/sql_lex.h')
-rw-r--r--sql/sql_lex.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/sql/sql_lex.h b/sql/sql_lex.h
index 220d928ccf7..fe6d60a218d 100644
--- a/sql/sql_lex.h
+++ b/sql/sql_lex.h
@@ -548,6 +548,12 @@ public:
bool braces; /* SELECT ... UNION (SELECT ... ) <- this braces */
/* TRUE when having fix field called in processing of this SELECT */
bool having_fix_field;
+
+ /* Number of Item_sum-derived objects in this SELECT */
+ uint n_sum_items;
+ /* Number of Item_sum-derived objects in children and descendant SELECTs */
+ uint n_child_sum_items;
+
/* explicit LIMIT clause was used */
bool explicit_limit;
/*
@@ -640,7 +646,7 @@ public:
bool test_limit();
friend void lex_start(THD *thd, uchar *buf, uint length);
- st_select_lex() {}
+ st_select_lex() : n_sum_items(0), n_child_sum_items(0) {}
void make_empty_select()
{
init_query();