~drizzle-trunk/drizzle/development

1 by brian
clean slate
1
#
2
# Initialize
3
4
--disable_warnings
5
drop table if exists t1, t2;
6
--enable_warnings
7
8
#
9
# Test of reading of bigint values
10
#
11
select 0,256,00000000000000065536,2147483647,-2147483648,2147483648,+4294967296;
12
select 9223372036854775807,-009223372036854775808;
13
select +9999999999999999999,-9999999999999999999;
520.1.8 by Brian Aker
Updating tests.
14
select 9223372036854775808 +1;
1 by brian
clean slate
15
select 9223372036854775808+1;
16
select -(0-3),round(-(0-3)), round(9999999999999999999);
17
select 1,11,101,1001,10001,100001,1000001,10000001,100000001,1000000001,10000000001,100000000001,1000000000001,10000000000001,100000000000001,1000000000000001,10000000000000001,100000000000000001,1000000000000000001,10000000000000000001;
18
select -1,-11,-101,-1001,-10001,-100001,-1000001,-10000001,-100000001,-1000000001,-10000000001,-100000000001,-1000000000001,-10000000000001,-100000000000001,-1000000000000001,-10000000000000001,-100000000000000001,-1000000000000000001,-10000000000000000001;
19
20
#
21
# In 3.23 we have to disable the test of column to bigint as
22
# this fails on AIX powerpc (the resolution for double is not good enough)
23
# This will work on 4.0 as we then have internal handling of bigint variables.
24
#
25
2008.2.4 by Brian Aker
Merge in additional fixes for sign, plus alter table, plus TIME on
26
create table t1 (a bigint unsigned not null, primary key(a));
520.1.8 by Brian Aker
Updating tests.
27
insert into t1 values (9223372036854775808);
28
insert into t1 values (0x7000000000000000);
1 by brian
clean slate
29
select * from t1;
30
select * from t1 where a=18446744073709551615;
31
# select * from t1 where a='18446744073709551615';
32
delete from t1 where a=18446744073709551615;
33
select * from t1;
34
drop table t1;
35
2008.2.4 by Brian Aker
Merge in additional fixes for sign, plus alter table, plus TIME on
36
create table t1 ( a int not null default 1, big bigint unsigned);
37
--error ER_WARN_DATA_OUT_OF_RANGE
520.1.8 by Brian Aker
Updating tests.
38
insert into t1 (big) values (-1),(9223372036854775808),(9223372036854775807),(9223372036854775808);
2008.2.4 by Brian Aker
Merge in additional fixes for sign, plus alter table, plus TIME on
39
--error ER_WARN_DATA_OUT_OF_RANGE
40
insert into t1 (big) values (-1);
41
insert into t1 (big) values (9223372036854775808),(9223372036854775807),(9223372036854775808);
1 by brian
clean slate
42
select * from t1;
43
select min(big),max(big),max(big)-1 from t1;
44
select min(big),max(big),max(big)-1 from t1 group by a;
413.2.2 by Brian Aker
Removed UNSIGNED from parser.
45
alter table t1 modify big bigint not null;
1 by brian
clean slate
46
select min(big),max(big),max(big)-1 from t1;
47
select min(big),max(big),max(big)-1 from t1 group by a;
2008.2.4 by Brian Aker
Merge in additional fixes for sign, plus alter table, plus TIME on
48
--error ER_WARN_DATA_OUT_OF_RANGE
520.1.8 by Brian Aker
Updating tests.
49
insert into t1 (big) values (9223372036854775808);
1 by brian
clean slate
50
select * from t1;
51
select min(big),max(big),max(big)-1 from t1;
52
select min(big),max(big),max(big)-1 from t1 group by a;
53
alter table t1 add key (big);
54
select min(big),max(big),max(big)-1 from t1;
55
select min(big),max(big),max(big)-1 from t1 group by a;
56
alter table t1 modify big bigint not null;
57
select * from t1;
58
select min(big),max(big),max(big)-1 from t1;
59
select min(big),max(big),max(big)-1 from t1 group by a;
60
drop table t1;
61
62
#
63
# Test problem with big values for auto_increment
64
#
65
66
create table t1 (id bigint auto_increment primary key, a int) auto_increment=9999999999;
67
insert into t1 values (null,1);
68
select * from t1;
69
select * from t1 limit 9999999999;
70
drop table t1;
71
72
#
73
# Item_uint::save_to_field()
74
# BUG#1845
75
# This can't be fixed in MySQL 4.0 without loosing precisions for bigints
76
#
77
78
CREATE TABLE t1 ( quantity decimal(60,0));
79
insert into t1 values (10000000000000000000);
80
insert into t1 values (10000000000000000000.0);
81
insert into t1 values ('10000000000000000000');
82
select * from t1;
83
drop table t1;
84
85
# atof() behaviour is different of different systems. to be fixed in 4.1
86
SELECT '0x8000000000000001'+0;
87
413.2.2 by Brian Aker
Removed UNSIGNED from parser.
88
# Test for BUG#8562: joins over BIGINT value + constant propagation
1 by brian
clean slate
89
create table t1 (
2008.2.4 by Brian Aker
Merge in additional fixes for sign, plus alter table, plus TIME on
90
 value64  bigint  unsigned not null,
1 by brian
clean slate
91
 value32  integer          not null,
92
 primary key(value64, value32)
93
);
94
95
create table t2 (
2008.2.4 by Brian Aker
Merge in additional fixes for sign, plus alter table, plus TIME on
96
 value64  bigint unsigned not null,
1 by brian
clean slate
97
 value32  integer          not null,
98
 primary key(value64, value32)
99
);
100
101
insert into t1 values(17156792991891826145, 1);
102
insert into t1 values( 9223372036854775807, 2);
103
insert into t2 values(17156792991891826145, 3);
104
insert into t2 values( 9223372036854775807, 4);
105
2008.2.4 by Brian Aker
Merge in additional fixes for sign, plus alter table, plus TIME on
106
select * from t1 ORDER BY value32;
107
select * from t2 ORDER BY value32;
108
109
--sorted_result
110
select * from t1, t2 where t1.value64=17156792991891826145 and t2.value64=17156792991891826145;
111
--sorted_result
112
select * from t1, t2 where t1.value64=17156792991891826145 and t2.value64=t1.value64;
113
114
--sorted_result
115
select * from t1, t2 where t1.value64= 9223372036854775807 and t2.value64=9223372036854775807;
116
--sorted_result
117
select * from t1, t2 where t1.value64= 9223372036854775807 and t2.value64=t1.value64;
1 by brian
clean slate
118
119
drop table t1, t2;
120
121
# Test for BUG#30069, can't handle bigint -9223372036854775808 on
122
# x86_64, with some GCC versions and optimizations.
123
124
create table t1 (sint64 bigint not null);
125
insert into t1 values (-9223372036854775808);
126
select * from t1;
127
128
drop table t1;
129
130
# End of 4.1 tests
131
132
#
413.2.2 by Brian Aker
Removed UNSIGNED from parser.
133
# Test of CREATE ... SELECT and integers
1 by brian
clean slate
134
#
135
136
create table t1 select 1 as 'a';
1441 by Brian Aker
Fixing tests to work with PBXT.
137
--replace_regex /ENGINE=[a-zA-Z]+/ENGINE=DEFAULT/
1 by brian
clean slate
138
show create table t1;
139
drop table t1;
2008.2.4 by Brian Aker
Merge in additional fixes for sign, plus alter table, plus TIME on
140
1 by brian
clean slate
141
create table t1 select 9223372036854775809 as 'a';
1441 by Brian Aker
Fixing tests to work with PBXT.
142
--replace_regex /ENGINE=[a-zA-Z]+/ENGINE=DEFAULT/
1 by brian
clean slate
143
show create table t1;
2008.2.4 by Brian Aker
Merge in additional fixes for sign, plus alter table, plus TIME on
144
drop table t1;
145
146
create table t1 select 72036854775809 as 'a';
147
--replace_regex /ENGINE=[a-zA-Z]+/ENGINE=DEFAULT/
148
show create table t1;
1 by brian
clean slate
149
select * from t1;
150
drop table t1;
2008.2.4 by Brian Aker
Merge in additional fixes for sign, plus alter table, plus TIME on
151
1 by brian
clean slate
152
DROP DATABASE IF EXISTS `scott`;
153
154
155
#
413.2.2 by Brian Aker
Removed UNSIGNED from parser.
156
# Check various conversions from/to bigint.
1 by brian
clean slate
157
#
158
159
create table t1 (a char(100), b varchar(100), c text, d blob);
160
insert into t1 values(
161
  18446744073709551615,18446744073709551615,
162
  18446744073709551615, 18446744073709551615
163
);
164
520.1.8 by Brian Aker
Updating tests.
165
insert into t1 values (-1,-1,-1,-1);
2008.2.4 by Brian Aker
Merge in additional fixes for sign, plus alter table, plus TIME on
166
--sorted_result
1 by brian
clean slate
167
select * from t1;
168
drop table t1;
169
413.2.2 by Brian Aker
Removed UNSIGNED from parser.
170
create table t1 ( quantity decimal(2));
520.1.8 by Brian Aker
Updating tests.
171
insert into t1 values (50), (-50), (0), (-1);
2008.2.4 by Brian Aker
Merge in additional fixes for sign, plus alter table, plus TIME on
172
--sorted_result
1 by brian
clean slate
173
select * from t1;
174
drop table t1;
175
176
#
177
# Test of storing decimal values in BIGINT range
178
# (Bug #12750: Incorrect storage of 9999999999999999999 in DECIMAL(19, 0))
179
#
180
181
CREATE TABLE t1 (
520.1.8 by Brian Aker
Updating tests.
182
  `col1` INT NULL,
183
  `col2` INT NULL,
184
  `col3` INT NULL,
185
  `col4` INT NULL,
186
  `col5` INT NULL,
187
  `col6` INT NULL,
188
  `col7` INT NULL,
189
  `col8` INT NULL,
190
  `col9` INT NULL,
191
  `col10` BIGINT NULL,
192
  `col11` BIGINT NULL,
193
  `col12` BIGINT NULL,
194
  `col13` BIGINT NULL,
195
  `col14` BIGINT NULL,
196
  `col15` BIGINT NULL,
197
  `col16` BIGINT NULL,
198
  `col17` BIGINT NULL,
199
  `col18` BIGINT NULL,
1 by brian
clean slate
200
  `col19` DECIMAL(19, 0) NULL,
201
  `col20` DECIMAL(20, 0) NULL,
202
  `col21` DECIMAL(21, 0) NULL,
203
  `col22` DECIMAL(22, 0) NULL,
204
  `col23` DECIMAL(23, 0) NULL,
205
  `col24` DECIMAL(24, 0) NULL,
206
  `col25` DECIMAL(25, 0) NULL,
207
  `col26` DECIMAL(26, 0) NULL,
208
  `col27` DECIMAL(27, 0) NULL,
209
  `col28` DECIMAL(28, 0) NULL,
210
  `col29` DECIMAL(29, 0) NULL,
211
  `col30` DECIMAL(30, 0) NULL,
212
  `col31` DECIMAL(31, 0) NULL,
213
  `col32` DECIMAL(32, 0) NULL,
214
  `col33` DECIMAL(33, 0) NULL,
215
  `col34` DECIMAL(34, 0) NULL,
216
  `col35` DECIMAL(35, 0) NULL,
217
  `col36` DECIMAL(36, 0) NULL,
218
  `col37` DECIMAL(37, 0) NULL,
219
  `col38` DECIMAL(38, 0) NULL,
220
  `fix1` DECIMAL(38, 1) NULL,
221
  `fix2` DECIMAL(38, 2) NULL,
222
  `fix3` DECIMAL(38, 3) NULL,
223
  `fix4` DECIMAL(38, 4) NULL,
224
  `fix5` DECIMAL(38, 5) NULL,
225
  `fix6` DECIMAL(38, 6) NULL,
226
  `fix7` DECIMAL(38, 7) NULL,
227
  `fix8` DECIMAL(38, 8) NULL,
228
  `fix9` DECIMAL(38, 9) NULL,
229
  `fix10` DECIMAL(38, 10) NULL,
230
  `fix11` DECIMAL(38, 11) NULL,
231
  `fix12` DECIMAL(38, 12) NULL,
232
  `fix13` DECIMAL(38, 13) NULL,
233
  `fix14` DECIMAL(38, 14) NULL,
234
  `fix15` DECIMAL(38, 15) NULL,
235
  `fix16` DECIMAL(38, 16) NULL,
236
  `fix17` DECIMAL(38, 17) NULL,
237
  `fix18` DECIMAL(38, 18) NULL,
238
  `fix19` DECIMAL(38, 19) NULL,
239
  `fix20` DECIMAL(38, 20) NULL,
240
  `fix21` DECIMAL(38, 21) NULL,
241
  `fix22` DECIMAL(38, 22) NULL,
242
  `fix23` DECIMAL(38, 23) NULL,
243
  `fix24` DECIMAL(38, 24) NULL,
244
  `fix25` DECIMAL(38, 25) NULL,
245
  `fix26` DECIMAL(38, 26) NULL,
246
  `fix27` DECIMAL(38, 27) NULL,
247
  `fix28` DECIMAL(38, 28) NULL,
248
  `fix29` DECIMAL(38, 29) NULL,
249
  `fix30` DECIMAL(38, 30) NULL
250
);
251
252
INSERT INTO t1(`col1`, `col2`, `col3`, `col4`, `col5`, `col6`, `col7`, `col8`, `col9`, `col10`, `col11`, `col12`, `col13`, `col14`, `col15`, `col16`, `col17`, `col18`, `col19`, `col20`, `col21`, `col22`, `col23`, `col24`, `col25`, `col26`, `col27`, `col28`, `col29`, `col30`, `col31`, `col32`, `col33`, `col34`, `col35`, `col36`, `col37`, `col38`, `fix1`, `fix2`, `fix3`, `fix4`, `fix5`, `fix6`, `fix7`, `fix8`, `fix9`, `fix10`, `fix11`, `fix12`, `fix13`, `fix14`, `fix15`, `fix16`, `fix17`, `fix18`, `fix19`, `fix20`, `fix21`, `fix22`, `fix23`, `fix24`, `fix25`, `fix26`, `fix27`, `fix28`, `fix29`, `fix30`)
253
VALUES (9, 99, 999, 9999, 99999, 999999, 9999999, 99999999, 999999999,
254
9999999999, 99999999999, 999999999999, 9999999999999, 99999999999999,
255
999999999999999, 9999999999999999, 99999999999999999, 999999999999999999,
256
9999999999999999999, 99999999999999999999, 999999999999999999999,
257
9999999999999999999999, 99999999999999999999999, 999999999999999999999999,
258
9999999999999999999999999, 99999999999999999999999999,
259
999999999999999999999999999, 9999999999999999999999999999,
260
99999999999999999999999999999, 999999999999999999999999999999,
261
9999999999999999999999999999999, 99999999999999999999999999999999,
262
999999999999999999999999999999999, 9999999999999999999999999999999999,
263
99999999999999999999999999999999999, 999999999999999999999999999999999999,
264
9999999999999999999999999999999999999, 99999999999999999999999999999999999999,
265
9999999999999999999999999999999999999.9,
266
999999999999999999999999999999999999.99,
267
99999999999999999999999999999999999.999,
268
9999999999999999999999999999999999.9999,
269
999999999999999999999999999999999.99999,
270
99999999999999999999999999999999.999999,
271
9999999999999999999999999999999.9999999,
272
999999999999999999999999999999.99999999,
273
99999999999999999999999999999.999999999,
274
9999999999999999999999999999.9999999999,
275
999999999999999999999999999.99999999999,
276
99999999999999999999999999.999999999999,
277
9999999999999999999999999.9999999999999,
278
999999999999999999999999.99999999999999,
279
99999999999999999999999.999999999999999,
280
9999999999999999999999.9999999999999999,
281
999999999999999999999.99999999999999999,
282
99999999999999999999.999999999999999999,
283
9999999999999999999.9999999999999999999,
284
999999999999999999.99999999999999999999,
285
99999999999999999.999999999999999999999,
286
9999999999999999.9999999999999999999999,
287
999999999999999.99999999999999999999999,
288
99999999999999.999999999999999999999999,
289
9999999999999.9999999999999999999999999,
290
999999999999.99999999999999999999999999,
291
99999999999.999999999999999999999999999,
292
9999999999.9999999999999999999999999999,
293
999999999.99999999999999999999999999999,
294
99999999.999999999999999999999999999999);
295
2008.2.4 by Brian Aker
Merge in additional fixes for sign, plus alter table, plus TIME on
296
--sorted_result
1 by brian
clean slate
297
SELECT * FROM t1;
298
DROP TABLE t1;
299
300
#bug #9088 BIGINT WHERE CLAUSE
2008.2.4 by Brian Aker
Merge in additional fixes for sign, plus alter table, plus TIME on
301
create table t1 (bigint_col bigint unsigned);
1 by brian
clean slate
302
insert into t1 values (17666000000000000000);
303
select * from t1 where bigint_col=17666000000000000000;
304
select * from t1 where bigint_col='17666000000000000000';
305
drop table t1;
306
307
--echo
308
--echo bug 19955 -- mod is signed with bigint
309
520.1.8 by Brian Aker
Updating tests.
310
select 10000002383263201056 mod 50 as result;
1 by brian
clean slate
311
2008.2.4 by Brian Aker
Merge in additional fixes for sign, plus alter table, plus TIME on
312
create table t1 (c1 bigint unsigned);
1 by brian
clean slate
313
insert into t1 values (10000002383263201056);
314
select c1 mod 50 as result from t1;
315
drop table t1;
316
317
#
318
# Bug #28625: -9223372036854775808 doesn't fit in BIGINT.
319
#
320
321
# PS protocol gives different metadata for `Max length' column
322
--disable_ps_protocol
323
--enable_metadata
324
select -9223372036854775808;
325
select -(9223372036854775808);
326
select -((9223372036854775808));
327
select -(-(9223372036854775808));
328
--disable_metadata
329
--enable_ps_protocol
330
select --9223372036854775808, ---9223372036854775808, ----9223372036854775808;
331
select -(-9223372036854775808), -(-(-9223372036854775808));
332
333
# Bug #28005 Partitions: can't use -9223372036854775808 
334
create table t1 select -9223372036854775808 bi;
335
describe t1;
336
drop table t1;
337
create table t1 select -9223372036854775809 bi;
338
describe t1;
339
drop table t1;