~ubuntu-branches/ubuntu/precise/mysql-5.1/precise

« back to all changes in this revision

Viewing changes to mysql-test/r/type_year.result

  • Committer: Bazaar Package Importer
  • Author(s): Norbert Tretkowski
  • Date: 2010-03-17 14:56:02 UTC
  • Revision ID: james.westby@ubuntu.com-20100317145602-x7e30l1b2sb5s6w6
Tags: upstream-5.1.45
ImportĀ upstreamĀ versionĀ 5.1.45

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
drop table if exists t1;
 
2
create table t1 (y year,y2 year(2));
 
3
insert into t1 values (0,0),(1999,1999),(2000,2000),(2001,2001),(70,70),(69,69);
 
4
select * from t1;
 
5
y       y2
 
6
0000    00
 
7
1999    99
 
8
2000    00
 
9
2001    01
 
10
1970    70
 
11
2069    69
 
12
select * from t1 order by y;
 
13
y       y2
 
14
0000    00
 
15
1970    70
 
16
1999    99
 
17
2000    00
 
18
2001    01
 
19
2069    69
 
20
select * from t1 order by y2;
 
21
y       y2
 
22
1970    70
 
23
1999    99
 
24
0000    00
 
25
2000    00
 
26
2001    01
 
27
2069    69
 
28
drop table t1;
 
29
create table t1 (y year);
 
30
insert into t1 values (now());
 
31
Warnings:
 
32
Warning 1265    Data truncated for column 'y' at row 1
 
33
select if(y = now(), 1, 0) from t1;
 
34
if(y = now(), 1, 0)
 
35
1
 
36
drop table t1;
 
37
create table t1(a year);
 
38
insert into t1 values (2000.5), ('2000.5'), ('2001a'), ('2.001E3');
 
39
Warnings:
 
40
Warning 1265    Data truncated for column 'a' at row 3
 
41
select * from t1;
 
42
a
 
43
2001
 
44
2001
 
45
2001
 
46
2001
 
47
drop table t1;
 
48
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