~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/r/case.result

  • Committer: Monty Taylor
  • Date: 2008-12-17 05:45:14 UTC
  • mfrom: (685.2.4 fix-testcases)
  • mto: This revision was merged to the branch mainline in revision 713.
  • Revision ID: monty@inaugust.com-20081217054514-c6cgfqby0n3286d2
Merged some fixed test cases.

Show diffs side-by-side

added added

removed removed

Lines of Context:
27
27
id      select_type     table   type    possible_keys   key     key_len ref     rows    filtered        Extra
28
28
1       SIMPLE  NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    No tables used
29
29
Warnings:
30
 
Note    1003    select (case 1 when 1 then 'one' when 2 then 'two' else 'more' end) AS "CASE 1 when 1 then ""one"" WHEN 2 then ""two"" ELSE ""more"" END"
 
30
Note    1003    select (case 1 when 1 then 'one' when 2 then 'two' else 'more' end) AS `CASE 1 when 1 then "one" WHEN 2 then "two" ELSE "more" END`
31
31
select CASE 2.0 when 1 then "one" WHEN 2.0 then "two" ELSE "more" END;
32
32
CASE 2.0 when 1 then "one" WHEN 2.0 then "two" ELSE "more" END
33
33
two
34
 
select (CASE "two" when "one" then "1" WHEN "two" then "2" END) | 0;
35
 
(CASE "two" when "one" then "1" WHEN "two" then "2" END) | 0
 
34
select (CASE "two" when "one" then "1" WHEN "two" then "2" END);
 
35
(CASE "two" when "one" then "1" WHEN "two" then "2" END)
36
36
2
37
37
select (CASE "two" when "one" then 1.00 WHEN "two" then 2.00 END) +0.0;
38
38
(CASE "two" when "one" then 1.00 WHEN "two" then 2.00 END) +0.0
40
40
select case 1/0 when "a" then "true" else "false" END;
41
41
case 1/0 when "a" then "true" else "false" END
42
42
false
 
43
Warnings:
 
44
Error   1365    Division by 0
43
45
select case 1/0 when "a" then "true" END;
44
46
case 1/0 when "a" then "true" END
45
47
NULL
46
 
select (case 1/0 when "a" then "true" END) | 0;
47
 
(case 1/0 when "a" then "true" END) | 0
 
48
Warnings:
 
49
Error   1365    Division by 0
 
50
select (case 1/0 when "a" then "true" END);
 
51
(case 1/0 when "a" then "true" END)
48
52
NULL
 
53
Warnings:
 
54
Error   1365    Division by 0
49
55
select (case 1/0 when "a" then "true" END) + 0.0;
50
56
(case 1/0 when "a" then "true" END) + 0.0
51
57
NULL
 
58
Warnings:
 
59
Error   1365    Division by 0
52
60
select case when 1>0 then "TRUE" else "FALSE" END;
53
61
case when 1>0 then "TRUE" else "FALSE" END
54
62
TRUE
66
74
id      select_type     table   type    possible_keys   key     key_len ref     rows    filtered        Extra
67
75
1       SIMPLE  t1      ALL     NULL    NULL    NULL    NULL    4       100.00  Using temporary; Using filesort
68
76
Warnings:
69
 
Note    1003    select (case "test"."t1"."a" when 1 then 2 when 2 then 3 else 0 end) AS "fcase",count(0) AS "count(*)" from "test"."t1" group by (case "test"."t1"."a" when 1 then 2 when 2 then 3 else 0 end)
 
77
Note    1003    select (case `test`.`t1`.`a` when 1 then 2 when 2 then 3 else 0 end) AS `fcase`,count(0) AS `count(*)` from `test`.`t1` group by (case `test`.`t1`.`a` when 1 then 2 when 2 then 3 else 0 end)
70
78
select case a when 1 then "one" when 2 then "two" else "nothing" end as fcase, count(*) from t1 group by fcase;
71
79
fcase   count(*)
72
80
nothing 2
81
89
yellow
82
90
green
83
91
drop table t1;
84
 
