diff options
author | unknown <bell@sanja.is.com.ua> | 2003-05-17 10:05:07 +0300 |
---|---|---|
committer | unknown <bell@sanja.is.com.ua> | 2003-05-17 10:05:07 +0300 |
commit | acda3d79b6f16441375171dfc58a78b85d313eff (patch) | |
tree | c9fa69ab2da8ee1dc3cc3ea759cd3fa02bef9aca /sql/sql_lex.h | |
parent | ddabd51c5738bf3bd9f0f40d7368bd3eee92e966 (diff) | |
download | mariadb-git-acda3d79b6f16441375171dfc58a78b85d313eff.tar.gz |
fixed memory overrun (bug 380)
mysql-test/r/func_group.result:
new tests
mysql-test/t/func_group.test:
new tests
sql/item.cc:
count items in select list
sql/item_subselect.cc:
use number of item in select list for array creation
sql/item_sum.cc:
with_sum_func now is boolean
sql/sql_derived.cc:
use number of item in select list for array creation
sql/sql_lex.cc:
create_refs changed with parsing_place enum variable
sql/sql_lex.h:
added items in select list counter
create_refs changed with parsing_place enum variable
with_sum_func now is boolean
sql/sql_select.cc:
use number of item in select list for array creation
sql/sql_union.cc:
use number of item in select list for array creation
sql/sql_yacc.yy:
create_refs changed with parsing_place enum variable
Diffstat (limited to 'sql/sql_lex.h')
-rw-r--r-- | sql/sql_lex.h | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/sql/sql_lex.h b/sql/sql_lex.h index f31b3305e07..b4444c03280 100644 --- a/sql/sql_lex.h +++ b/sql/sql_lex.h @@ -77,7 +77,6 @@ enum enum_sql_command { SQLCOM_END }; - typedef List<Item> List_item; typedef struct st_lex_master_info @@ -191,6 +190,13 @@ protected: *master, *slave, /* vertical links */ *link_next, **link_prev; /* list of whole SELECT_LEX */ public: + enum enum_parsing_place + { + NO_MATTER, + IN_HAVING, + SELECT_LIST + }; + ulong options; enum sub_select_type linkage; SQL_LIST order_list; /* ORDER clause */ @@ -200,8 +206,9 @@ public: // Arrays of pointers to top elements of all_fields list Item **ref_pointer_array; - uint with_sum_func; /* sum function indicator and number of it */ - bool create_refs; + uint select_items; /* number of items in select_list */ + enum_parsing_place parsing_place; /* where we are parsing expression */ + bool with_sum_func; /* sum function indicator */ bool dependent; /* dependent from outer select subselect */ bool uncacheable; /* result of this query can't be cached */ bool no_table_names_allowed; /* used for global order by */ |