make it clear for optimizer that XOR's are not optimizable at the moment (BUG#992)
This commit is contained in:
parent
5ac7f31b57
commit
c0317ce66c
@ -46,6 +46,11 @@ select 3 ^ 11, 1 ^ 1, 1 ^ 0, 1 ^ NULL, NULL ^ 1;
|
|||||||
select 1 XOR 1, 1 XOR 0, 0 XOR 1, 0 XOR 0, NULL XOR 1, 1 XOR NULL, 0 XOR NULL;
|
select 1 XOR 1, 1 XOR 0, 0 XOR 1, 0 XOR 0, NULL XOR 1, 1 XOR NULL, 0 XOR NULL;
|
||||||
1 XOR 1 1 XOR 0 0 XOR 1 0 XOR 0 NULL XOR 1 1 XOR NULL 0 XOR NULL
|
1 XOR 1 1 XOR 0 0 XOR 1 0 XOR 0 NULL XOR 1 1 XOR NULL 0 XOR NULL
|
||||||
0 1 1 0 NULL NULL NULL
|
0 1 1 0 NULL NULL NULL
|
||||||
|
create table t1 (a int);
|
||||||
|
insert t1 values (1);
|
||||||
|
select * from t1 where 1 xor 1;
|
||||||
|
a
|
||||||
|
drop table t1;
|
||||||
select 5 between 0 and 10 between 0 and 1,(5 between 0 and 10) between 0 and 1;
|
select 5 between 0 and 10 between 0 and 1,(5 between 0 and 10) between 0 and 1;
|
||||||
5 between 0 and 10 between 0 and 1 (5 between 0 and 10) between 0 and 1
|
5 between 0 and 10 between 0 and 1 (5 between 0 and 10) between 0 and 1
|
||||||
0 1
|
0 1
|
||||||
|
@ -18,6 +18,11 @@ select -1.49 or -1.49,0.6 or 0.6;
|
|||||||
select 3 ^ 11, 1 ^ 1, 1 ^ 0, 1 ^ NULL, NULL ^ 1;
|
select 3 ^ 11, 1 ^ 1, 1 ^ 0, 1 ^ NULL, NULL ^ 1;
|
||||||
select 1 XOR 1, 1 XOR 0, 0 XOR 1, 0 XOR 0, NULL XOR 1, 1 XOR NULL, 0 XOR NULL;
|
select 1 XOR 1, 1 XOR 0, 0 XOR 1, 0 XOR 0, NULL XOR 1, 1 XOR NULL, 0 XOR NULL;
|
||||||
|
|
||||||
|
create table t1 (a int);
|
||||||
|
insert t1 values (1);
|
||||||
|
select * from t1 where 1 xor 1;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Wrong usage of functions
|
# Wrong usage of functions
|
||||||
#
|
#
|
||||||
|
@ -634,12 +634,18 @@ inline Item *and_conds(Item *a,Item *b)
|
|||||||
return cond;
|
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
|
class Item_cond_xor :public Item_cond
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Item_cond_xor() :Item_cond() {}
|
Item_cond_xor() :Item_cond() {}
|
||||||
Item_cond_xor(Item *i1,Item *i2) :Item_cond(i1,i2) {}
|
Item_cond_xor(Item *i1,Item *i2) :Item_cond(i1,i2) {}
|
||||||
enum Functype functype() const { return COND_XOR_FUNC; }
|
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();
|
longlong val_int();
|
||||||
const char *func_name() const { return "xor"; }
|
const char *func_name() const { return "xor"; }
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user