diff options
author | unknown <bell@sanja.is.com.ua> | 2004-03-18 15:14:36 +0200 |
---|---|---|
committer | unknown <bell@sanja.is.com.ua> | 2004-03-18 15:14:36 +0200 |
commit | 1a81e0414515cef6275b5d2f3f27b950aa1ff91f (patch) | |
tree | cd9a05b7a39b8aa75fa136b3e98ef798762bbcb8 /sql/sql_base.cc | |
parent | f83cf4144065c12cad4007767e2e70d444fd0e05 (diff) | |
download | mariadb-git-1a81e0414515cef6275b5d2f3f27b950aa1ff91f.tar.gz |
DBUG_ASSERT(fixed == 1); added to val*
small optimisation in signed_literal
sql/field.cc:
layout fixed
sql/item.cc:
DBUG_ASSERT(fixed == 1); added to val*
layout fixed
fixed= 1; added where it was forgoten in fix_fields
Item_string can be used without fix_fields
sql/item.h:
DBUG_ASSERT(fixed == 1); added to val*
Item_string can be used without fix_fields
sql/item_cmpfunc.cc:
DBUG_ASSERT(fixed == 1); added to val*
sql/item_cmpfunc.h:
fixed layout and getting Item statistic
sql/item_func.cc:
DBUG_ASSERT(fixed == 1); added to val*
sql/item_func.h:
DBUG_ASSERT(fixed == 1); added to val*
sql/item_geofunc.cc:
DBUG_ASSERT(fixed == 1); added to val*
sql/item_strfunc.cc:
DBUG_ASSERT(fixed == 1); added to val*
layout fixed
sql/item_strfunc.h:
DBUG_ASSERT(fixed == 1); added to val*
sql/item_subselect.cc:
DBUG_ASSERT(fixed == 1); added to val*
sql/item_sum.cc:
DBUG_ASSERT(fixed == 1); added to val*
sql/item_sum.h:
DBUG_ASSERT(fixed == 1); added to val*
sql/item_timefunc.cc:
DBUG_ASSERT(fixed == 1); added to val*
sql/item_timefunc.h:
DBUG_ASSERT(fixed == 1); added to val*
sql/item_uniq.h:
DBUG_ASSERT(fixed == 1); added to val*
sql/sql_base.cc:
Item creation revised
sql/sql_help.cc:
Item creation revised
sql/sql_load.cc:
Item creation revised
sql/sql_parse.cc:
fix_field call added
sql/sql_select.cc:
Item creation revised
sql/sql_show.cc:
Item creation revised
sql/sql_union.cc:
Item creation revised
sql/sql_update.cc:
Item creation revised
sql/sql_yacc.yy:
Item creation revised
small optimisation in signed_literal
Diffstat (limited to 'sql/sql_base.cc')
-rw-r--r-- | sql/sql_base.cc | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/sql/sql_base.cc b/sql/sql_base.cc index a2f13c47694..ebadb878fa8 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -2279,7 +2279,7 @@ insert_fields(THD *thd,TABLE_LIST *tables, const char *db_name, thd->used_tables|=table->map; while ((field = *ptr++)) { - Item_field *item= new Item_field(field); + Item_field *item= new Item_field(field, 0); if (!found++) (void) it->replace(item); // Replace '*' else @@ -2376,12 +2376,12 @@ int setup_conds(THD *thd,TABLE_LIST *tables,COND **conds) t1->field[i]->field_name, t2->field[j]->field_name)) { - Item_func_eq *tmp=new Item_func_eq(new Item_field(t1->field[i]), - new Item_field(t2->field[j])); + // fix_fields() call will be made for tmp by cond_and->fix_fields + Item_func_eq *tmp=new Item_func_eq(new Item_field(t1->field[i], 1), + new Item_field(t2->field[j], + 1)); if (!tmp) DBUG_RETURN(1); - tmp->fix_length_and_dec(); // Update cmp_type - tmp->const_item_cache=0; /* Mark field used for table cache */ t1->field[i]->query_id=t2->field[j]->query_id=thd->query_id; cond_and->list.push_back(tmp); @@ -2391,8 +2391,11 @@ int setup_conds(THD *thd,TABLE_LIST *tables,COND **conds) } } } - cond_and->used_tables_cache= t1->map | t2->map; + //cond_and->used_tables_cache= t1->map | t2->map; thd->lex->current_select->cond_count+= cond_and->list.elements; + if (cond_and->fix_fields(thd, tables, (Item**)&cond_and) || + cond_and->check_cols(1)) + DBUG_RETURN(1); if (!table->outer_join) // Not left join { if (!(*conds=and_conds(*conds, cond_and))) |