Skip to content

Commit d08385f

Browse files
author
Alfranio Correia
committed
merging from 5.1 to rep+2 starting at gca(5.1, next-mr) == [email protected]
2 parents 51dc566 + 4422b0f commit d08385f

File tree

9 files changed

+501
-106
lines changed

9 files changed

+501
-106
lines changed

mysql-test/r/select.result

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4609,4 +4609,29 @@ HAVING v <= 't'
46094609
ORDER BY pk;
46104610
v
46114611
DROP TABLE t1;
4612+
#
4613+
# Bug#49489 Uninitialized cache led to a wrong result.
4614+
#
4615+
CREATE TABLE t1(c1 DOUBLE(5,4));
4616+
INSERT INTO t1 VALUES (9.1234);
4617+
SELECT * FROM t1 WHERE c1 < 9.12345;
4618+
c1
4619+
9.1234
4620+
DROP TABLE t1;
4621+
# End of test for bug#49489.
4622+
#
4623+
# Bug #49517: Inconsistent behavior while using
4624+
# NULLable BIGINT and INT columns in comparison
4625+
#
4626+
CREATE TABLE t1(a BIGINT UNSIGNED NOT NULL, b BIGINT NULL, c INT NULL);
4627+
INSERT INTO t1 VALUES(105, NULL, NULL);
4628+
SELECT * FROM t1 WHERE b < 102;
4629+
a b c
4630+
SELECT * FROM t1 WHERE c < 102;
4631+
a b c
4632+
SELECT * FROM t1 WHERE 102 < b;
4633+
a b c
4634+
SELECT * FROM t1 WHERE 102 < c;
4635+
a b c
4636+
DROP TABLE t1;
46124637
End of 5.1 tests

mysql-test/r/show_check.result

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1447,4 +1447,10 @@ GRANT PROCESS ON *.* TO test_u@localhost;
14471447
SHOW ENGINE MYISAM MUTEX;
14481448
SHOW ENGINE MYISAM STATUS;
14491449
DROP USER test_u@localhost;
1450+
#
1451+
# Bug #48985: show create table crashes if previous access to the table
1452+
# was killed
1453+
#
1454+
SHOW CREATE TABLE non_existent;
1455+
ERROR 70100: Query execution was interrupted
14501456
End of 5.1 tests

mysql-test/r/type_year.result

