~drizzle-trunk/drizzle/development

1 by brian
clean slate
1
drop table if exists t1,t2;
2
select 0=0,1>0,1>=1,1<0,1<=0,1!=0,strcmp("abc","abcd"),strcmp("b","a"),strcmp("a","a") ;
3
0=0	1>0	1>=1	1<0	1<=0	1!=0	strcmp("abc","abcd")	strcmp("b","a")	strcmp("a","a")
4
1	1	1	0	0	1	-1	1	0
5
select "a"<"b","a"<="b","b">="a","b">"a","a"="A","a"<>"b";
6
"a"<"b"	"a"<="b"	"b">="a"	"b">"a"	"a"="A"	"a"<>"b"
7
1	1	1	1	1	1
8
select "a "="A", "A "="a", "a  " <= "A b";
9
"a "="A"	"A "="a"	"a  " <= "A b"
10
1	1	1
11
select "abc" like "a%", "abc" not like "%d%", "a%" like "a\%","abc%" like "a%\%","abcd" like "a%b_%d", "a" like "%%a","abcde" like "a%_e","abc" like "abc%";
12
"abc" like "a%"	"abc" not like "%d%"	"a%" like "a\%"	"abc%" like "a%\%"	"abcd" like "a%b_%d"	"a" like "%%a"	"abcde" like "a%_e"	"abc" like "abc%"
13
1	1	1	1	1	1	1	1
14
select "a" like "%%b","a" like "%%ab","ab" like "a\%", "ab" like "_", "ab" like "ab_", "abc" like "%_d", "abc" like "abc%d";
15
"a" like "%%b"	"a" like "%%ab"	"ab" like "a\%"	"ab" like "_"	"ab" like "ab_"	"abc" like "%_d"	"abc" like "abc%d"
16
0	0	0	0	0	0	0
17
select '?' like '|%', '?' like '|%' ESCAPE '|', '%' like '|%', '%' like '|%' ESCAPE '|', '%' like '%';
18
'?' like '|%'	'?' like '|%' ESCAPE '|'	'%' like '|%'	'%' like '|%' ESCAPE '|'	'%' like '%'
19
0	0	0	1	1
20
select 'abc' like '%c','abcabc' like '%c',  "ab" like "", "ab" like "a", "ab" like "ab";
21
'abc' like '%c'	'abcabc' like '%c'	"ab" like ""	"ab" like "a"	"ab" like "ab"
22
1	1	0	0	1
23
select "Det här är svenska" regexp "h[[:alpha:]]+r", "aba" regexp "^(a|b)*$";
24
"Det här är svenska" regexp "h[[:alpha:]]+r"	"aba" regexp "^(a|b)*$"
25
1	1
26
select "aba" regexp concat("^","a");
27
"aba" regexp concat("^","a")
28
1
29
select !0,NOT 0=1,!(0=0),1 AND 1,1 && 0,0 OR 1,1 || NULL, 1=1 or 1=1 and 1=0;
30
!0	NOT 0=1	!(0=0)	1 AND 1	1 && 0	0 OR 1	1 || NULL	1=1 or 1=1 and 1=0
31
1	1	0	1	0	1	1	1
32
select 2 between 1 and 3, "monty" between "max" and "my",2=2 and "monty" between "max" and "my" and 3=3;
33
2 between 1 and 3	"monty" between "max" and "my"	2=2 and "monty" between "max" and "my" and 3=3
34
1	1	1
35
select 'b' between 'a' and 'c', 'B' between 'a' and 'c';
36
'b' between 'a' and 'c'	'B' between 'a' and 'c'
37
1	1
38
select 2 in (3,2,5,9,5,1),"monty" in ("david","monty","allan"), 1.2 in (1.4,1.2,1.0);
39
2 in (3,2,5,9,5,1)	"monty" in ("david","monty","allan")	1.2 in (1.4,1.2,1.0)
40
1	1	1
41
select -1.49 or -1.49,0.6 or 0.6;
42
-1.49 or -1.49	0.6 or 0.6
43
1	1
44
select 3 ^ 11, 1 ^ 1, 1 ^ 0, 1 ^ NULL, NULL ^ 1;
45
3 ^ 11	1 ^ 1	1 ^ 0	1 ^ NULL	NULL ^ 1
46
8	0	1	NULL	NULL
47
explain extended select 3 ^ 11, 1 ^ 1, 1 ^ 0, 1 ^ NULL, NULL ^ 1;
48
id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
49
1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
50
Warnings:
51
Note	1003	select (3 ^ 11) AS `3 ^ 11`,(1 ^ 1) AS `1 ^ 1`,(1 ^ 0) AS `1 ^ 0`,(1 ^ NULL) AS `1 ^ NULL`,(NULL ^ 1) AS `NULL ^ 1`
52
select 1 XOR 1, 1 XOR 0, 0 XOR 1, 0 XOR 0, NULL XOR 1, 1 XOR NULL, 0 XOR NULL;
53
1 XOR 1	1 XOR 0	0 XOR 1	0 XOR 0	NULL XOR 1	1 XOR NULL	0 XOR NULL
54
0	1	1	0	NULL	NULL	NULL
55
select 1 like 2 xor 2 like 1;
56
1 like 2 xor 2 like 1
57
0
58
select 10 % 7, 10 mod 7, 10 div 3;
59
10 % 7	10 mod 7	10 div 3
60
3	3	3
61
explain extended select 10 % 7, 10 mod 7, 10 div 3;
62
id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
63
1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
64
Warnings:
65
Note	1003	select (10 % 7) AS `10 % 7`,(10 % 7) AS `10 mod 7`,(10 DIV 3) AS `10 div 3`
66
select (1 << 64)-1, ((1 << 64)-1) DIV 1, ((1 << 64)-1) DIV 2;
67
(1 << 64)-1	((1 << 64)-1) DIV 1	((1 << 64)-1) DIV 2
68
18446744073709551615	18446744073709551615	9223372036854775807
69
explain extended select (1 << 64)-1, ((1 << 64)-1) DIV 1, ((1 << 64)-1) DIV 2;
70
id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
71
1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
72
Warnings:
73
Note	1003	select ((1 << 64) - 1) AS `(1 << 64)-1`,(((1 << 64) - 1) DIV 1) AS `((1 << 64)-1) DIV 1`,(((1 << 64) - 1) DIV 2) AS `((1 << 64)-1) DIV 2`
74
create table t1 (a int);
75
insert t1 values (1);
76
select * from t1 where 1 xor 1;
77
a
78
explain extended select * from t1 where 1 xor 1;
79
id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
80
1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	Impossible WHERE
81
Warnings:
82
Note	1003	select `test`.`t1`.`a` AS `a` from `test`.`t1` where 0
83
select - a from t1;
84
- a
85
-1
86
explain extended select - a from t1;
87
id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
88
1	SIMPLE	t1	system	NULL	NULL	NULL	NULL	1	100.00	
89
Warnings:
90
Note	1003	select -('1') AS `- a` from `test`.`t1`
91
drop table t1;
92
select 5 between 0 and 10 between 0 and 1,(5 between 0 and 10) between 0 and 1;
93
5 between 0 and 10 between 0 and 1	(5 between 0 and 10) between 0 and 1
94
0	1
95
select 1 and 2 between 2 and 10, 2 between 2 and 10 and 1;
96
1 and 2 between 2 and 10	2 between 2 and 10 and 1
97
1	1
98
select 1 and 0 or 2, 2 or 1 and 0;
99
1 and 0 or 2	2 or 1 and 0
100
1	1
101
select _koi8r'a' = _koi8r'A';
102
_koi8r'a' = _koi8r'A'
103
1
104
select _koi8r'a' = _koi8r'A' COLLATE koi8r_general_ci;
105
_koi8r'a' = _koi8r'A' COLLATE koi8r_general_ci
106
1
107
explain extended select _koi8r'a' = _koi8r'A' COLLATE koi8r_general_ci;
108
id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
109
1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
110
Warnings:
111
Note	1003	select (_koi8r'a' = (_koi8r'A' collate koi8r_general_ci)) AS `_koi8r'a' = _koi8r'A' COLLATE koi8r_general_ci`
112
select _koi8r'a' = _koi8r'A' COLLATE koi8r_bin;
113
_koi8r'a' = _koi8r'A' COLLATE koi8r_bin
114
0
115
select _koi8r'a' COLLATE koi8r_general_ci = _koi8r'A';
116
_koi8r'a' COLLATE koi8r_general_ci = _koi8r'A'
117
1
118
select _koi8r'a' COLLATE koi8r_bin = _koi8r'A';
119
_koi8r'a' COLLATE koi8r_bin = _koi8r'A'
120
0
121
select _koi8r'a' COLLATE koi8r_bin = _koi8r'A' COLLATE koi8r_general_ci;
122
ERROR HY000: Illegal mix of collations (koi8r_bin,EXPLICIT) and (koi8r_general_ci,EXPLICIT) for operation '='
123
select _koi8r'a' = _latin1'A';
124
ERROR HY000: Illegal mix of collations (koi8r_general_ci,COERCIBLE) and (latin1_swedish_ci,COERCIBLE) for operation '='
125
select strcmp(_koi8r'a', _koi8r'A');
126
strcmp(_koi8r'a', _koi8r'A')
127
0
128
select strcmp(_koi8r'a', _koi8r'A' COLLATE koi8r_general_ci);
129
strcmp(_koi8r'a', _koi8r'A' COLLATE koi8r_general_ci)
130
0
131
select strcmp(_koi8r'a', _koi8r'A' COLLATE koi8r_bin);
132
strcmp(_koi8r'a', _koi8r'A' COLLATE koi8r_bin)
133
1
134
select strcmp(_koi8r'a' COLLATE koi8r_general_ci, _koi8r'A');
135
strcmp(_koi8r'a' COLLATE koi8r_general_ci, _koi8r'A')
136
0
137
select strcmp(_koi8r'a' COLLATE koi8r_bin, _koi8r'A');
138
strcmp(_koi8r'a' COLLATE koi8r_bin, _koi8r'A')
139
1
140
select strcmp(_koi8r'a' COLLATE koi8r_general_ci, _koi8r'A' COLLATE koi8r_bin);
141
ERROR HY000: Illegal mix of collations (koi8r_general_ci,EXPLICIT) and (koi8r_bin,EXPLICIT) for operation 'strcmp'
142
select strcmp(_koi8r'a', _latin1'A');
143
ERROR HY000: Illegal mix of collations (koi8r_general_ci,COERCIBLE) and (latin1_swedish_ci,COERCIBLE) for operation 'strcmp'
144
select _koi8r'a' LIKE _koi8r'A';
145
_koi8r'a' LIKE _koi8r'A'
146
1
147
select _koi8r'a' LIKE _koi8r'A' COLLATE koi8r_general_ci;
148
_koi8r'a' LIKE _koi8r'A' COLLATE koi8r_general_ci
149
1
150
select _koi8r'a' LIKE _koi8r'A' COLLATE koi8r_bin;
151
_koi8r'a' LIKE _koi8r'A' COLLATE koi8r_bin
152
0
153
select _koi8r'a' COLLATE koi8r_general_ci LIKE _koi8r'A';
154
_koi8r'a' COLLATE koi8r_general_ci LIKE _koi8r'A'
155
1
156
select _koi8r'a' COLLATE koi8r_bin LIKE _koi8r'A';
157
_koi8r'a' COLLATE koi8r_bin LIKE _koi8r'A'
158
0
159
select _koi8r'a' COLLATE koi8r_general_ci LIKE _koi8r'A' COLLATE koi8r_bin;
160
ERROR HY000: Illegal mix of collations (koi8r_general_ci,EXPLICIT) and (koi8r_bin,EXPLICIT) for operation 'like'
161
select _koi8r'a' LIKE _latin1'A';
162
ERROR HY000: Illegal mix of collations (koi8r_general_ci,COERCIBLE) and (latin1_swedish_ci,COERCIBLE) for operation 'like'
163
CREATE TABLE t1 (   faq_group_id int(11) NOT NULL default '0',   faq_id int(11) NOT NULL default '0',   title varchar(240) default NULL,   keywords text,   description longblob,   solution longblob,   status tinyint(4) NOT NULL default '0',   access_id smallint(6) default NULL,   lang_id smallint(6) NOT NULL default '0',   created datetime NOT NULL default '0000-00-00 00:00:00',   updated datetime default NULL,   last_access datetime default NULL,   last_notify datetime default NULL,   solved_count int(11) NOT NULL default '0',   static_solved int(11) default NULL,   solved_1 int(11) default NULL,   solved_2 int(11) default NULL,   solved_3 int(11) default NULL,   solved_4 int(11) default NULL,   solved_5 int(11) default NULL,   expires datetime default NULL,   notes text,   assigned_to smallint(6) default NULL,   assigned_group smallint(6) default NULL,   last_edited_by smallint(6) default NULL,   orig_ref_no varchar(15) binary default NULL,   c$fundstate smallint(6) default NULL,   c$contributor smallint(6) default NULL,   UNIQUE KEY t1$faq_id (faq_id),   KEY t1$group_id$faq_id (faq_group_id,faq_id),   KEY t1$c$fundstate (c$fundstate) ) ENGINE=MyISAM;
164
INSERT INTO t1 VALUES (82,82,'How to use the DynaVox Usage Counts Feature','usages count, number, corner, white, box, button','<as-html>\r\n<table width=\"100%\" border=\"0\">\r\n  <tr>\r\n    <td width=\"3%\"> </td>\r\n    <td width=\"97%\">\r\n       <h3><font face=\"Verdana, Arial, Helvetica, sans-serif\" color=\"#000000\">How \r\n        To</font><!-- #BeginEditable \"CS_troubleshoot_question\" --><font face=\"Verdana, Arial, Helvetica, sans-serif\" color=\"#000099\"><font color=\"#000000\">: \r\n        Display or Hide the Usage Counts to find out how many times each button is being selected. </font></font><!-- #EndEditable --></h3>\r\n    </td>\r\n  </tr>\r\n</table>','<as-html>\r\n <table width=\"100%\" border=\"0\">\r\n  <tr>\r\n    <td width=\"3%\"> </td>\r\n    \r\n<td width=\"97%\"><!-- #BeginEditable \"CS_troubleshoot_answer\" --> \r\n      \r\n<p><font color=\"#000000\" face=\"Verdana, Arial, Helvetica, sans-serif\">1. Select \r\n  the <i>On/Setup</i> button to access the DynaVox Setup Menu.<br>\r\n  2. Select <b>Button Features.</b><br>\r\n  3. Below the <b>OK</b> button is the <b>Usage Counts</b> button.<br>\r\n  a. If it says \"Hidden\" then the Usage Counts will not be displayed.<br>\r\n  b. If it says \"Displayed\" then the Usage Counts will be shown.<br>\r\n        c. Select the <b>Usage Counts</b> Option Ring once and it will toggle \r\n        to the alternative option.<br>\r\n  4. Once the correct setting has been chosen, select <b>OK</b> to leave the <i>Button \r\n  Features</i> menu.<br>\r\n  5. Select <b>OK</b> out of the <i>Setup</i> menu and return to the communication \r\n  page.</font></p>\r\n      <p><font color=\"#000000\" face=\"Verdana, Arial, Helvetica, sans-serif\">For \r\n        further information on <i>Usage Counts,</i> see the <i>Button Features \r\n        Menu Entry</i> in the DynaVox/DynaMyte Reference Manual.</font></p>\r\n<!-- #EndEditable --></td>\r\n  </tr>\r\n</table>',4,1,1,'2001-11-16 16:43:34','2002-11-25 12:09:43','2003-07-24 01:04:48',NULL,11,NULL,0,0,0,0,0,NULL,NULL,NULL,NULL,11,NULL,NULL,NULL);
165
CREATE TABLE t2 (  access_id smallint(6) NOT NULL default '0',   name varchar(20) binary default NULL,   rank smallint(6) NOT NULL default '0',   KEY t2$access_id (access_id) ) ENGINE=MyISAM;
166
INSERT INTO t2 VALUES (1,'Everyone',2),(2,'Help',3),(3,'Customer Support',1);
167
SELECT f_acc.rank, a1.rank, a2.rank  FROM t1 LEFT JOIN t1 f1 ON  (f1.access_id=1 AND f1.faq_group_id = t1.faq_group_id) LEFT JOIN t2 a1 ON (a1.access_id =  f1.access_id) LEFT JOIN t1 f2 ON (f2.access_id=3 AND  f2.faq_group_id = t1.faq_group_id) LEFT  JOIN t2 a2 ON (a2.access_id = f2.access_id), t2 f_acc WHERE LEAST(a1.rank,a2.rank) =  f_acc.rank;
168
rank	rank	rank
169
DROP TABLE t1,t2;
170
CREATE TABLE t1 (d varchar(6), k int);
171
INSERT INTO t1 VALUES (NULL, 2);
172
SELECT GREATEST(d,d) FROM t1 WHERE k=2;
173
GREATEST(d,d)
174
NULL
175
DROP TABLE t1;
176
select 1197.90 mod 50;
177
1197.90 mod 50
178
47.90
179
select 5.1 mod 3, 5.1 mod -3, -5.1 mod 3, -5.1 mod -3;
180
5.1 mod 3	5.1 mod -3	-5.1 mod 3	-5.1 mod -3
181
2.1	2.1	-2.1	-2.1
182
select 5 mod 3, 5 mod -3, -5 mod 3, -5 mod -3;
183
5 mod 3	5 mod -3	-5 mod 3	-5 mod -3
184
2	2	-2	-2
185
select (12%0) <=> null      as '1';
186
1
187
1
188
select (12%0) is null       as '1';
189
1
190
1
191
select 12%0                 as 'NULL';
192
NULL
193
NULL
194
select 12%2                 as '0';
195
0
196
0
197
select 12%NULL              as 'NULL';
198
NULL
199
NULL
200
select 12 % null            as 'NULL';
201
NULL
202
NULL
203
select null % 12            as 'NULL';
204
NULL
205
NULL
206
select null % 0             as 'NULL';
207
NULL
208
NULL
209
select 0 % null             as 'NULL';
210
NULL
211
NULL
212
select null % null          as 'NULL';
213
NULL
214
NULL
215
select (12 mod 0) <=> null  as '1';
216
1
217
1
218
select (12 mod 0) is null   as '1';
219
1
220
1
221
select 12 mod 0             as 'NULL';
222
NULL
223
NULL
224
select 12 mod 2             as '0';
225
0
226
0
227
select 12 mod null          as 'NULL';
228
NULL
229
NULL
230
select null mod 12          as 'NULL';
231
NULL
232
NULL
233
select null mod 0           as 'NULL';
234
NULL
235
NULL
236
select 0 mod null           as 'NULL';
237
NULL
238
NULL
239
select null mod null        as 'NULL';
240
NULL
241
NULL
242
select mod(12.0, 0)         as 'NULL';
243
NULL
244
NULL
245
select mod(12, 0.0)         as 'NULL';
246
NULL
247
NULL
248
select mod(12, NULL)        as 'NULL';
249
NULL
250
NULL
251
select mod(12.0, NULL)      as 'NULL';
252
NULL
253
NULL
254
select mod(NULL, 2)         as 'NULL';
255
NULL
256
NULL
257
select mod(NULL, 2.0)       as 'NULL';
258
NULL
259
NULL
260
create table t1 (a int, b int);
261
insert into t1 values (1,2), (2,3), (3,4), (4,5);
262
select * from t1 where a not between 1 and 2;
263
a	b
264
3	4
265
4	5
266
select * from t1 where a not between 1 and 2 and b not between 3 and 4;
267
a	b
268
4	5
269
drop table t1;
270
SELECT GREATEST(1,NULL) FROM DUAL;
271
GREATEST(1,NULL)
272
NULL
273
SELECT LEAST('xxx','aaa',NULL,'yyy') FROM DUAL;
274
LEAST('xxx','aaa',NULL,'yyy')
275
NULL
276
SELECT LEAST(1.1,1.2,NULL,1.0) FROM DUAL;
277
LEAST(1.1,1.2,NULL,1.0)
278
NULL
279
SELECT GREATEST(1.5E+2,1.3E+2,NULL) FROM DUAL;
280
GREATEST(1.5E+2,1.3E+2,NULL)
281
NULL