SET NAMES latin1;
85
92
CREATE TABLE t1 SELECT 
86
 
CASE WHEN 1 THEN _latin1'a' COLLATE latin1_danish_ci ELSE _latin1'a' END AS c1,
87
 
CASE WHEN 1 THEN _latin1'a' ELSE _latin1'a' COLLATE latin1_danish_ci END AS c2,
 
93
CASE WHEN 1 THEN 'a' COLLATE utf8_bin ELSE 'a' END AS c1,
 
94
CASE WHEN 1 THEN 'a' ELSE 'a' COLLATE utf8_bin END AS c2,
88
95
CASE WHEN 1 THEN 'a' ELSE  1  END AS c3,
89
96
CASE WHEN 1 THEN  1  ELSE 'a' END AS c4,
90
97
CASE WHEN 1 THEN 'a' ELSE 1.0 END AS c5,
98
105
;
99
106
SHOW CREATE TABLE t1;
100
107
Table   Create Table
101
 
t1      CREATE TABLE "t1" (
102
 
  "c1" varchar(1) CHARACTER SET latin1 COLLATE latin1_danish_ci NOT NULL,
103
 
  "c2" varchar(1) CHARACTER SET latin1 COLLATE latin1_danish_ci NOT NULL,
104
 
  "c3" varbinary(1) NOT NULL,
105
 
  "c4" varbinary(1) NOT NULL,
106
 
  "c5" varbinary(4) NOT NULL,
107
 
  "c6" varbinary(4) NOT NULL,
108
 
  "c7" decimal(2,1) NOT NULL,
109
 
  "c8" decimal(2,1) NOT NULL,
110
 
  "c9" decimal(2,1),
111
 
  "c10" double NOT NULL,
112
 
  "c11" double NOT NULL,
113
 
  "c12" varbinary(5) NOT NULL
114
 
) ENGINE=MyISAM DEFAULT CHARSET=latin1
 
108
t1      CREATE TABLE `t1` (
 
109
  `c1` varchar(1) CHARACTER SET utf8 COLLATE utf8_bin,
 
110
  `c2` varchar(1) CHARACTER SET utf8 COLLATE utf8_bin,
 
111
  `c3` varbinary(4) NOT NULL,
 
112
  `c4` varbinary(4) NOT NULL,
 
113
  `c5` varbinary(4) NOT NULL,
 
114
  `c6` varbinary(4) NOT NULL,
 
115
  `c7` decimal(2,1) NOT NULL,
 
116
  `c8` decimal(2,1) NOT NULL,
 
117
  `c9` decimal(2,1),
 
118
  `c10` double NOT NULL,
 
119
  `c11` double NOT NULL,
 
120
  `c12` varbinary(5) NOT NULL
 
121
) ENGINE=InnoDB
115
122
DROP TABLE t1;
116
123
SELECT CASE 
117
124
WHEN 1 
118
 
THEN _latin1'a' COLLATE latin1_danish_ci 
119
 
ELSE _latin1'a' COLLATE latin1_swedish_ci
120
 
END;
121
 
ERROR HY000: Illegal mix of collations (latin1_danish_ci,EXPLICIT) and (latin1_swedish_ci,EXPLICIT) for operation 'case'
122
 
SELECT CASE _latin1'a' COLLATE latin1_general_ci
123
 
WHEN _latin1'a' COLLATE latin1_danish_ci  THEN 1
124
 
WHEN _latin1'a' COLLATE latin1_swedish_ci THEN 2
125
 
END;
126
 
ERROR HY000: Illegal mix of collations (latin1_general_ci,EXPLICIT), (latin1_danish_ci,EXPLICIT), (latin1_swedish_ci,EXPLICIT) for operation 'case'
 
125
THEN 'a' COLLATE utf8_bin 
 
126
ELSE 'a' COLLATE utf8_swedish_ci
 
127
END;
 
128
ERROR HY000: Illegal mix of collations (utf8_bin,EXPLICIT) and (utf8_swedish_ci,EXPLICIT) for operation 'case'
 
