summaryrefslogtreecommitdiff
path: root/sql/item_cmpfunc.h
diff options
context:
space:
mode:
authorbell@sanja.is.com.ua <>2004-02-17 11:12:55 +0200
committerbell@sanja.is.com.ua <>2004-02-17 11:12:55 +0200
commita66b398eb8a8365c2070939a0a826be1d6a8708b (patch)
tree7656414131e3abbff86bae92c090d0209cd07663 /sql/item_cmpfunc.h
parent8a865250c4180ee197c4626560eb46c2cea0a696 (diff)
parent44b37b089adbcef7efa8a9030732c4689e3a42ed (diff)
downloadmariadb-git-a66b398eb8a8365c2070939a0a826be1d6a8708b.tar.gz
merge
Diffstat (limited to 'sql/item_cmpfunc.h')
-rw-r--r--sql/item_cmpfunc.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/sql/item_cmpfunc.h b/sql/item_cmpfunc.h
index 3c70a50502a..9d39ddf4e76 100644
--- a/sql/item_cmpfunc.h
+++ b/sql/item_cmpfunc.h
@@ -93,9 +93,10 @@ class Item_in_optimizer: public Item_bool_func
{
protected:
Item_cache *cache;
+ bool save_cache;
public:
Item_in_optimizer(Item *a, Item_in_subselect *b):
- Item_bool_func(a, (Item *)b), cache(0) {}
+ Item_bool_func(a, (Item *)b), cache(0), save_cache(0) {}
bool fix_fields(THD *, struct st_table_list *, Item **);
bool fix_left(THD *thd, struct st_table_list *tables, Item **ref);
bool is_null();
@@ -107,8 +108,10 @@ public:
Item_in_optimizer return NULL, else it evaluate Item_in_subselect.
*/
longlong val_int();
+ void cleanup();
const char *func_name() const { return "<in_optimizer>"; }
Item_cache **get_cache() { return &cache; }
+ void keep_top_level_cache();
};
class Comp_creator
@@ -209,9 +212,11 @@ public:
}
void cleanup()
{
+ DBUG_ENTER("Item_bool_rowready_func2::cleanup");
Item_bool_func2::cleanup();
tmp_arg[0]= orig_a;
tmp_arg[1]= orig_b;
+ DBUG_VOID_RETURN;
}
};
@@ -720,10 +725,12 @@ class Item_func_in :public Item_int_func
void fix_length_and_dec();
void cleanup()
{
+ DBUG_ENTER("Item_func_in::cleanup");
delete array;
delete in_item;
array= 0;
in_item= 0;
+ DBUG_VOID_RETURN;
}
optimize_type select_optimize() const
{ return array ? OPTIMIZE_KEY : OPTIMIZE_NONE; }