summaryrefslogtreecommitdiff
path: root/sql/item_cmpfunc.h
diff options
context:
space:
mode:
authorunknown <serg@serg.mylan>2003-08-05 16:29:09 +0200
committerunknown <serg@serg.mylan>2003-08-05 16:29:09 +0200
commit0f314c9da3803367d34633a51dd2dbf3f0bd10a0 (patch)
treed9af0d3b70bec48c9c57f571b62bf99b3a2a8412 /sql/item_cmpfunc.h
parent964569510899d778917849c4a9984cc3f2ab3b16 (diff)
downloadmariadb-git-0f314c9da3803367d34633a51dd2dbf3f0bd10a0.tar.gz
make it clear for optimizer that XOR's are not optimizable at the moment (BUG#992)
Diffstat (limited to 'sql/item_cmpfunc.h')
-rw-r--r--sql/item_cmpfunc.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/sql/item_cmpfunc.h b/sql/item_cmpfunc.h
index 536ac9dc3d4..58c7ea8d00d 100644
--- a/sql/item_cmpfunc.h
+++ b/sql/item_cmpfunc.h
@@ -28,7 +28,7 @@ public:
Item_bool_func(Item *a) :Item_int_func(a) {}
Item_bool_func(Item *a,Item *b) :Item_int_func(a,b) {}
void fix_length_and_dec() { decimals=0; max_length=1; }
- unsigned int size_of() { return sizeof(*this);}
+ unsigned int size_of() { return sizeof(*this);}
};
class Item_bool_func2 :public Item_int_func
@@ -595,7 +595,7 @@ public:
void print(String *str);
void split_sum_func(List<Item> &fields);
friend int setup_conds(THD *thd,TABLE_LIST *tables,COND **conds);
- unsigned int size_of() { return sizeof(*this);}
+ unsigned int size_of() { return sizeof(*this);}
void top_level_item() { abort_on_null=1; }
};
@@ -634,12 +634,18 @@ inline Item *and_conds(Item *a,Item *b)
return cond;
}
+/*
+ XOR is Item_cond, not an Item_int_func bevause we could like to
+ optimize (a XOR b) later on. It's low prio, though
+*/
class Item_cond_xor :public Item_cond
{
public:
Item_cond_xor() :Item_cond() {}
Item_cond_xor(Item *i1,Item *i2) :Item_cond(i1,i2) {}
enum Functype functype() const { return COND_XOR_FUNC; }
+ /* TODO: remove the next line when implementing XOR optimization */
+ enum Type type() const { return FUNC_ITEM; }
longlong val_int();
const char *func_name() const { return "xor"; }
};