summaryrefslogtreecommitdiffstats
path: root/mysql-test/main/func_op.test
blob: 13fa40b513bc9bb1f70d5995e98b0e9fa841b742 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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