diff options
author | unknown <bell@laptop.sanja.is.com.ua> | 2003-08-20 17:35:12 +0300 |
---|---|---|
committer | unknown <bell@laptop.sanja.is.com.ua> | 2003-08-20 17:35:12 +0300 |
commit | 5e00fc02b91b789b630dc61722cd50ac8abd32cc (patch) | |
tree | ae1a08abada36c655dfdf7505487c1f3319aef7f /sql/item_cmpfunc.cc | |
parent | 6d0a048701e07e69dea899fc1a6caa8f5d6b435d (diff) | |
download | mariadb-git-5e00fc02b91b789b630dc61722cd50ac8abd32cc.tar.gz |
after merge changing
uninitialized value fixed
sql/item_cmpfunc.cc:
fixed uninitialized used_tables_cache
othyer caches moved on proper place
sql/item_subselect.cc:
fixed reported table bit
sql/mysql_priv.h:
after merge chenges.
sql/sql_parse.cc:
used same new operator for all allocation in subroutine
sql/sql_union.cc:
fake st_select_lex should have item list for ref_array allocation
sql/sql_yacc.yy:
after merge changing
Diffstat (limited to 'sql/item_cmpfunc.cc')
-rw-r--r-- | sql/item_cmpfunc.cc | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sql/item_cmpfunc.cc b/sql/item_cmpfunc.cc index f939709f743..053eb9e6fef 100644 --- a/sql/item_cmpfunc.cc +++ b/sql/item_cmpfunc.cc @@ -385,7 +385,7 @@ bool Item_in_optimizer::fix_left(THD *thd, cache->store(args[0]); if (cache->cols() == 1) { - if (args[0]->used_tables()) + if ((used_tables_cache= args[0]->used_tables())) cache->set_used_tables(OUTER_REF_TABLE_BIT); else cache->set_used_tables(0); @@ -400,7 +400,11 @@ bool Item_in_optimizer::fix_left(THD *thd, else ((Item_cache *)cache->el(i))->set_used_tables(0); } + used_tables_cache= args[0]->used_tables(); } + not_null_tables_cache= args[0]->not_null_tables(); + with_sum_func= args[0]->with_sum_func; + const_item_cache= args[0]->const_item(); return 0; } @@ -414,9 +418,6 @@ bool Item_in_optimizer::fix_fields(THD *thd, struct st_table_list *tables, if (args[0]->maybe_null) maybe_null=1; - with_sum_func= args[0]->with_sum_func; - used_tables_cache= args[0]->used_tables(); - const_item_cache= args[0]->const_item(); if (!args[1]->fixed && args[1]->fix_fields(thd, tables, args)) return 1; Item_in_subselect * sub= (Item_in_subselect *)args[1]; @@ -429,6 +430,7 @@ bool Item_in_optimizer::fix_fields(THD *thd, struct st_table_list *tables, maybe_null=1; with_sum_func= with_sum_func || args[1]->with_sum_func; used_tables_cache|= args[1]->used_tables(); + not_null_tables_cache|= args[1]->not_null_tables(); const_item_cache&= args[1]->const_item(); return 0; } |