129
SELECT CASE 'a' COLLATE utf8_bin
 
130
WHEN 'a' COLLATE utf8_danish_ci  THEN 1
 
131
WHEN 'a' COLLATE utf8_swedish_ci THEN 2
 
132
END;
 
133
ERROR HY000: Illegal mix of collations (utf8_bin,EXPLICIT), (utf8_danish_ci,EXPLICIT), (utf8_swedish_ci,EXPLICIT) for operation 'case'
127
134
SELECT 
128
 
CASE _latin1'a' COLLATE latin1_general_ci  WHEN _latin1'A' THEN '1' ELSE 2 END,
129
 
CASE _latin1'a' COLLATE latin1_bin         WHEN _latin1'A' THEN '1' ELSE 2 END,
130
 
CASE _latin1'a' WHEN _latin1'A' COLLATE latin1_swedish_ci THEN '1' ELSE 2 END,
131
 
CASE _latin1'a' WHEN _latin1'A' COLLATE latin1_bin        THEN '1' ELSE 2 END
 
135
CASE 'a' COLLATE utf8_general_ci  WHEN 'A' THEN '1' ELSE 2 END,
 
136
CASE 'a' COLLATE utf8_bin         WHEN 'A' THEN '1' ELSE 2 END,
 
137
CASE 'a' WHEN 'A' COLLATE utf8_swedish_ci THEN '1' ELSE 2 END,
 
138
CASE 'a' WHEN 'A' COLLATE utf8_bin        THEN '1' ELSE 2 END
132
139
;
133
 
CASE _latin1'a' COLLATE latin1_general_ci  WHEN _latin1'A' THEN '1' ELSE 2 END  CASE _latin1'a' COLLATE latin1_bin         WHEN _latin1'A' THEN '1' ELSE 2 END  CASE _latin1'a' WHEN _latin1'A' COLLATE latin1_swedish_ci THEN '1' ELSE 2 END   CASE _latin1'a' WHEN _latin1'A' COLLATE latin1_bin        THEN '1' ELSE 2 END
 
140
CASE 'a' COLLATE utf8_general_ci  WHEN 'A' THEN '1' ELSE 2 END  CASE 'a' COLLATE utf8_bin         WHEN 'A' THEN '1' ELSE 2 END  CASE 'a' WHEN 'A' COLLATE utf8_swedish_ci THEN '1' ELSE 2 END   CASE 'a' WHEN 'A' COLLATE utf8_bin        THEN '1' ELSE 2 END
134
141
1       2       1       2
135
 
CREATE TABLE t1 SELECT COALESCE(_latin1'a',_latin2'a');
136
 
ERROR HY000: Illegal mix of collations (latin1_swedish_ci,COERCIBLE) and (latin2_general_ci,COERCIBLE) for operation 'coalesce'
137
 
CREATE TABLE t1 SELECT COALESCE('a' COLLATE latin1_swedish_ci,'b' COLLATE latin1_bin);
138
 
ERROR HY000: Illegal mix of collations (latin1_swedish_ci,EXPLICIT) and (latin1_bin,EXPLICIT) for operation 'coalesce'
 
142
CREATE TABLE t1 SELECT COALESCE('a' COLLATE utf8_swedish_ci,'b' COLLATE utf8_bin);
 
143
ERROR HY000: Illegal mix of collations (utf8_swedish_ci,EXPLICIT) and (utf8_bin,EXPLICIT) for operation 'coalesce'
139
144
CREATE TABLE t1 SELECT 
140
145
COALESCE(1), COALESCE(1.0),COALESCE('a'),
141
146
COALESCE(1,1.0), COALESCE(1,'1'),COALESCE(1.1,'1'),
142
 
COALESCE('a' COLLATE latin1_bin,'b');
 
147
COALESCE('a' COLLATE utf8_bin,'b');
143
148
explain extended SELECT 
144
149
COALESCE(1), COALESCE(1.0),COALESCE('a'),
145
150
COALESCE(1,1.0), COALESCE(1,'1'),COALESCE(1.1,'1'),
146
 
