~drizzle-trunk/drizzle/development

1 by brian
clean slate
1
#
2
# Test of math functions
3
#
4
5
--disable_warnings                                                              
6
drop table if exists t1;                                                        
7
--enable_warnings                                                               
8
9
select floor(5.5),floor(-5.5);
10
explain extended select floor(5.5),floor(-5.5);
11
select ceiling(5.5),ceiling(-5.5);
12
explain extended select ceiling(5.5),ceiling(-5.5);
13
select truncate(52.64,1),truncate(52.64,2),truncate(52.64,-1),truncate(52.64,-2), truncate(-52.64,1),truncate(-52.64,-1);
14
explain extended select truncate(52.64,1),truncate(52.64,2),truncate(52.64,-1),truncate(52.64,-2), truncate(-52.64,1),truncate(-52.64,-1);
15
select round(5.5),round(-5.5);
16
explain extended select round(5.5),round(-5.5);
17
select round(5.64,1),round(5.64,2),round(5.64,-1),round(5.64,-2);
18
select abs(-10), sign(-5), sign(5), sign(0);
19
explain extended select abs(-10), sign(-5), sign(5), sign(0);
20
select log(exp(10)),exp(log(sqrt(10))*2),log(-1),log(NULL),log(1,1),log(3,9),log(-1,2),log(NULL,2);
21
explain extended select log(exp(10)),exp(log(sqrt(10))*2),log(-1),log(NULL),log(1,1),log(3,9),log(-1,2),log(NULL,2);
22
select ln(exp(10)),exp(ln(sqrt(10))*2),ln(-1),ln(0),ln(NULL);
23
explain extended select ln(exp(10)),exp(ln(sqrt(10))*2),ln(-1),ln(0),ln(NULL);
24
select log2(8),log2(15),log2(-2),log2(0),log2(NULL);
25
explain extended select log2(8),log2(15),log2(-2),log2(0),log2(NULL);
26
select log10(100),log10(18),log10(-4),log10(0),log10(NULL);
27
explain extended select log10(100),log10(18),log10(-4),log10(0),log10(NULL);
28
select pow(10,log10(10)),power(2,4);
29
explain extended select pow(10,log10(10)),power(2,4);
30
explain extended select rand(999999),rand();
31
select pi(),format(sin(pi()/2),6),format(cos(pi()/2),6),format(abs(tan(pi())),6),format(cot(1),6),format(asin(1),6),format(acos(0),6),format(atan(1),6);
32
explain extended select pi(),format(sin(pi()/2),6),format(cos(pi()/2),6),format(abs(tan(pi())),6),format(cot(1),6),format(asin(1),6),format(acos(0),6),format(atan(1),6);
33
select degrees(pi()),radians(360);
34
35
select format(atan(-2, 2), 6);
36
select format(atan(pi(), 0), 6);
37
select format(atan2(-2, 2), 6);
38
select format(atan2(pi(), 0), 6);
39
40
#
41
# Bug #2338 Trignometric arithmatic problems 
42
#
43
44
SELECT ACOS(1.0);
45
SELECT ASIN(1.0);
46
SELECT ACOS(0.2*5.0);
47
SELECT ACOS(0.5*2.0);
48
SELECT ASIN(0.8+0.2);
49
SELECT ASIN(1.2-0.2);
50
51
#
52
# Bug #3051 FLOOR returns invalid 
53
#
54
55
# This can't be tested as it's not portable
56
#select floor(log(4)/log(2));
57
#select floor(log(8)/log(2));
58
#select floor(log(16)/log(2));
59
60
#
61
# Bug #9060 (format returns incorrect result)
62
#
63
select format(4.55, 1), format(4.551, 1);
64
65
explain extended select degrees(pi()),radians(360);
66
67
#
68
# Bug #7281: problem with rand()
69
#
70
71
--error 1054
72
select rand(rand);
73
74
# End of 4.1 tests
75
76
#
77
# Bug #8459 (FORMAT returns incorrect result)
78
#
79
create table t1 (col1 int, col2 decimal(60,30));
80
insert into t1 values(1,1234567890.12345);
81
select format(col2,7) from t1;
82
select format(col2,8) from t1;
83
insert into t1 values(7,1234567890123456.12345);
84
select format(col2,6) from t1 where col1=7;
85
drop table t1;
86
87
88
#
89
# Bug @10632 (Ceiling function returns wrong answer)
90
#
91
select ceil(0.09);
92
select ceil(0.000000000000000009);
93
94
#
95
# Bug #9837: problem with round()
96
#
97
98
create table t1 select round(1, 6);
496.1.2 by Paul McCullagh
Changes to .test files to run both PBXT and InnoDB
99
--replace_regex /ENGINE=[a-z]*/ENGINE=X/i
1 by brian
clean slate
100
show create table t1;
101
select * from t1;
102
drop table t1;
103
104
#
413.2.2 by Brian Aker
Removed UNSIGNED from parser.
105
# Bug #11402: abs() forces rest of calculation to
1 by brian
clean slate
106
#
107
select abs(-2) * -2;
108
109
#
110
# Bug #6172 RAND(a) should only accept constant values as arguments
111
#
112
CREATE TABLE t1 (a INT);
113
114
INSERT INTO t1 VALUES (1),(1),(1),(2);
413.2.2 by Brian Aker
Removed UNSIGNED from parser.
115
SELECT RAND(2) * 1000, RAND(a) * 1000 FROM t1;
116
SELECT RAND(2) * 1000, RAND(a) * 1000 FROM t1 WHERE a = 1;
1 by brian
clean slate
117
INSERT INTO t1 VALUES (3);
413.2.2 by Brian Aker
Removed UNSIGNED from parser.
118
SELECT RAND(2) * 1000, RAND(a) * 1000 FROM t1;
119
SELECT RAND(2) * 1000, RAND(a) * 1000 FROM t1 WHERE a = 1;
1 by brian
clean slate
120
121
DROP TABLE t1;  
122
123
# End of 4.1 tests
124
125
#
126
# Bug #8461 truncate() and round() return false results 2nd argument negative.
127
# 
128
# round(a,-b) log_10(b) > a
129
select round(111,-10);
130
# round on bigint 
131
select round(-5000111000111000155,-1);
413.2.2 by Brian Aker
Removed UNSIGNED from parser.
132
# round on bigint
1 by brian
clean slate
133
select round(15000111000111000155,-1);
134
# truncate on bigint 
135
select truncate(-5000111000111000155,-1);
413.2.2 by Brian Aker
Removed UNSIGNED from parser.
136
# truncate on bigint
1 by brian
clean slate
137
select truncate(15000111000111000155,-1);
138
139
#
140
# Bug#16678 FORMAT gives wrong result if client run with default-character-set=utf8
141
#
1063.9.3 by Brian Aker
Partial fix for tests for tmp
142
create TEMPORARY table t1
1 by brian
clean slate
143
(f1 varchar(32) not null,
413.2.2 by Brian Aker
Removed UNSIGNED from parser.
144
 f2 int not null,
145
 f3 int not null default '0')
