45
45
# Test bug with update reported by Jan Legenhausen
48
CREATE TEMPORARY TABLE t1 (
49
49
lfdnr int NOT NULL default '0',
50
50
ticket int NOT NULL default '0',
51
51
client varchar(255) NOT NULL default '',
102
102
# Test with limit (Bug #393)
105
CREATE TEMPORARY TABLE t1 (
106
106
`id_param` int NOT NULL default '0',
107
107
`nom_option` char(40) NOT NULL default '',
108
108
`valid` int NOT NULL default '0',
119
# Multi table update test from bugs
122
create table t1 (F1 VARCHAR(30), F2 VARCHAR(30), F3 VARCHAR(30), cnt int, groupid int, KEY groupid_index (groupid));
124
insert into t1 (F1,F2,F3,cnt,groupid) values ('0','0','0',1,6),
125
('0','1','2',1,5), ('0','2','0',1,3), ('1','0','1',1,2),
126
('1','2','1',1,1), ('1','2','2',1,1), ('2','0','1',2,4),
128
delete from m1 using t1 m1,t1 m2 where m1.groupid=m2.groupid and (m1.cnt < m2.cnt or m1.cnt=m2.cnt and m1.F3>m2.F3);
135
create table t1 (c1 int, c2 char(6), c3 int);
136
create table t2 (c1 int, c2 char(6));
137
insert into t1 values (1, "t1c2-1", 10), (2, "t1c2-2", 20);
138
update t1 left join t2 on t1.c1 = t2.c1 set t2.c2 = "t2c2-1";
139
update t1 left join t2 on t1.c1 = t2.c1 set t2.c2 = "t2c2-1" where t1.c3 = 10;
121
145
create table t1 (id int not null auto_increment primary key, id_str varchar(32));
134
158
select * from t1;
161
# BUG#9103 "Erroneous data truncation warnings on multi-table updates"
162
create table t1 (a int, b varchar(10), key b(b(5))) engine=myisam;
163
create table t2 (a int, b varchar(10)) engine=myisam;
164
insert into t1 values ( 1, 'abcd1e');
165
insert into t1 values ( 2, 'abcd2e');
166
insert into t2 values ( 1, 'abcd1e');
167
insert into t2 values ( 2, 'abcd2e');
169
update t1, t2 set t1.a = t2.a where t2.b = t1.b;
138
174
# Bug #11868 Update with subquery with ref built with a key from the updated
139
175
# table crashes server
167
203
select a from t1 order by a limit 1;
169
204
show status like 'handler_read%';
172
207
update t1 set a=9999 order by a limit 1;
173
208
update t1 set b=9999 order by a limit 1;
175
209
show status like 'handler_read%';
178
212
delete from t1 order by a limit 1;
180
213
show status like 'handler_read%';
183
216
delete from t1 order by a desc limit 1;
185
217
show status like 'handler_read%';
187
219
alter table t1 disable keys;
190
222
delete from t1 order by a limit 1;
192
223
show status like 'handler_read%';
194
225
# PBXT: this select returns a different result to
205
236
# Bug#14186 select datefield is null not updated
207
create table t1 (f1 date NULL);
208
insert into t1 values('2000-01-01'),(NULL);
238
create table t1 (f1 date not null);
239
insert into t1 values('2000-01-01'),('0000-00-00');
209
240
update t1 set f1='2002-02-02' where f1 is null;
210
241
select * from t1;
245
# Bug#15028 Multitable update returns different numbers of matched rows
246
# depending on table order
247
create table t1 (f1 int);
248
create table t2 (f2 int);
249
insert into t1 values(1),(2);
250
insert into t2 values(1),(1);
252
update t1,t2 set f1=3,f2=3 where f1=f2 and f1=1;
255
update t1 set f1=1 where f1=3;
257
update t2,t1 set f1=3,f2=3 where f1=f2 and f1=1;
214
263
create table t1 (a int);
215
264
insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
217
266
insert into t2 select A.a + 10*B.a, 'filler','filler' from t1 A, t1 B;
219
268
update t2 set a=3 where a=2;
221
269
show status like 'handler_read%';
222
270
drop table t1, t2;
245
293
CREATE TABLE t1 (
246
294
request_id int NOT NULL auto_increment,
247
295
user_id varchar(12) default NULL,
296
time_stamp datetime NOT NULL default '0000-00-00 00:00:00',
249
297
ip_address varchar(15) default NULL,
250
298
PRIMARY KEY (request_id),
251
299
KEY user_id_2 (user_id,time_stamp)
265
313
SELECT user_id FROM t1 WHERE request_id=9999999999999;
267
314
show status like '%Handler_read%';
268
315
SELECT user_id FROM t1 WHERE request_id=999999999999999999999999999999;
270
316
show status like '%Handler_read%';
271
317
UPDATE t1 SET user_id=null WHERE request_id=9999999999999;
273
318
show status like '%Handler_read%';
274
319
UPDATE t1 SET user_id=null WHERE request_id=999999999999999999999999999999;
276
320
show status like '%Handler_read%';
328
372
# Check that the number of matched rows is correct when the temporary
329
373
# table is small enough to not be converted to MyISAM
330
374
select count(*) from t1 join t2 on (t1.a=t2.a);
376
update t1 join t2 on (t1.a=t2.a) set t1.id=t2.id;
332
379
# Increase table sizes
333
380
insert into t2(a) select a from t2;
338
385
# Check that the number of matched rows is correct when the temporary
339
386
# table has to be converted to MyISAM
340
387
select count(*) from t1 join t2 on (t1.a=t2.a);
389
update t1 join t2 on (t1.a=t2.a) set t1.id=t2.id;
342
392
# Check that the number of matched rows is correct when there are duplicate
344
394
update t1 set a=1;
345
395
update t2 set a=1;
346
396
select count(*) from t1 join t2 on (t1.a=t2.a);
398
update t1 join t2 on (t1.a=t2.a) set t1.id=t2.id;
348
401
drop table t1,t2;
351
# Bug #439719: Drizzle crash when running random query generator
353
CREATE TABLE t1(col1 enum('a','b') NOT NULL, col2 enum('a','b') DEFAULT NULL, KEY col2 (col2));
354
UPDATE t1 SET col1 = "crash" WHERE col2 = now() ;
356
403
connection default;
360
406
--echo End of 5.0 tests