~drizzle-trunk/drizzle/development

1 by brian
clean slate
1
select cast("A" as binary) = "a", cast(BINARY "a" as CHAR) = "A";
2
cast("A" as binary) = "a"	cast(BINARY "a" as CHAR) = "A"
3
0	1
4
select cast("2001-1-1" as DATE), cast("2001-1-1" as DATETIME);
5
cast("2001-1-1" as DATE)	cast("2001-1-1" as DATETIME)
6
2001-01-01	2001-01-01 00:00:00
7
select CONVERT("2004-01-22 21:45:33",DATE);
8
CONVERT("2004-01-22 21:45:33",DATE)
9
2004-01-22
10
select 10+'10';
11
10+'10'
12
20
13
select 10.0+'10';
14
10.0+'10'
15
20
16
select 10E+0+'10';
17
10E+0+'10'
18
20
19
select CONVERT(DATE "2004-01-22 21:45:33",CHAR);
20
CONVERT(DATE "2004-01-22 21:45:33",CHAR)
21
2004-01-22 21:45:33
22
select CONVERT(DATE "2004-01-22 21:45:33",CHAR(4));
23
CONVERT(DATE "2004-01-22 21:45:33",CHAR(4))
24
2004
25
Warnings:
26
Warning	1292	Truncated incorrect CHAR(4) value: '2004-01-22 21:45:33'
27
select CONVERT(DATE "2004-01-22 21:45:33",BINARY(4));
28
CONVERT(DATE "2004-01-22 21:45:33",BINARY(4))
29
2004
30
Warnings:
31
Warning	1292	Truncated incorrect BINARY(4) value: '2004-01-22 21:45:33'
32
select CAST(DATE "2004-01-22 21:45:33" AS BINARY(4));
33
CAST(DATE "2004-01-22 21:45:33" AS BINARY(4))
34
2004
35
Warnings:
36
Warning	1292	Truncated incorrect BINARY(4) value: '2004-01-22 21:45:33'
37
select 10+'a';
38
10+'a'
39
10
40
Warnings:
41
Warning	1292	Truncated incorrect DOUBLE value: 'a'
42
select 10.0+cast('a' as decimal);
43
10.0+cast('a' as decimal)
44
10.0
45
Warnings:
46
Warning	1292	Truncated incorrect DECIMAL value: 'a'
47
select 10E+0+'a';
48
10E+0+'a'
49
10
50
Warnings:
51
Warning	1292	Truncated incorrect DOUBLE value: 'a'
52
select
685.2.5 by Monty Taylor
Fixed up the cast test.
53
cast('ab'  AS char)    as c1,
54
cast('a '  AS char)    as c2,
55
cast('abc' AS char(2)) as c3,
56
cast('a  ' AS char(2)) as c4,
57
hex(cast('a'   AS char(2))) as c5;
1 by brian
clean slate
58
c1	c2	c3	c4	c5
685.2.5 by Monty Taylor
Fixed up the cast test.
59
ab	a 	ab	a 	61
1 by brian
clean slate
60
Warnings:
685.2.5 by Monty Taylor
Fixed up the cast test.
61
Warning	1292	Truncated incorrect CHAR(2) value: 'abc'
62
Warning	1292	Truncated incorrect CHAR(2) value: 'a  '
1 by brian
clean slate
63
select cast(1000 as CHAR(3));
64
cast(1000 as CHAR(3))
65
100
66
Warnings:
685.2.5 by Monty Taylor
Fixed up the cast test.
67
Warning	1292	Truncated incorrect CHAR(3) value: '1000'
1 by brian
clean slate
68
create table t1 select
685.2.5 by Monty Taylor
Fixed up the cast test.
69
cast('ab'  AS char)    as c1,
70
cast('a '  AS char)    as c2,
71
cast('abc' AS char(2)) as c3,
72
cast('a  ' AS char(2)) as c4,
73
cast('a'   AS char(2)) as c5;
74
ERROR 22007: Truncated incorrect CHAR(2) value: 'abc'
1 by brian
clean slate
75
select
685.2.5 by Monty Taylor
Fixed up the cast test.
76
cast('ÆÇ'  AS char)    as c1,
77
cast('Æ '  AS char)    as c2,
78
cast('ÆÇÈ' AS char(2)) as c3,
79
cast('Æ  ' AS char(2)) as c4,
80
cast('Æ'   AS char(2)) as c5;
81
c1	c2	c3	c4	c5
82
ÆÇ	Æ 	ÆÇ	Æ 	Æ
83
Warnings:
84
Warning	1292	Truncated incorrect CHAR(2) value: 'ÆÇÈ'
85
Warning	1292	Truncated incorrect CHAR(2) value: 'Æ  '
1 by brian
clean slate
86
select cast("2001-1-1" as date) = "2001-01-01";
87
cast("2001-1-1" as date) = "2001-01-01"
88
1
89
select cast("2001-1-1" as datetime) = "2001-01-01 00:00:00";
90
cast("2001-1-1" as datetime) = "2001-01-01 00:00:00"
91
1
92
select cast(NULL as DATE);
93
cast(NULL as DATE)
94
NULL
95
select cast(NULL as BINARY);
96
cast(NULL as BINARY)
97
NULL
98
CREATE TABLE t1 (a enum ('aac','aab','aaa') not null);
99
INSERT INTO t1 VALUES ('aaa'),('aab'),('aac');
100
SELECT a, CAST(a AS CHAR(3)) FROM t1 ORDER BY CAST(a AS CHAR(2)), a;
101
a	CAST(a AS CHAR(3))
102
aac	aac
103
aab	aab
104
aaa	aaa
105
Warnings:
685.2.5 by Monty Taylor
Fixed up the cast test.
106
Warning	1292	Truncated incorrect CHAR(2) value: 'aaa'
107
Warning	1292	Truncated incorrect CHAR(2) value: 'aab'
108
Warning	1292	Truncated incorrect CHAR(2) value: 'aac'
1 by brian
clean slate
109
SELECT a, CAST(a AS CHAR(2)) FROM t1 ORDER BY CAST(a AS CHAR(3)), a;
110
a	CAST(a AS CHAR(2))
111
aaa	aa
112
aab	aa
113
aac	aa
114
Warnings:
685.2.5 by Monty Taylor
Fixed up the cast test.
115
Warning	1292	Truncated incorrect CHAR(2) value: 'aaa'
116
Warning	1292	Truncated incorrect CHAR(2) value: 'aab'
117
Warning	1292	Truncated incorrect CHAR(2) value: 'aac'
1 by brian
clean slate
118
DROP TABLE t1;
119
select date_add(cast('2004-12-30 12:00:00' as date), interval 0 hour);
120
date_add(cast('2004-12-30 12:00:00' as date), interval 0 hour)
121
2004-12-30 00:00:00
122
select isnull(date(NULL)), isnull(cast(NULL as DATE));
123
isnull(date(NULL))	isnull(cast(NULL as DATE))
124
1	1
125
select cast('1.2' as decimal(3,2));
126
cast('1.2' as decimal(3,2))
127
1.20
128
select 1e18 * cast('1.2' as decimal(3,2));
129
1e18 * cast('1.2' as decimal(3,2))
130
1.2e18
131
set @v1=1e18;
132
select cast(@v1 as decimal(22, 2));
133
cast(@v1 as decimal(22, 2))
134
1000000000000000000.00
135
select cast(-1e18 as decimal(22,2));
136
cast(-1e18 as decimal(22,2))
137
-1000000000000000000.00
138
CREATE TABLE t1 (v varchar(10), tt tinytext, t text,
139
mt mediumtext, lt longtext);
140
INSERT INTO t1 VALUES ('1.01', '2.02', '3.03', '4.04', '5.05');
141
SELECT CAST(v AS DECIMAL), CAST(tt AS DECIMAL), CAST(t AS DECIMAL),
142
CAST(mt AS DECIMAL), CAST(lt AS DECIMAL) from t1;
143
CAST(v AS DECIMAL)	CAST(tt AS DECIMAL)	CAST(t AS DECIMAL)	CAST(mt AS DECIMAL)	CAST(lt AS DECIMAL)
144
1	2	3	4	5
145
DROP TABLE t1;
146
select cast(NULL as decimal(6)) as t1;
147
t1
148
NULL
149
select hex(cast('a' as char(2) binary));
150
hex(cast('a' as char(2) binary))
151
61
152
select hex(cast('a' as binary(2)));
153
hex(cast('a' as binary(2)))
154
6100
155
select hex(cast('a' as char(2) binary));
156
hex(cast('a' as char(2) binary))
685.2.5 by Monty Taylor
Fixed up the cast test.
157
6100
1 by brian
clean slate
158
CREATE TABLE t1 (f1 DATE);
159
INSERT INTO t1 VALUES ('2007-07-19'), (NULL);
160
SELECT HOUR(f1),
161
MINUTE(f1),
162
SECOND(f1) FROM t1;
163
HOUR(f1)	MINUTE(f1)	SECOND(f1)
164
0	0	0
165
NULL	NULL	NULL
166
SELECT HOUR(CAST('2007-07-19' AS DATE)),
167
MINUTE(CAST('2007-07-19' AS DATE)),
168
SECOND(CAST('2007-07-19' AS DATE));
169
HOUR(CAST('2007-07-19' AS DATE))	MINUTE(CAST('2007-07-19' AS DATE))	SECOND(CAST('2007-07-19' AS DATE))
170
0	0	0
171
SELECT HOUR(CAST(NULL AS DATE)),
172
MINUTE(CAST(NULL AS DATE)),
173
SECOND(CAST(NULL AS DATE));
174
HOUR(CAST(NULL AS DATE))	MINUTE(CAST(NULL AS DATE))	SECOND(CAST(NULL AS DATE))
175
NULL	NULL	NULL
176
SELECT HOUR(NULL),
177
MINUTE(NULL),
178
SECOND(NULL);
179
HOUR(NULL)	MINUTE(NULL)	SECOND(NULL)
180
NULL	NULL	NULL
181
DROP TABLE t1;
182
End of 5.0 tests