383.4.1 by Jay Pipes
Fixed syntax errors in func_math test and re-enable the test in the make test target
146
engine=myisam;
1 by brian
clean slate
147
insert into t1 values ('zombie',0,0),('gold',1,10000),('silver',2,10000);
148
1063.9.3 by Brian Aker
Partial fix for tests for tmp
149
create TEMPORARY table t2
413.2.2 by Brian Aker
Removed UNSIGNED from parser.
150
(f1 int not null,
151
 f2 int not null,
152
 f3 int not null)
383.4.1 by Jay Pipes
Fixed syntax errors in func_math test and re-enable the test in the make test target
153
engine=myisam;
1 by brian
clean slate
154
insert into t2 values (16777216,16787215,1),(33554432,33564431,2);
155
156
select format(t2.f2-t2.f1+1,0) from t1,t2
157
where t1.f2 = t2.f3 order by t1.f1;
158
drop table t1, t2;
159
413.2.2 by Brian Aker
Removed UNSIGNED from parser.
160
# Bug 24912 -- misc functions have trouble with
1 by brian
clean slate
161
413.2.2 by Brian Aker
Removed UNSIGNED from parser.
162
select -2, 18446744073709551614, -2;
163
select abs(-2), abs(18446744073709551614), abs(-2);
164
select ceiling(-2), ceiling(18446744073709551614), ceiling(-2);
165
select floor(-2), floor(18446744073709551614), floor(-2);
166
select format(-2, 2), format(18446744073709551614, 2), format(-2, 2);
167
select sqrt(-2), sqrt(18446744073709551614), sqrt(-2);
168
select round(-2, 1), round(18446744073709551614, 1), round(-2, 1);
169
select round(4, -2), round(4, 18446744073709551614), round(4, -2);
170
select truncate(-2, 1), truncate(18446744073709551614, 1), truncate(-2, 1);
171
select truncate(4, -2), truncate(4, 18446744073709551614), truncate(4, -2);
1 by brian
clean slate
172
select round(10000000000000000000, -19), truncate(10000000000000000000, -19);
173
select round(1e0, -309), truncate(1e0, -309);
174
select round(1e1,308), truncate(1e1, 308);
175
select round(1e1, 2147483648), truncate(1e1, 2147483648);
176
select round(1.1e1, 4294967295), truncate(1.1e1, 4294967295);
177
select round(1.12e1, 4294967296), truncate(1.12e1, 4294967296);
178
select round(1.5, 2147483640), truncate(1.5, 2147483640);
179
select round(1.5, -2147483649), round(1.5, 2147483648);
180
select truncate(1.5, -2147483649), truncate(1.5, 2147483648);
181
select round(1.5, -4294967296), round(1.5, 4294967296);
182
select truncate(1.5, -4294967296), truncate(1.5, 4294967296);
183
select round(1.5, -9223372036854775808), round(1.5, 9223372036854775808);
184
select truncate(1.5, -9223372036854775808), truncate(1.5, 9223372036854775808);
185
select round(1.5, 18446744073709551615), truncate(1.5, 18446744073709551615);
186
select round(18446744073709551614, -1), truncate(18446744073709551614, -1);
187
select round(4, -4294967200), truncate(4, -4294967200);
413.2.2 by Brian Aker
Removed UNSIGNED from parser.
188
select mod(-2, 3), mod(18446744073709551614, 3), mod(-2, 3);
189
select mod(5, -2), mod(5, 18446744073709551614), mod(5, -2);
190
select pow(-2, 5), pow(18446744073709551614, 5), pow(-2, 5);
1 by brian
clean slate
191
192
#
193
# Bug #30587: mysql crashes when trying to group by TIME div NUMBER
194
#
195
397 by Brian Aker
Remove tiny/small int.
196
CREATE TABLE t1 (a timestamp, b varchar(20), c int);
1 by brian
clean slate
197
INSERT INTO t1 VALUES('1998-09-23', 'str1', 1), ('2003-03-25', 'str2', 0);
198
SELECT a DIV 900 y FROM t1 GROUP BY y;
199
SELECT DISTINCT a DIV 900 y FROM t1;
200
SELECT b DIV 900 y FROM t1 GROUP BY y;
201
SELECT c DIV 900 y FROM t1 GROUP BY y;
202
DROP TABLE t1;
203
204
CREATE TABLE t1(a LONGBLOB);
205
INSERT INTO t1 VALUES('1'),('2'),('3');
206
SELECT DISTINCT (a DIV 254576881) FROM t1;
207
SELECT (a DIV 254576881) FROM t1 UNION ALL 
208
  SELECT (a DIV 254576881) FROM t1;
209
DROP TABLE t1;
210
211
--echo End of 5.0 tests
212
213
#
214
# Bug #31236: Inconsistent division by zero behavior for floating point numbers
215
#
216
217
SELECT 1e308 + 1e308;
218
SELECT -1e308 - 1e308;
219
SELECT 1e300 * 1e300;
220
SELECT 1e300 / 1e-300;
221
SELECT EXP(750);
222
SELECT POW(10, 309);
223
224
--echo End of 5.1 tests