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;
27
place_id int NOT NULL,
28
shows int DEFAULT '0' NOT NULL,
29
ishows int DEFAULT '0' NOT NULL,
30
ushows int DEFAULT '0' NOT NULL,
31
clicks int DEFAULT '0' NOT NULL,
32
iclicks int DEFAULT '0' NOT NULL,
33
uclicks int DEFAULT '0' NOT NULL,
27
place_id int (10) unsigned NOT NULL,
28
shows int(10) unsigned DEFAULT '0' NOT NULL,
29
ishows int(10) unsigned DEFAULT '0' NOT NULL,
30
ushows int(10) unsigned DEFAULT '0' NOT NULL,
31
clicks int(10) unsigned DEFAULT '0' NOT NULL,
32
iclicks int(10) unsigned DEFAULT '0' NOT NULL,
33
uclicks int(10) unsigned DEFAULT '0' NOT NULL,
35
35
PRIMARY KEY (place_id,ts)
45
45
# Test bug with update reported by Jan Legenhausen
48
CREATE TEMPORARY TABLE t1 (
49
lfdnr int NOT NULL default '0',
50
ticket int NOT NULL default '0',
49
lfdnr int(10) unsigned NOT NULL default '0',
50
ticket int(10) unsigned 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 int NOT NULL default '0',
54
timestamp int(10) unsigned NOT NULL default '0',
55
55
tstamp timestamp NOT NULL,
56
status int NOT NULL default '0',
56
status int(3) NOT NULL default '0',
57
57
type varchar(15) NOT NULL default '',
58
assignment int NOT NULL default '0',
59
fupcount int NOT NULL default '0',
60
parent int NOT NULL default '0',
61
activity int NOT NULL default '0',
62
priority int NOT NULL default '1',
58
assignment int(10) unsigned NOT NULL default '0',
59
fupcount int(4) unsigned NOT NULL default '0',
60
parent int(10) unsigned NOT NULL default '0',
61
activity int(10) unsigned NOT NULL default '0',
62
priority tinyint(1) unsigned NOT NULL default '1',
63
63
cc varchar(255) NOT NULL default '',
64
64
bcc varchar(255) NOT NULL default '',
65
65
body text NOT NULL,
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);
133
# Bug#5553 - Multi table UPDATE IGNORE fails on duplicate keys
137
`colA` int(10) unsigned NOT NULL auto_increment,
138
`colB` int(11) NOT NULL default '0',
141
INSERT INTO t1 VALUES (4433,5424);
143
`colC` int(10) unsigned NOT NULL default '0',
144
`colA` int(10) unsigned NOT NULL default '0',
145
`colD` int(10) unsigned NOT NULL default '0',
146
`colE` int(10) unsigned NOT NULL default '0',
147
`colF` int(10) unsigned NOT NULL default '0',
148
PRIMARY KEY (`colC`,`colA`,`colD`,`colE`)
150
INSERT INTO t2 VALUES (3,4433,10005,495,500);
151
INSERT INTO t2 VALUES (3,4433,10005,496,500);
152
INSERT INTO t2 VALUES (3,4433,10009,494,500);
153
INSERT INTO t2 VALUES (3,4433,10011,494,500);
154
INSERT INTO t2 VALUES (3,4433,10005,497,500);
155
INSERT INTO t2 VALUES (3,4433,10013,489,500);
156
INSERT INTO t2 VALUES (3,4433,10005,494,500);
157
INSERT INTO t2 VALUES (3,4433,10005,493,500);
158
INSERT INTO t2 VALUES (3,4433,10005,492,500);
159
UPDATE IGNORE t2,t1 set t2.colE = t2.colE + 1,colF=0 WHERE t1.colA = t2.colA AND (t1.colB & 4096) > 0 AND (colE + 1) < colF;
167
create table t1 (c1 int, c2 char(6), c3 int);
168
create table t2 (c1 int, c2 char(6));
169
insert into t1 values (1, "t1c2-1", 10), (2, "t1c2-2", 20);
170
update t1 left join t2 on t1.c1 = t2.c1 set t2.c2 = "t2c2-1";
171
update t1 left join t2 on t1.c1 = t2.c1 set t2.c2 = "t2c2-1" where t1.c3 = 10;
121
177
create table t1 (id int not null auto_increment primary key, id_str varchar(32));
134
190
select * from t1;
193
# BUG#9103 "Erroneous data truncation warnings on multi-table updates"
194
create table t1 (a int, b varchar(10), key b(b(5))) engine=myisam;
195
create table t2 (a int, b varchar(10)) engine=myisam;
196
insert into t1 values ( 1, 'abcd1e');
197
insert into t1 values ( 2, 'abcd2e');
198
insert into t2 values ( 1, 'abcd1e');
199
insert into t2 values ( 2, 'abcd2e');
201
update t1, t2 set t1.a = t2.a where t2.b = t1.b;
138
206
# Bug #11868 Update with subquery with ref built with a key from the updated
139
207
# table crashes server
167
235
select a from t1 order by a limit 1;
169
236
show status like 'handler_read%';
172
239
update t1 set a=9999 order by a limit 1;
173
240
update t1 set b=9999 order by a limit 1;
175
241
show status like 'handler_read%';
178
244
delete from t1 order by a limit 1;
180
245
show status like 'handler_read%';
183
248
delete from t1 order by a desc limit 1;
185
249
show status like 'handler_read%';
187
251
alter table t1 disable keys;
190
254
delete from t1 order by a limit 1;
192
255
show status like 'handler_read%';
194
# PBXT: this select returns a different result to
195
# innodb because the 2 updates above change different rows
196
257
select * from t1;
197
258
update t1 set a=a+10,b=1 order by a limit 3;
198
259
update t1 set a=a+11,b=2 order by a limit 3;
205
266
# Bug#14186 select datefield is null not updated
207
create table t1 (f1 date NULL);
208
insert into t1 values('2000-01-01'),(NULL);
268
create table t1 (f1 date not null);
269
insert into t1 values('2000-01-01'),('0000-00-00');
209
270
update t1 set f1='2002-02-02' where f1 is null;
210
271
select * from t1;
275
# Bug#15028 Multitable update returns different numbers of matched rows
276
# depending on table order
277
create table t1 (f1 int);
278
create table t2 (f2 int);
279
insert into t1 values(1),(2);
280
insert into t2 values(1),(1);
282
update t1,t2 set f1=3,f2=3 where f1=f2 and f1=1;
285
update t1 set f1=1 where f1=3;
287
update t2,t1 set f1=3,f2=3 where f1=f2 and f1=1;
214
293
create table t1 (a int);
215
294
insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
338
412
# Check that the number of matched rows is correct when the temporary
339
413
# table has to be converted to MyISAM
340
414
select count(*) from t1 join t2 on (t1.a=t2.a);
416
update t1 join t2 on (t1.a=t2.a) set t1.id=t2.id;
342
419
# Check that the number of matched rows is correct when there are duplicate
344
421
update t1 set a=1;
345
422
update t2 set a=1;
346
423
select count(*) from t1 join t2 on (t1.a=t2.a);
425
update t1 join t2 on (t1.a=t2.a) set t1.id=t2.id;
348
428
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
430
connection default;
360
433
--echo End of 5.0 tests