Lines changed: 264 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,267 @@ a
4646
2001
4747
drop table t1;
4848
End of 5.0 tests
49+
#
50+
# Bug #49480: WHERE using YEAR columns returns unexpected results
51+
#
52+
CREATE TABLE t2(yy YEAR(2), c2 CHAR(4));
53+
CREATE TABLE t4(yyyy YEAR(4), c4 CHAR(4));
54+
INSERT INTO t2 (c2) VALUES (NULL),(1970),(1999),(2000),(2001),(2069);
55+
INSERT INTO t4 (c4) SELECT c2 FROM t2;
56+
UPDATE t2 SET yy = c2;
57+
UPDATE t4 SET yyyy = c4;
58+
SELECT * FROM t2;
59+
yy c2
60+
NULL NULL
61+
70 1970
62+
99 1999
63+
00 2000
64+
01 2001
65+
69 2069
66+
SELECT * FROM t4;
67+
yyyy c4
68+
NULL NULL
69+
1970 1970
70+
1999 1999
71+
2000 2000
72+
2001 2001
73+
2069 2069
74+
# Comparison of YEAR(2) with YEAR(4)
75+
SELECT * FROM t2, t4 WHERE yy = yyyy;
76+
yy c2 yyyy c4
77+
70 1970 1970 1970
78+
99 1999 1999 1999
79+
00 2000 2000 2000
80+
01 2001 2001 2001
81+
69 2069 2069 2069
82+
SELECT * FROM t2, t4 WHERE yy <=> yyyy;
83+
yy c2 yyyy c4
84+
NULL NULL NULL NULL
85+
70 1970 1970 1970
86+
99 1999 1999 1999
87+
00 2000 2000 2000
88+
01 2001 2001 2001
89+
69 2069 2069 2069
90+
SELECT * FROM t2, t4 WHERE yy < yyyy;
91+
yy c2 yyyy c4
92+
70 1970 1999 1999
93+
70 1970 2000 2000
94+
99 1999 2000 2000
95+
70 1970 2001 2001
96+
99 1999 2001 2001
97+
00 2000 2001 2001
98+
70 1970 2069 2069
99+
99 1999 2069 2069
100+
00 2000 2069 2069
101+
01 2001 2069 2069
102+
SELECT * FROM t2, t4 WHERE yy > yyyy;
103+
yy c2 yyyy c4
104+
99 1999 1970 1970
105+
00 2000 1970 1970
106+
01 2001 1970 1970
107+
69 2069 1970 1970
108+
00 2000 1999 1999
109+
01 2001 1999 1999
110+
69 2069 1999 1999
111+
01 2001 2000 2000
112+
69 2069 2000 2000
113+
69 2069 2001 2001
114+
# Comparison of YEAR(2) with YEAR(2)
115+
SELECT * FROM t2 a, t2 b WHERE a.yy = b.yy;
116+
yy c2 yy c2
117+
70 1970 70 1970
118+
99 1999 99 1999
119+
00 2000 00 2000
120+
01 2001 01 2001
121+
69 2069 69 2069
122+
SELECT * FROM t2 a, t2 b WHERE a.yy <=> b.yy;
123+
yy c2 yy c2
124+
NULL NULL NULL NULL
125+
70 1970 70 1970
126+
99 1999 99 1999
127+
00 2000 00 2000
128+
01 2001 01 2001
129+
69 2069 69 2069
130+
SELECT * FROM t2 a, t2 b WHERE a.yy < b.yy;
131+
yy c2 yy c2
132+
70 1970 99 1999
133+
70 1970 00 2000
134+
99 1999 00 2000
135+
70 1970 01 2001
136+
99 1999 01 2001
137+
00 2000 01 2001
138+
70 1970 69 2069
139+
99 1999 69 2069
140+
00 2000 69 2069
141+
01 2001 69 2069
142+
# Comparison of YEAR(4) with YEAR(4)
143+
SELECT * FROM t4 a, t4 b WHERE a.yyyy = b.yyyy;
144+
yyyy c4 yyyy c4
145+
1970 1970 1970 1970
146+
1999 1999 1999 1999
147+
2000 2000 2000 2000
148+
2001 2001 2001 2001
149+
2069 2069 2069 2069
150+
SELECT * FROM t4 a, t4 b WHERE a.yyyy <=> b.yyyy;
151+
yyyy c4 yyyy c4
152+
NULL NULL NULL NULL
153+
1970 1970 1970 1970
154+
1999 1999 1999 1999
155+
2000 2000 2000 2000
156+
2001 2001 2001 2001
157+
2069 2069 2069 2069
158+
SELECT * FROM t4 a, t4 b WHERE a.yyyy < b.yyyy;
159+
yyyy c4 yyyy c4
160+
1970 1970 1999 1999
161+
1970 1970 2000 2000
162+
1999 1999 2000 2000
163+
1970 1970 2001 2001
164+
1999 1999 2001 2001
165+
2000 2000 2001 2001
166+
1970 1970 2069 2069
167+
1999 1999 2069 2069
168+
2000 2000 2069 2069
169+
2001 2001 2069 2069
170+
# Comparison with constants:
171+
SELECT * FROM t2 WHERE yy = NULL;
172+
yy c2
173+
SELECT * FROM t4 WHERE yyyy = NULL;
174+
yyyy c4
175+
SELECT * FROM t2 WHERE yy <=> NULL;
176+
yy c2
177+
NULL NULL
178+
SELECT * FROM t4 WHERE yyyy <=> NULL;
179+
yyyy c4
180+
NULL NULL
181+
SELECT * FROM t2 WHERE yy < NULL;
182+
yy c2
183+
SELECT * FROM t2 WHERE yy > NULL;
184+
yy c2
185+
SELECT * FROM t2 WHERE yy = NOW();
186+
yy c2
187+
SELECT * FROM t4 WHERE yyyy = NOW();
188+
yyyy c4
189+
SELECT * FROM t2 WHERE yy = 99;
190+
yy c2
191+
99 1999
192+
SELECT * FROM t2 WHERE 99 = yy;
193+
yy c2
194+
99 1999
195+
SELECT * FROM t4 WHERE yyyy = 99;
196+
yyyy c4
197+
1999 1999
198+
SELECT * FROM t2 WHERE yy = 'test';
199+
yy c2
200+
00 2000
201+
Warnings:
202+
Warning 1292 Truncated incorrect DOUBLE value: 'test'
203+
SELECT * FROM t4 WHERE yyyy = 'test';
204+
yyyy c4
205+
Warnings:
206+
Warning 1292 Truncated incorrect DOUBLE value: 'test'
207+
SELECT * FROM t2 WHERE yy = '1999';
208+
yy c2
209+
99 1999
210+
SELECT * FROM t4 WHERE yyyy = '1999';
211+
yyyy c4
212+
1999 1999
213+
SELECT * FROM t2 WHERE yy = 1999;
214+
yy c2
215+
99 1999
216+
SELECT * FROM t4 WHERE yyyy = 1999;
217+
yyyy c4
218+
1999 1999
219+
SELECT * FROM t2 WHERE yy = 1999.1;
220+
yy c2
221+
99 1999
222+
SELECT * FROM t4 WHERE yyyy = 1999.1;
223+
yyyy c4
224+
1999 1999
225+
SELECT * FROM t2 WHERE yy = 1998.9;
226+
yy c2
227+
99 1999
228+
SELECT * FROM t4 WHERE yyyy = 1998.9;
229+
yyyy c4
230+
1999 1999
231+
# Coverage tests for YEAR with zero/2000 constants:
232+
SELECT * FROM t2 WHERE yy = 0;
233+
yy c2
234+
00 2000
235+
SELECT * FROM t2 WHERE yy = '0';
236+
yy c2
237+
00 2000
238+
SELECT * FROM t2 WHERE yy = '0000';
239+
yy c2
240+
00 2000
241+
SELECT * FROM t2 WHERE yy = '2000';
242+
yy c2
243+
00 2000
244+
SELECT * FROM t2 WHERE yy = 2000;
245+
yy c2
246+
00 2000
247+
SELECT * FROM t4 WHERE yyyy = 0;
248+
yyyy c4
249+
SELECT * FROM t4 WHERE yyyy = '0';
250+
yyyy c4
251+
2000 2000
252+
SELECT * FROM t4 WHERE yyyy = '0000';
253+
yyyy c4
254+
SELECT * FROM t4 WHERE yyyy = '2000';
255+
yyyy c4
256+
2000 2000
257+
SELECT * FROM t4 WHERE yyyy = 2000;
258+
yyyy c4
259+
2000 2000
260+
# Comparison with constants those are out of YEAR range
261+
# (coverage test for backward compatibility)
262+
SELECT COUNT(yy) FROM t2;
263+
COUNT(yy)
264+
5
265+
SELECT COUNT(yyyy) FROM t4;
266+
COUNT(yyyy)
267+
5
268+
SELECT COUNT(*) FROM t2 WHERE yy = -1;
269+
COUNT(*)
270+
0
271+
SELECT COUNT(*) FROM t4 WHERE yyyy > -1;
272+
COUNT(*)
273+
5
274+
SELECT COUNT(*) FROM t2 WHERE yy > -1000000000000000000;
275+
COUNT(*)
276+
5
277+
SELECT COUNT(*) FROM t4 WHERE yyyy > -1000000000000000000;
278+
COUNT(*)
279+
5
280+
SELECT COUNT(*) FROM t2 WHERE yy < 2156;
281+
COUNT(*)
282+
5
283+
SELECT COUNT(*) FROM t4 WHERE yyyy < 2156;
284+
COUNT(*)
285+
5
286+
SELECT COUNT(*) FROM t2 WHERE yy < 1000000000000000000;
287+
COUNT(*)
288+
5
289+
SELECT COUNT(*) FROM t4 WHERE yyyy < 1000000000000000000;
290+
COUNT(*)
291+
5
292+
SELECT * FROM t2 WHERE yy < 123;
293+
yy c2
294+
70 1970
295+
99 1999
296+
00 2000
297+
01 2001
298+
69 2069
299+
SELECT * FROM t2 WHERE yy > 123;
300+
yy c2
301+
SELECT * FROM t4 WHERE yyyy < 123;
302+
yyyy c4
303+
SELECT * FROM t4 WHERE yyyy > 123;
304+
yyyy c4
305+
1970 1970
306+
1999 1999
307+
2000 2000
308+
2001 2001
309+
2069 2069
310+
DROP TABLE t2, t4;
311+
#
312+
End of 5.1 tests