COALESCE('a' COLLATE latin1_bin,'b');
 
151
COALESCE('a' COLLATE utf8_bin,'b');
147
152
id      select_type     table   type    possible_keys   key     key_len ref     rows    filtered        Extra
148
153
1       SIMPLE  NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    No tables used
149
154
Warnings:
150
 
Note    1003    select coalesce(1) AS "COALESCE(1)",coalesce(1.0) AS "COALESCE(1.0)",coalesce('a') AS "COALESCE('a')",coalesce(1,1.0) AS "COALESCE(1,1.0)",coalesce(1,'1') AS "COALESCE(1,'1')",coalesce(1.1,'1') AS "COALESCE(1.1,'1')",coalesce(('a' collate latin1_bin),'b') AS "COALESCE('a' COLLATE latin1_bin,'b')"
 
155
Note    1003    select coalesce(1) AS `COALESCE(1)`,coalesce(1.0) AS `COALESCE(1.0)`,coalesce('a') AS `COALESCE('a')`,coalesce(1,1.0) AS `COALESCE(1,1.0)`,coalesce(1,'1') AS `COALESCE(1,'1')`,coalesce(1.1,'1') AS `COALESCE(1.1,'1')`,coalesce(('a' collate utf8_bin),'b') AS `COALESCE('a' COLLATE utf8_bin,'b')`
151
156
SHOW CREATE TABLE t1;
152
157
Table   Create Table
153
 
t1      CREATE TABLE "t1" (
154
 
  "COALESCE(1)" int(1) NOT NULL,
155
 
  "COALESCE(1.0)" decimal(2,1) NOT NULL,
156
 
  "COALESCE('a')" varchar(1) NOT NULL,
157
 
  "COALESCE(1,1.0)" decimal(2,1) NOT NULL,
158
 
  "COALESCE(1,'1')" varbinary(1) NOT NULL,
159
 
  "COALESCE(1.1,'1')" varbinary(4) NOT NULL,
160
 
  "COALESCE('a' COLLATE latin1_bin,'b')" varchar(1) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL
161
 
) ENGINE=MyISAM DEFAULT CHARSET=latin1
 
158
t1      CREATE TABLE `t1` (
 
159
  `COALESCE(1)` int NOT NULL,
 
160
  `COALESCE(1.0)` decimal(2,1) NOT NULL,
 
161
  `COALESCE('a')` varchar(1) NOT NULL,
 
162
  `COALESCE(1,1.0)` decimal(2,1) NOT NULL,
 
163
  `COALESCE(1,'1')` varbinary(4) NOT NULL,
 
164
  `COALESCE(1.1,'1')` varbinary(4) NOT NULL,
 
165
  `COALESCE('a' COLLATE utf8_bin,'b')` varchar(1) CHARACTER SET utf8 COLLATE utf8_bin
 
166
) ENGINE=InnoDB
162
167
DROP TABLE t1;
163
168
SELECT 'case+union+test'
164
169
UNION 
201
206
2.00    2       NULL
202
207
DROP TABLE t1,t2;
203
208
End of 4.1 tests
204
 
create table t1 (a int, b bigint unsigned);
 
209
create table t1 (a int, b bigint);
205
210
create table t2 (c int);
206
211
insert into t1 (a, b) values (1,4572794622775114594), (2,18196094287899841997),
207
212
(3,11120436154190595086);
209
214
select t1.a, (case t1.a when 0 then 0 else t1.b end) d from t1 
210
215
join t2 on t1.a=t2.c order by d;
211
216
a       d
 
217
3       -7326307919518956530
 
218
2       -250649785809709619
212
219
1       4572794622775114594
213
 
3       11120436154190595086
214
 
2       18196094287899841997
215
220
select t1.a, (case t1.a when 0 then 0 else t1.b end) d from t1 
216
221
join t2 on t1.a=t2.c where b=11120436154190595086 order by d;
217
222
a       d
218
 
3       11120436154190595086
 
223
3       -7326307919518956530
219
224
drop table t1, t2;
220
225
End of 5.0 tests