diff options
Diffstat (limited to 'mysql-test/main/func_op.test')
-rw-r--r-- | mysql-test/main/func_op.test | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/mysql-test/main/func_op.test b/mysql-test/main/func_op.test new file mode 100644 index 00000000..13fa40b5 --- /dev/null +++ b/mysql-test/main/func_op.test @@ -0,0 +1,37 @@ +# Description +# ----------- +# Simple operands and arithmetic grouping + +select 1+1,1-1,1+1*2,8/5,8%5,mod(8,5),mod(8,5)|0,-(1+1)*-2; +explain extended select 1+1,1-1,1+1*2,8/5,8%5,mod(8,5),mod(8,5)|0,-(1+1)*-2; +select 1 | (1+1),5 & 3,bit_count(7) ; +explain extended select 1 | (1+1),5 & 3,bit_count(7) ; +select 1 << 32,1 << 63, 1 << 64, 4 >> 2, 4 >> 63, 1<< 63 >> 60; +# +# bug #1993: bit functions must be unsigned +# +select -1 | 0, -1 ^ 0, -1 & 0; +select -1 | 1, -1 ^ 1, -1 & 1; +select 1 | -1, 1 ^ -1, 1 & -1; +select 0 | -1, 0 ^ -1, 0 & -1; +select -1 >> 0, -1 << 0; +select -1 >> 1, -1 << 1; + +# +# Bug 13044: wrong bit_count() results +# + +--disable_warnings +drop table if exists t1,t2; +--enable_warnings +create table t1(a int); +create table t2(a int, b int); +insert into t1 values (1), (2), (3); +insert into t2 values (1, 7), (3, 7); +SET @save_optimizer_switch=@@optimizer_switch; +SET optimizer_switch='outer_join_with_cache=off'; +select t1.a, t2.a, t2.b, bit_count(t2.b) from t1 left join t2 on t1.a=t2.a; +SET optimizer_switch=@save_optimizer_switch; +drop table t1, t2; + +# End of 4.1 tests |