mysql-test/t/select.test

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3964,4 +3964,27 @@ ORDER BY pk;
39643964

39653965
DROP TABLE t1;
39663966

3967+
--echo #
3968+
--echo # Bug#49489 Uninitialized cache led to a wrong result.
3969+
--echo #
3970+
CREATE TABLE t1(c1 DOUBLE(5,4));
3971+
INSERT INTO t1 VALUES (9.1234);
3972+
SELECT * FROM t1 WHERE c1 < 9.12345;
3973+
DROP TABLE t1;
3974+
--echo # End of test for bug#49489.
3975+
3976+
3977+
--echo #
3978+
--echo # Bug #49517: Inconsistent behavior while using
3979+
--echo # NULLable BIGINT and INT columns in comparison
3980+
--echo #
3981+
CREATE TABLE t1(a BIGINT UNSIGNED NOT NULL, b BIGINT NULL, c INT NULL);
3982+
INSERT INTO t1 VALUES(105, NULL, NULL);
3983+
SELECT * FROM t1 WHERE b < 102;
3984+
SELECT * FROM t1 WHERE c < 102;
3985+
SELECT * FROM t1 WHERE 102 < b;
3986+
SELECT * FROM t1 WHERE 102 < c;
3987+
DROP TABLE t1;
3988+
3989+
39673990
--echo End of 5.1 tests

mysql-test/t/show_check.test

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1193,6 +1193,28 @@ connection default;
11931193
DROP USER test_u@localhost;
11941194

11951195

1196+
--echo #
1197+
--echo # Bug #48985: show create table crashes if previous access to the table
1198+
--echo # was killed
1199+
--echo #
1200+
1201+
connect(con1,localhost,root,,);
1202+
CONNECTION con1;
1203+
LET $ID= `SELECT connection_id()`;
1204+
1205+
CONNECTION default;
1206+
--disable_query_log
1207+
eval KILL QUERY $ID;
1208+
--enable_query_log
1209+
1210+
CONNECTION con1;
1211+
--error ER_QUERY_INTERRUPTED
1212+
SHOW CREATE TABLE non_existent;
1213+
1214+
CONNECTION default;
1215+
DISCONNECT con1;
1216+
1217+
11961218
--echo End of 5.1 tests
11971219

11981220
# Wait till all disconnects are completed

0 commit comments

Comments
 (0)