summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <bk@mysql.r18.ru>2003-06-23 12:58:18 +0500
committerunknown <bk@mysql.r18.ru>2003-06-23 12:58:18 +0500
commitbd2c3ef725acf6c1e30ab5880324e5135649e98a (patch)
treebfd9dc0a530b27ffe41ecb06ca788d604983e764
parent74bcac1c821ab7185a9c2fe53f65cd9a2439e512 (diff)
parent01450dbb79540c01e6b0381ce0760418dcdfc133 (diff)
downloadmariadb-git-bd2c3ef725acf6c1e30ab5880324e5135649e98a.tar.gz
Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.r18.ru:/usr/home/bk/mysql-4.1
-rw-r--r--sql/sql_lex.cc21
-rw-r--r--sql/sql_lex.h3
-rw-r--r--sql/sql_parse.cc2
-rw-r--r--sql/sql_yacc.yy1
4 files changed, 15 insertions, 12 deletions
diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc
index c61149b8313..bc9ad4f36b0 100644
--- a/sql/sql_lex.cc
+++ b/sql/sql_lex.cc
@@ -963,6 +963,8 @@ int yylex(void *arg, void *yythd)
void st_select_lex_node::init_query()
{
+ options= 0;
+ linkage= UNSPECIFIED_TYPE;
no_table_names_allowed= uncacheable= dependent= 0;
ref_pointer_array= 0;
}
@@ -981,8 +983,8 @@ void st_select_lex_node::init_select()
void st_select_lex_unit::init_query()
{
- linkage= GLOBAL_OPTIONS_TYPE;
st_select_lex_node::init_query();
+ linkage= GLOBAL_OPTIONS_TYPE;
global_parameters= this;
select_limit_cnt= HA_POS_ERROR;
offset_limit_cnt= 0;
@@ -996,11 +998,10 @@ void st_select_lex_unit::init_query()
void st_select_lex::init_query()
{
st_select_lex_node::init_query();
- table_list.elements= 0;
- table_list.first= 0;
- table_list.next= (byte**) &table_list.first;
+ table_list.empty();
item_list.empty();
join= 0;
+ where= 0;
olap= UNSPECIFIED_OLAP_TYPE;
having_fix_field= 0;
with_wild= 0;
@@ -1009,11 +1010,15 @@ void st_select_lex::init_query()
void st_select_lex::init_select()
{
st_select_lex_node::init_select();
- group_list.elements= 0;
- group_list.first= 0;
- group_list.next= (byte**) &group_list.first;
+ group_list.empty();
+ type= db= db1= table1= db2= table2= 0;
+ having= 0;
+ group_list.empty();
+ use_index_ptr= ignore_index_ptr= 0;
+ table_join_options= 0;
+ in_sum_expr= with_wild= 0;
options= 0;
- where= having= 0;
+ braces= 0;
when_list.empty();
expr_list.empty();
interval_list.empty();
diff --git a/sql/sql_lex.h b/sql/sql_lex.h
index 184618353fa..6226fbe1bb5 100644
--- a/sql/sql_lex.h
+++ b/sql/sql_lex.h
@@ -215,8 +215,7 @@ public:
static void *operator new(size_t size)
{
- // TODO: Change to alloc() and explicitely clear elements in constructors
- return (void*) sql_calloc((uint) size);
+ return (void*) sql_alloc((uint) size);
}
static void operator delete(void *ptr,size_t size) {}
st_select_lex_node(): linkage(UNSPECIFIED_TYPE) {}
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
index 4f54b0fc3ba..5070466007e 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -3590,7 +3590,7 @@ void mysql_init_multi_delete(LEX *lex)
lex->select_lex.select_limit= lex->unit.select_limit_cnt=
HA_POS_ERROR;
lex->auxilliary_table_list= lex->select_lex.table_list;
- lex->select_lex.init_query();
+ lex->select_lex.table_list.empty();
}
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index 937fe94e3f2..e3fb81b39f2 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -3571,7 +3571,6 @@ delete:
{
LEX *lex= Lex;
lex->sql_command= SQLCOM_DELETE;
- lex->select_lex.options= 0;
lex->lock_option= lex->thd->update_lock_default;
lex->select_lex.init_order();
}