14
14
# Some strange updates to test some otherwise unused code
15
15
update t1 set a=a+100 where a=1 and a=2;
16
--error ER_BAD_FIELD_ERROR
17
17
update t1 set a=b+100 where a=1 and a=2;
18
--error ER_BAD_FIELD_ERROR
19
19
update t1 set a=b+100 where c=1 and a=2;
20
--error ER_BAD_FIELD_ERROR
21
21
update t1 set d=a+100 where a=1;
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 '',
52
52
replyto varchar(255) NOT NULL default '',
53
53
subject varchar(100) NOT NULL default '',
54
timestamp_arg int NOT NULL default '0',
54
timestamp int NOT NULL default '0',
55
55
tstamp timestamp NOT NULL,
56
56
status int NOT NULL default '0',
57
57
type varchar(15) 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
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);
216
265
create table t2 (a int, filler1 char(200), filler2 char(200), key(a));
217
insert into t2 select A.a + 10*B.a, 'filler','filler' from t1 A CROSS JOIN t1 B;
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;
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