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
|