544 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			544 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 
								 | 
							
								drop table if exists t1,t2;
							 | 
						||
| 
								 | 
							
								create table t1 (a int auto_increment , primary key (a));
							 | 
						||
| 
								 | 
							
								insert into t1 values (NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL),(NULL);
							 | 
						||
| 
								 | 
							
								update t1 set a=a+10 where a > 34;
							 | 
						||
| 
								 | 
							
								update t1 set a=a+100 where a > 0;
							 | 
						||
| 
								 | 
							
								update t1 set a=a+100 where a=1 and a=2;
							 | 
						||
| 
								 | 
							
								update t1 set a=b+100 where a=1 and a=2;
							 | 
						||
| 
								 | 
							
								ERROR 42S22: Unknown column 'b' in 'field list'
							 | 
						||
| 
								 | 
							
								update t1 set a=b+100 where c=1 and a=2;
							 | 
						||
| 
								 | 
							
								ERROR 42S22: Unknown column 'c' in 'where clause'
							 | 
						||
| 
								 | 
							
								update t1 set d=a+100 where a=1;
							 | 
						||
| 
								 | 
							
								ERROR 42S22: Unknown column 'd' in 'field list'
							 | 
						||
| 
								 | 
							
								select * from t1;
							 | 
						||
| 
								 | 
							
								a
							 | 
						||
| 
								 | 
							
								101
							 | 
						||
| 
								 | 
							
								102
							 | 
						||
| 
								 | 
							
								103
							 | 
						||
| 
								 | 
							
								104
							 | 
						||
| 
								 | 
							
								105
							 | 
						||
| 
								 | 
							
								106
							 | 
						||
| 
								 | 
							
								107
							 | 
						||
| 
								 | 
							
								108
							 | 
						||
| 
								 | 
							
								109
							 | 
						||
| 
								 | 
							
								110
							 | 
						||
| 
								 | 
							
								111
							 | 
						||
| 
								 | 
							
								112
							 | 
						||
| 
								 | 
							
								113
							 | 
						||
| 
								 | 
							
								114
							 | 
						||
| 
								 | 
							
								115
							 | 
						||
| 
								 | 
							
								116
							 | 
						||
| 
								 | 
							
								117
							 | 
						||
| 
								 | 
							
								118
							 | 
						||
| 
								 | 
							
								119
							 | 
						||
| 
								 | 
							
								120
							 | 
						||
| 
								 | 
							
								121
							 | 
						||
| 
								 | 
							
								122
							 | 
						||
| 
								 | 
							
								123
							 | 
						||
| 
								 | 
							
								124
							 | 
						||
| 
								 | 
							
								125
							 | 
						||
| 
								 | 
							
								126
							 | 
						||
| 
								 | 
							
								127
							 | 
						||
| 
								 | 
							
								128
							 | 
						||
| 
								 | 
							
								129
							 | 
						||
| 
								 | 
							
								130
							 | 
						||
| 
								 | 
							
								131
							 | 
						||
| 
								 | 
							
								132
							 | 
						||
| 
								 | 
							
								133
							 | 
						||
| 
								 | 
							
								134
							 | 
						||
| 
								 | 
							
								145
							 | 
						||
| 
								 | 
							
								146
							 | 
						||
| 
								 | 
							
								drop table t1;
							 | 
						||
| 
								 | 
							
								CREATE TABLE t1
							 | 
						||
| 
								 | 
							
								(
							 | 
						||
| 
								 | 
							
								place_id int (10) unsigned NOT NULL,
							 | 
						||
| 
								 | 
							
								shows int(10) unsigned DEFAULT '0' NOT NULL,
							 | 
						||
| 
								 | 
							
								ishows int(10) unsigned DEFAULT '0' NOT NULL,
							 | 
						||
| 
								 | 
							
								ushows int(10) unsigned DEFAULT '0' NOT NULL,
							 | 
						||
| 
								 | 
							
								clicks int(10) unsigned DEFAULT '0' NOT NULL,
							 | 
						||
| 
								 | 
							
								iclicks int(10) unsigned DEFAULT '0' NOT NULL,
							 | 
						||
| 
								 | 
							
								uclicks int(10) unsigned DEFAULT '0' NOT NULL,
							 | 
						||
| 
								 | 
							
								ts timestamp,
							 | 
						||
| 
								 | 
							
								PRIMARY KEY (place_id,ts)
							 | 
						||
| 
								 | 
							
								);
							 | 
						||
| 
								 | 
							
								INSERT INTO t1 (place_id,shows,ishows,ushows,clicks,iclicks,uclicks,ts)
							 | 
						||
| 
								 | 
							
								VALUES (1,0,0,0,0,0,0,20000928174434);
							 | 
						||
| 
								 | 
							
								UPDATE t1 SET shows=shows+1,ishows=ishows+1,ushows=ushows+1,clicks=clicks+1,iclicks=iclicks+1,uclicks=uclicks+1 WHERE place_id=1 AND ts>="2000-09-28 00:00:00";
							 | 
						||
| 
								 | 
							
								select place_id,shows from t1;
							 | 
						||
| 
								 | 
							
								place_id	shows
							 | 
						||
| 
								 | 
							
								1	1
							 | 
						||
| 
								 | 
							
								drop table t1;
							 | 
						||
| 
								 | 
							
								CREATE TABLE t1 (
							 | 
						||
| 
								 | 
							
								lfdnr int(10) unsigned NOT NULL default '0',
							 | 
						||
| 
								 | 
							
								ticket int(10) unsigned NOT NULL default '0',
							 | 
						||
| 
								 | 
							
								client varchar(255) NOT NULL default '',
							 | 
						||
| 
								 | 
							
								replyto varchar(255) NOT NULL default '',
							 | 
						||
| 
								 | 
							
								subject varchar(100) NOT NULL default '',
							 | 
						||
| 
								 | 
							
								timestamp int(10) unsigned NOT NULL default '0',
							 | 
						||
| 
								 | 
							
								tstamp timestamp NOT NULL,
							 | 
						||
| 
								 | 
							
								status int(3) NOT NULL default '0',
							 | 
						||
| 
								 | 
							
								type varchar(15) NOT NULL default '',
							 | 
						||
| 
								 | 
							
								assignment int(10) unsigned NOT NULL default '0',
							 | 
						||
| 
								 | 
							
								fupcount int(4) unsigned NOT NULL default '0',
							 | 
						||
| 
								 | 
							
								parent int(10) unsigned NOT NULL default '0',
							 | 
						||
| 
								 | 
							
								activity int(10) unsigned NOT NULL default '0',
							 | 
						||
| 
								 | 
							
								priority tinyint(1) unsigned NOT NULL default '1',
							 | 
						||
| 
								 | 
							
								cc varchar(255) NOT NULL default '',
							 | 
						||
| 
								 | 
							
								bcc varchar(255) NOT NULL default '',
							 | 
						||
| 
								 | 
							
								body text NOT NULL,
							 | 
						||
| 
								 | 
							
								comment text,
							 | 
						||
| 
								 | 
							
								header text,
							 | 
						||
| 
								 | 
							
								PRIMARY KEY  (lfdnr),
							 | 
						||
| 
								 | 
							
								KEY k1 (timestamp),
							 | 
						||
| 
								 | 
							
								KEY k2 (type),
							 | 
						||
| 
								 | 
							
								KEY k3 (parent),
							 | 
						||
| 
								 | 
							
								KEY k4 (assignment),
							 | 
						||
| 
								 | 
							
								KEY ticket (ticket)
							 | 
						||
| 
								 | 
							
								) ENGINE=MyISAM;
							 | 
						||
| 
								 | 
							
								INSERT INTO t1 VALUES (773,773,'','','',980257344,20010318180652,0,'Open',10,0,0,0,1,'','','','','');
							 | 
						||
| 
								 | 
							
								alter table t1 change lfdnr lfdnr int(10) unsigned not null auto_increment;
							 | 
						||
| 
								 | 
							
								update t1 set status=1 where type='Open';
							 | 
						||
| 
								 | 
							
								select status from t1;
							 | 
						||
| 
								 | 
							
								status
							 | 
						||
| 
								 | 
							
								1
							 | 
						||
| 
								 | 
							
								drop table t1;
							 | 
						||
| 
								 | 
							
								create table t1 (a int not null, b int not null, key (a));
							 | 
						||
| 
								 | 
							
								insert into t1 values (1,1),(1,2),(1,3),(3,1),(3,2),(3,3),(3,1),(3,2),(3,3),(2,1),(2,2),(2,3);
							 | 
						||
| 
								 | 
							
								SET @tmp=0;
							 | 
						||
| 
								 | 
							
								update t1 set b=(@tmp:=@tmp+1) order by a;
							 | 
						||
| 
								 | 
							
								update t1 set b=99 where a=1 order by b asc limit 1;
							 | 
						||
| 
								 | 
							
								select * from t1 order by a,b;
							 | 
						||
| 
								 | 
							
								a	b
							 | 
						||
| 
								 | 
							
								1	2
							 | 
						||
| 
								 | 
							
								1	3
							 | 
						||
| 
								 | 
							
								1	99
							 | 
						||
| 
								 | 
							
								2	4
							 | 
						||
| 
								 | 
							
								2	5
							 | 
						||
| 
								 | 
							
								2	6
							 | 
						||
| 
								 | 
							
								3	7
							 | 
						||
| 
								 | 
							
								3	8
							 | 
						||
| 
								 | 
							
								3	9
							 | 
						||
| 
								 | 
							
								3	10
							 | 
						||
| 
								 | 
							
								3	11
							 | 
						||
| 
								 | 
							
								3	12
							 | 
						||
| 
								 | 
							
								update t1 set b=100 where a=1 order by b desc limit 2;
							 | 
						||
| 
								 | 
							
								update t1 set a=a+10+b where a=1 order by b;
							 | 
						||
| 
								 | 
							
								select * from t1 order by a,b;
							 | 
						||
| 
								 | 
							
								a	b
							 | 
						||
| 
								 | 
							
								2	4
							 | 
						||
| 
								 | 
							
								2	5
							 | 
						||
| 
								 | 
							
								2	6
							 | 
						||
| 
								 | 
							
								3	7
							 | 
						||
| 
								 | 
							
								3	8
							 | 
						||
| 
								 | 
							
								3	9
							 | 
						||
| 
								 | 
							
								3	10
							 | 
						||
| 
								 | 
							
								3	11
							 | 
						||
| 
								 | 
							
								3	12
							 | 
						||
| 
								 | 
							
								13	2
							 | 
						||
| 
								 | 
							
								111	100
							 | 
						||
| 
								 | 
							
								111	100
							 | 
						||
| 
								 | 
							
								create table t2 (a int not null, b int not null);
							 | 
						||
| 
								 | 
							
								insert into t2 values (1,1),(1,2),(1,3);
							 | 
						||
| 
								 | 
							
								update t1 set b=(select distinct 1 from (select * from t2) a);
							 | 
						||
| 
								 | 
							
								drop table t1,t2;
							 | 
						||
| 
								 | 
							
								CREATE TABLE t1 (
							 | 
						||
| 
								 | 
							
								`id_param` smallint(3) unsigned NOT NULL default '0',
							 | 
						||
| 
								 | 
							
								`nom_option` char(40) NOT NULL default '',
							 | 
						||
| 
								 | 
							
								`valid` tinyint(1) NOT NULL default '0',
							 | 
						||
| 
								 | 
							
								KEY `id_param` (`id_param`,`nom_option`)
							 | 
						||
| 
								 | 
							
								) ENGINE=MyISAM;
							 | 
						||
| 
								 | 
							
								INSERT INTO t1 (id_param,nom_option,valid) VALUES (185,'600x1200',1);
							 | 
						||
| 
								 | 
							
								UPDATE t1 SET nom_option='test' WHERE id_param=185 AND nom_option='600x1200' AND valid=1 LIMIT 1;
							 | 
						||
| 
								 | 
							
								select * from t1;
							 | 
						||
| 
								 | 
							
								id_param	nom_option	valid
							 | 
						||
| 
								 | 
							
								185	test	1
							 | 
						||
| 
								 | 
							
								drop table t1;
							 | 
						||
| 
								 | 
							
								create table t1 (F1 VARCHAR(30), F2 VARCHAR(30), F3 VARCHAR(30), cnt int, groupid int, KEY groupid_index (groupid));
							 | 
						||
| 
								 | 
							
								insert into t1 (F1,F2,F3,cnt,groupid) values ('0','0','0',1,6),
							 | 
						||
| 
								 | 
							
								('0','1','2',1,5), ('0','2','0',1,3), ('1','0','1',1,2),
							 | 
						||
| 
								 | 
							
								('1','2','1',1,1), ('1','2','2',1,1), ('2','0','1',2,4),
							 | 
						||
| 
								 | 
							
								('2','2','0',1,7);
							 | 
						||
| 
								 | 
							
								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);
							 | 
						||
| 
								 | 
							
								select * from t1;
							 | 
						||
| 
								 | 
							
								F1	F2	F3	cnt	groupid
							 | 
						||
| 
								 | 
							
								0	0	0	1	6
							 | 
						||
| 
								 | 
							
								0	1	2	1	5
							 | 
						||
| 
								 | 
							
								0	2	0	1	3
							 | 
						||
| 
								 | 
							
								1	0	1	1	2
							 | 
						||
| 
								 | 
							
								1	2	1	1	1
							 | 
						||
| 
								 | 
							
								2	0	1	2	4
							 | 
						||
| 
								 | 
							
								2	2	0	1	7
							 | 
						||
| 
								 | 
							
								drop table t1;
							 | 
						||
| 
								 | 
							
								CREATE TABLE t1 ( 
							 | 
						||
| 
								 | 
							
								`colA` int(10) unsigned NOT NULL auto_increment,
							 | 
						||
| 
								 | 
							
								`colB` int(11) NOT NULL default '0',
							 | 
						||
| 
								 | 
							
								PRIMARY KEY  (`colA`)
							 | 
						||
| 
								 | 
							
								);
							 | 
						||
| 
								 | 
							
								INSERT INTO t1 VALUES (4433,5424);
							 | 
						||
| 
								 | 
							
								CREATE TABLE t2 (
							 | 
						||
| 
								 | 
							
								`colC` int(10) unsigned NOT NULL default '0',
							 | 
						||
| 
								 | 
							
								`colA` int(10) unsigned NOT NULL default '0',
							 | 
						||
| 
								 | 
							
								`colD` int(10) unsigned NOT NULL default '0',
							 | 
						||
| 
								 | 
							
								`colE` int(10) unsigned NOT NULL default '0',
							 | 
						||
| 
								 | 
							
								`colF` int(10) unsigned NOT NULL default '0',
							 | 
						||
| 
								 | 
							
								PRIMARY KEY  (`colC`,`colA`,`colD`,`colE`)
							 | 
						||
| 
								 | 
							
								);
							 | 
						||
| 
								 | 
							
								INSERT INTO t2 VALUES (3,4433,10005,495,500);
							 | 
						||
| 
								 | 
							
								INSERT INTO t2 VALUES (3,4433,10005,496,500);
							 | 
						||
| 
								 | 
							
								INSERT INTO t2 VALUES (3,4433,10009,494,500);
							 | 
						||
| 
								 | 
							
								INSERT INTO t2 VALUES (3,4433,10011,494,500);
							 | 
						||
| 
								 | 
							
								INSERT INTO t2 VALUES (3,4433,10005,497,500);
							 | 
						||
| 
								 | 
							
								INSERT INTO t2 VALUES (3,4433,10013,489,500);
							 | 
						||
| 
								 | 
							
								INSERT INTO t2 VALUES (3,4433,10005,494,500);
							 | 
						||
| 
								 | 
							
								INSERT INTO t2 VALUES (3,4433,10005,493,500);
							 | 
						||
| 
								 | 
							
								INSERT INTO t2 VALUES (3,4433,10005,492,500);
							 | 
						||
| 
								 | 
							
								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;
							 | 
						||
| 
								 | 
							
								SELECT * FROM t2;
							 | 
						||
| 
								 | 
							
								colC	colA	colD	colE	colF
							 | 
						||
| 
								 | 
							
								3	4433	10005	495	500
							 | 
						||
| 
								 | 
							
								3	4433	10005	496	500
							 | 
						||
| 
								 | 
							
								3	4433	10009	495	0
							 | 
						||
| 
								 | 
							
								3	4433	10011	495	0
							 | 
						||
| 
								 | 
							
								3	4433	10005	498	0
							 | 
						||
| 
								 | 
							
								3	4433	10013	490	0
							 | 
						||
| 
								 | 
							
								3	4433	10005	494	500
							 | 
						||
| 
								 | 
							
								3	4433	10005	493	500
							 | 
						||
| 
								 | 
							
								3	4433	10005	492	500
							 | 
						||
| 
								 | 
							
								DROP TABLE t1;
							 | 
						||
| 
								 | 
							
								DROP TABLE t2;
							 | 
						||
| 
								 | 
							
								create table t1 (c1 int, c2 char(6), c3 int);
							 | 
						||
| 
								 | 
							
								create table t2 (c1 int, c2 char(6));
							 | 
						||
| 
								 | 
							
								insert into t1 values (1, "t1c2-1", 10), (2, "t1c2-2", 20);
							 | 
						||
| 
								 | 
							
								update t1 left join t2 on t1.c1 = t2.c1 set t2.c2 = "t2c2-1";
							 | 
						||
| 
								 | 
							
								update t1 left join t2 on t1.c1 = t2.c1 set t2.c2 = "t2c2-1" where t1.c3 = 10;
							 | 
						||
| 
								 | 
							
								drop table t1, t2;
							 | 
						||
| 
								 | 
							
								create table t1 (id int not null auto_increment primary key, id_str varchar(32));
							 | 
						||
| 
								 | 
							
								insert into t1 (id_str) values ("test");
							 | 
						||
| 
								 | 
							
								update t1 set id_str = concat(id_str, id) where id = last_insert_id();
							 | 
						||
| 
								 | 
							
								select * from t1;
							 | 
						||
| 
								 | 
							
								id	id_str
							 | 
						||
| 
								 | 
							
								1	test1
							 | 
						||
| 
								 | 
							
								drop table t1;
							 | 
						||
| 
								 | 
							
								create table t1 (a int, b char(255), key(a, b(20)));
							 | 
						||
| 
								 | 
							
								insert into t1 values (0, '1');
							 | 
						||
| 
								 | 
							
								update t1 set b = b + 1 where a = 0;
							 | 
						||
| 
								 | 
							
								select * from t1;
							 | 
						||
| 
								 | 
							
								a	b
							 | 
						||
| 
								 | 
							
								0	2
							 | 
						||
| 
								 | 
							
								drop table t1;
							 | 
						||
| 
								 | 
							
								create table t1 (a int, b varchar(10), key b(b(5))) engine=myisam;
							 | 
						||
| 
								 | 
							
								create table t2 (a int, b varchar(10)) engine=myisam;
							 | 
						||
| 
								 | 
							
								insert into t1 values ( 1, 'abcd1e');
							 | 
						||
| 
								 | 
							
								insert into t1 values ( 2, 'abcd2e');
							 | 
						||
| 
								 | 
							
								insert into t2 values ( 1, 'abcd1e');
							 | 
						||
| 
								 | 
							
								insert into t2 values ( 2, 'abcd2e');
							 | 
						||
| 
								 | 
							
								analyze table t1,t2;
							 | 
						||
| 
								 | 
							
								Table	Op	Msg_type	Msg_text
							 | 
						||
| 
								 | 
							
								test.t1	analyze	status	OK
							 | 
						||
| 
								 | 
							
								test.t2	analyze	status	OK
							 | 
						||
| 
								 | 
							
								update t1, t2 set t1.a = t2.a where t2.b = t1.b;
							 | 
						||
| 
								 | 
							
								show warnings;
							 | 
						||
| 
								 | 
							
								Level	Code	Message
							 | 
						||
| 
								 | 
							
								drop table t1, t2;
							 | 
						||
| 
								 | 
							
								create table t1(f1 int, f2 int);
							 | 
						||
| 
								 | 
							
								create table t2(f3 int, f4 int);
							 | 
						||
| 
								 | 
							
								create index idx on t2(f3);
							 | 
						||
| 
								 | 
							
								insert into t1 values(1,0),(2,0);
							 | 
						||
| 
								 | 
							
								insert into t2 values(1,1),(2,2);
							 | 
						||
| 
								 | 
							
								UPDATE t1 SET t1.f2=(SELECT MAX(t2.f4) FROM t2 WHERE t2.f3=t1.f1);
							 | 
						||
| 
								 | 
							
								select * from t1;
							 | 
						||
| 
								 | 
							
								f1	f2
							 | 
						||
| 
								 | 
							
								1	1
							 | 
						||
| 
								 | 
							
								2	2
							 | 
						||
| 
								 | 
							
								drop table t1,t2;
							 | 
						||
| 
								 | 
							
								create table t1(f1 int);
							 | 
						||
| 
								 | 
							
								select DATABASE();
							 | 
						||
| 
								 | 
							
								DATABASE()
							 | 
						||
| 
								 | 
							
								test
							 | 
						||
| 
								 | 
							
								update t1 set f1=1 where count(*)=1;
							 | 
						||
| 
								 | 
							
								ERROR HY000: Invalid use of group function
							 | 
						||
| 
								 | 
							
								select DATABASE();
							 | 
						||
| 
								 | 
							
								DATABASE()
							 | 
						||
| 
								 | 
							
								test
							 | 
						||
| 
								 | 
							
								delete from t1 where count(*)=1;
							 | 
						||
| 
								 | 
							
								ERROR HY000: Invalid use of group function
							 | 
						||
| 
								 | 
							
								drop table t1;
							 | 
						||
| 
								 | 
							
								create table t1 ( a int, b int default 0, index (a) );
							 | 
						||
| 
								 | 
							
								insert into t1 (a) values (0),(0),(0),(0),(0),(0),(0),(0);
							 | 
						||
| 
								 | 
							
								flush status;
							 | 
						||
| 
								 | 
							
								select a from t1 order by a limit 1;
							 | 
						||
| 
								 | 
							
								a
							 | 
						||
| 
								 | 
							
								0
							 | 
						||
| 
								 | 
							
								show status like 'handler_read%';
							 | 
						||
| 
								 | 
							
								Variable_name	Value
							 | 
						||
| 
								 | 
							
								Handler_read_first	1
							 | 
						||
| 
								 | 
							
								Handler_read_key	0
							 | 
						||
| 
								 | 
							
								Handler_read_next	0
							 | 
						||
| 
								 | 
							
								Handler_read_prev	0
							 | 
						||
| 
								 | 
							
								Handler_read_rnd	0
							 | 
						||
| 
								 | 
							
								Handler_read_rnd_next	0
							 | 
						||
| 
								 | 
							
								flush status;
							 | 
						||
| 
								 | 
							
								update t1 set a=9999 order by a limit 1;
							 | 
						||
| 
								 | 
							
								update t1 set b=9999 order by a limit 1;
							 | 
						||
| 
								 | 
							
								show status like 'handler_read%';
							 | 
						||
| 
								 | 
							
								Variable_name	Value
							 | 
						||
| 
								 | 
							
								Handler_read_first	1
							 | 
						||
| 
								 | 
							
								Handler_read_key	0
							 | 
						||
| 
								 | 
							
								Handler_read_next	0
							 | 
						||
| 
								 | 
							
								Handler_read_prev	0
							 | 
						||
| 
								 | 
							
								Handler_read_rnd	2
							 | 
						||
| 
								 | 
							
								Handler_read_rnd_next	9
							 | 
						||
| 
								 | 
							
								flush status;
							 | 
						||
| 
								 | 
							
								delete from t1 order by a limit 1;
							 | 
						||
| 
								 | 
							
								show status like 'handler_read%';
							 | 
						||
| 
								 | 
							
								Variable_name	Value
							 | 
						||
| 
								 | 
							
								Handler_read_first	1
							 | 
						||
| 
								 | 
							
								Handler_read_key	0
							 | 
						||
| 
								 | 
							
								Handler_read_next	0
							 | 
						||
| 
								 | 
							
								Handler_read_prev	0
							 | 
						||
| 
								 | 
							
								Handler_read_rnd	0
							 | 
						||
| 
								 | 
							
								Handler_read_rnd_next	0
							 | 
						||
| 
								 | 
							
								flush status;
							 | 
						||
| 
								 | 
							
								delete from t1 order by a desc limit 1;
							 | 
						||
| 
								 | 
							
								show status like 'handler_read%';
							 | 
						||
| 
								 | 
							
								Variable_name	Value
							 | 
						||
| 
								 | 
							
								Handler_read_first	0
							 | 
						||
| 
								 | 
							
								Handler_read_key	0
							 | 
						||
| 
								 | 
							
								Handler_read_next	0
							 | 
						||
| 
								 | 
							
								Handler_read_prev	0
							 | 
						||
| 
								 | 
							
								Handler_read_rnd	1
							 | 
						||
| 
								 | 
							
								Handler_read_rnd_next	9
							 | 
						||
| 
								 | 
							
								alter table t1 disable keys;
							 | 
						||
| 
								 | 
							
								flush status;
							 | 
						||
| 
								 | 
							
								delete from t1 order by a limit 1;
							 | 
						||
| 
								 | 
							
								show status like 'handler_read%';
							 | 
						||
| 
								 | 
							
								Variable_name	Value
							 | 
						||
| 
								 | 
							
								Handler_read_first	0
							 | 
						||
| 
								 | 
							
								Handler_read_key	0
							 | 
						||
| 
								 | 
							
								Handler_read_next	0
							 | 
						||
| 
								 | 
							
								Handler_read_prev	0
							 | 
						||
| 
								 | 
							
								Handler_read_rnd	1
							 | 
						||
| 
								 | 
							
								Handler_read_rnd_next	9
							 | 
						||
| 
								 | 
							
								select * from t1;
							 | 
						||
| 
								 | 
							
								a	b
							 | 
						||
| 
								 | 
							
								0	0
							 | 
						||
| 
								 | 
							
								0	0
							 | 
						||
| 
								 | 
							
								0	0
							 | 
						||
| 
								 | 
							
								0	0
							 | 
						||
| 
								 | 
							
								0	0
							 | 
						||
| 
								 | 
							
								update t1 set a=a+10,b=1 order by a limit 3;
							 | 
						||
| 
								 | 
							
								update t1 set a=a+11,b=2 order by a limit 3;
							 | 
						||
| 
								 | 
							
								update t1 set a=a+12,b=3 order by a limit 3;
							 | 
						||
| 
								 | 
							
								select * from t1 order by a;
							 | 
						||
| 
								 | 
							
								a	b
							 | 
						||
| 
								 | 
							
								11	2
							 | 
						||
| 
								 | 
							
								21	2
							 | 
						||
| 
								 | 
							
								22	3
							 | 
						||
| 
								 | 
							
								22	3
							 | 
						||
| 
								 | 
							
								23	3
							 | 
						||
| 
								 | 
							
								drop table t1;
							 | 
						||
| 
								 | 
							
								create table t1 (f1 date not null);
							 | 
						||
| 
								 | 
							
								insert into t1 values('2000-01-01'),('0000-00-00');
							 | 
						||
| 
								 | 
							
								update t1 set f1='2002-02-02' where f1 is null;
							 | 
						||
| 
								 | 
							
								select * from t1;
							 | 
						||
| 
								 | 
							
								f1
							 | 
						||
| 
								 | 
							
								2000-01-01
							 | 
						||
| 
								 | 
							
								2002-02-02
							 | 
						||
| 
								 | 
							
								drop table t1;
							 | 
						||
| 
								 | 
							
								create table t1 (f1 int);
							 | 
						||
| 
								 | 
							
								create table t2 (f2 int);
							 | 
						||
| 
								 | 
							
								insert into t1 values(1),(2);
							 | 
						||
| 
								 | 
							
								insert into t2 values(1),(1);
							 | 
						||
| 
								 | 
							
								update t1,t2 set f1=3,f2=3 where f1=f2 and f1=1;
							 | 
						||
| 
								 | 
							
								affected rows: 3
							 | 
						||
| 
								 | 
							
								info: Rows matched: 3  Changed: 3  Warnings: 0
							 | 
						||
| 
								 | 
							
								update t2 set f2=1;
							 | 
						||
| 
								 | 
							
								update t1 set f1=1 where f1=3;
							 | 
						||
| 
								 | 
							
								update t2,t1 set f1=3,f2=3 where f1=f2 and f1=1;
							 | 
						||
| 
								 | 
							
								affected rows: 3
							 | 
						||
| 
								 | 
							
								info: Rows matched: 3  Changed: 3  Warnings: 0
							 | 
						||
| 
								 | 
							
								drop table t1,t2;
							 | 
						||
| 
								 | 
							
								create table t1 (a int);
							 | 
						||
| 
								 | 
							
								insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
							 | 
						||
| 
								 | 
							
								create table t2 (a int, filler1 char(200), filler2 char(200), key(a));
							 | 
						||
| 
								 | 
							
								insert into t2 select A.a + 10*B.a, 'filler','filler' from t1 A, t1 B;
							 | 
						||
| 
								 | 
							
								flush status;
							 | 
						||
| 
								 | 
							
								update t2 set a=3 where a=2;
							 | 
						||
| 
								 | 
							
								show status like 'handler_read%';
							 | 
						||
| 
								 | 
							
								Variable_name	Value
							 | 
						||
| 
								 | 
							
								Handler_read_first	0
							 | 
						||
| 
								 | 
							
								Handler_read_key	1
							 | 
						||
| 
								 | 
							
								Handler_read_next	1
							 | 
						||
| 
								 | 
							
								Handler_read_prev	0
							 | 
						||
| 
								 | 
							
								Handler_read_rnd	1
							 | 
						||
| 
								 | 
							
								Handler_read_rnd_next	0
							 | 
						||
| 
								 | 
							
								drop table t1, t2;
							 | 
						||
| 
								 | 
							
								create table t1(f1 int, `*f2` int);
							 | 
						||
| 
								 | 
							
								insert into t1 values (1,1);
							 | 
						||
| 
								 | 
							
								update t1 set `*f2`=1;
							 | 
						||
| 
								 | 
							
								drop table t1;
							 | 
						||
| 
								 | 
							
								create table t1(f1 int);
							 | 
						||
| 
								 | 
							
								update t1 set f2=1 order by f2;
							 | 
						||
| 
								 | 
							
								ERROR 42S22: Unknown column 'f2' in 'order clause'
							 | 
						||
| 
								 | 
							
								drop table t1;
							 | 
						||
| 
								 | 
							
								CREATE TABLE t1 (
							 | 
						||
| 
								 | 
							
								request_id int unsigned NOT NULL auto_increment,
							 | 
						||
| 
								 | 
							
								user_id varchar(12) default NULL,
							 | 
						||
| 
								 | 
							
								time_stamp datetime NOT NULL default '0000-00-00 00:00:00',
							 | 
						||
| 
								 | 
							
								ip_address varchar(15) default NULL,
							 | 
						||
| 
								 | 
							
								PRIMARY KEY (request_id),
							 | 
						||
| 
								 | 
							
								KEY user_id_2 (user_id,time_stamp)
							 | 
						||
| 
								 | 
							
								);
							 | 
						||
| 
								 | 
							
								INSERT INTO t1 (user_id) VALUES ('user1');
							 | 
						||
| 
								 | 
							
								INSERT INTO t1(user_id) SELECT user_id FROM t1;
							 | 
						||
| 
								 | 
							
								INSERT INTO t1(user_id) SELECT user_id FROM t1;
							 | 
						||
| 
								 | 
							
								INSERT INTO t1(user_id) SELECT user_id FROM t1;
							 | 
						||
| 
								 | 
							
								INSERT INTO t1(user_id) SELECT user_id FROM t1;
							 | 
						||
| 
								 | 
							
								INSERT INTO t1(user_id) SELECT user_id FROM t1;
							 | 
						||
| 
								 | 
							
								INSERT INTO t1(user_id) SELECT user_id FROM t1;
							 | 
						||
| 
								 | 
							
								INSERT INTO t1(user_id) SELECT user_id FROM t1;
							 | 
						||
| 
								 | 
							
								INSERT INTO t1(user_id) SELECT user_id FROM t1;
							 | 
						||
| 
								 | 
							
								flush status;
							 | 
						||
| 
								 | 
							
								SELECT user_id FROM t1 WHERE request_id=9999999999999;
							 | 
						||
| 
								 | 
							
								user_id
							 | 
						||
| 
								 | 
							
								show status like '%Handler_read%';
							 | 
						||
| 
								 | 
							
								Variable_name	Value
							 | 
						||
| 
								 | 
							
								Handler_read_first	0
							 | 
						||
| 
								 | 
							
								Handler_read_key	1
							 | 
						||
| 
								 | 
							
								Handler_read_next	0
							 | 
						||
| 
								 | 
							
								Handler_read_prev	0
							 | 
						||
| 
								 | 
							
								Handler_read_rnd	0
							 | 
						||
| 
								 | 
							
								Handler_read_rnd_next	0
							 | 
						||
| 
								 | 
							
								SELECT user_id FROM t1 WHERE request_id=999999999999999999999999999999;
							 | 
						||
| 
								 | 
							
								user_id
							 | 
						||
| 
								 | 
							
								show status like '%Handler_read%';
							 | 
						||
| 
								 | 
							
								Variable_name	Value
							 | 
						||
| 
								 | 
							
								Handler_read_first	0
							 | 
						||
| 
								 | 
							
								Handler_read_key	2
							 | 
						||
| 
								 | 
							
								Handler_read_next	0
							 | 
						||
| 
								 | 
							
								Handler_read_prev	0
							 | 
						||
| 
								 | 
							
								Handler_read_rnd	0
							 | 
						||
| 
								 | 
							
								Handler_read_rnd_next	0
							 | 
						||
| 
								 | 
							
								UPDATE t1 SET user_id=null WHERE request_id=9999999999999;
							 | 
						||
| 
								 | 
							
								show status like '%Handler_read%';
							 | 
						||
| 
								 | 
							
								Variable_name	Value
							 | 
						||
| 
								 | 
							
								Handler_read_first	0
							 | 
						||
| 
								 | 
							
								Handler_read_key	3
							 | 
						||
| 
								 | 
							
								Handler_read_next	0
							 | 
						||
| 
								 | 
							
								Handler_read_prev	0
							 | 
						||
| 
								 | 
							
								Handler_read_rnd	0
							 | 
						||
| 
								 | 
							
								Handler_read_rnd_next	0
							 | 
						||
| 
								 | 
							
								UPDATE t1 SET user_id=null WHERE request_id=999999999999999999999999999999;
							 | 
						||
| 
								 | 
							
								show status like '%Handler_read%';
							 | 
						||
| 
								 | 
							
								Variable_name	Value
							 | 
						||
| 
								 | 
							
								Handler_read_first	0
							 | 
						||
| 
								 | 
							
								Handler_read_key	3
							 | 
						||
| 
								 | 
							
								Handler_read_next	0
							 | 
						||
| 
								 | 
							
								Handler_read_prev	0
							 | 
						||
| 
								 | 
							
								Handler_read_rnd	0
							 | 
						||
| 
								 | 
							
								Handler_read_rnd_next	0
							 | 
						||
| 
								 | 
							
								DROP TABLE t1;
							 | 
						||
| 
								 | 
							
								CREATE TABLE t1 (
							 | 
						||
| 
								 | 
							
								a INT(11),
							 | 
						||
| 
								 | 
							
								quux decimal( 31, 30 ),
							 | 
						||
| 
								 | 
							
								UNIQUE KEY bar (a),
							 | 
						||
| 
								 | 
							
								KEY quux (quux)
							 | 
						||
| 
								 | 
							
								);
							 | 
						||
| 
								 | 
							
								INSERT INTO
							 | 
						||
| 
								 | 
							
								t1 ( a, quux )
							 | 
						||
| 
								 | 
							
								VALUES
							 | 
						||
| 
								 | 
							
								( 1,    1 ),
							 | 
						||
| 
								 | 
							
								( 2,  0.1 );
							 | 
						||
| 
								 | 
							
								INSERT INTO t1( a )
							 | 
						||
| 
								 | 
							
								SELECT @newA := 1 + a FROM t1 WHERE quux <= 0.1;
							 | 
						||
| 
								 | 
							
								SELECT * FROM t1;
							 | 
						||
| 
								 | 
							
								a	quux
							 | 
						||
| 
								 | 
							
								1	1.000000000000000000000000000000
							 | 
						||
| 
								 | 
							
								2	0.100000000000000000000000000000
							 | 
						||
| 
								 | 
							
								3	NULL
							 | 
						||
| 
								 | 
							
								DROP TABLE t1;
							 | 
						||
| 
								 | 
							
								set tmp_table_size=1024;
							 | 
						||
| 
								 | 
							
								create table t1 (id int, a int, key idx(a));
							 | 
						||
| 
								 | 
							
								create table t2 (id int unsigned not null auto_increment primary key, a int);
							 | 
						||
| 
								 | 
							
								insert into t2(a) values(1),(2),(3),(4),(5),(6),(7),(8);
							 | 
						||
| 
								 | 
							
								insert into t2(a) select a from t2;
							 | 
						||
| 
								 | 
							
								insert into t2(a) select a from t2;
							 | 
						||
| 
								 | 
							
								insert into t2(a) select a from t2;
							 | 
						||
| 
								 | 
							
								update t2 set a=id;
							 | 
						||
| 
								 | 
							
								insert into t1 select * from t2;
							 | 
						||
| 
								 | 
							
								select count(*) from t1 join t2 on (t1.a=t2.a);
							 | 
						||
| 
								 | 
							
								count(*)
							 | 
						||
| 
								 | 
							
								64
							 | 
						||
| 
								 | 
							
								update t1 join t2 on (t1.a=t2.a) set t1.id=t2.id;
							 | 
						||
| 
								 | 
							
								affected rows: 0
							 | 
						||
| 
								 | 
							
								info: Rows matched: 64  Changed: 0  Warnings: 0
							 | 
						||
| 
								 | 
							
								insert into t2(a) select a from t2;
							 | 
						||
| 
								 | 
							
								update t2 set a=id;
							 | 
						||
| 
								 | 
							
								truncate t1;
							 | 
						||
| 
								 | 
							
								insert into t1 select * from t2;
							 | 
						||
| 
								 | 
							
								select count(*) from t1 join t2 on (t1.a=t2.a);
							 | 
						||
| 
								 | 
							
								count(*)
							 | 
						||
| 
								 | 
							
								128
							 | 
						||
| 
								 | 
							
								update t1 join t2 on (t1.a=t2.a) set t1.id=t2.id;
							 | 
						||
| 
								 | 
							
								affected rows: 0
							 | 
						||
| 
								 | 
							
								info: Rows matched: 128  Changed: 0  Warnings: 0
							 | 
						||
| 
								 | 
							
								update t1 set a=1;
							 | 
						||
| 
								 | 
							
								update t2 set a=1;
							 | 
						||
| 
								 | 
							
								select count(*) from t1 join t2 on (t1.a=t2.a);
							 | 
						||
| 
								 | 
							
								count(*)
							 | 
						||
| 
								 | 
							
								16384
							 | 
						||
| 
								 | 
							
								update t1 join t2 on (t1.a=t2.a) set t1.id=t2.id;
							 | 
						||
| 
								 | 
							
								affected rows: 127
							 | 
						||
| 
								 | 
							
								info: Rows matched: 128  Changed: 127  Warnings: 0
							 | 
						||
| 
								 | 
							
								drop table t1,t2;
							 | 
						||
| 
								 | 
							
								DROP TABLE IF EXISTS t1;
							 | 
						||
| 
								 | 
							
								DROP FUNCTION IF EXISTS f1;
							 | 
						||
| 
								 | 
							
								CREATE FUNCTION f1() RETURNS INT RETURN f1();
							 | 
						||
| 
								 | 
							
								CREATE TABLE t1 (i INT);
							 | 
						||
| 
								 | 
							
								INSERT INTO t1 VALUES (1);
							 | 
						||
| 
								 | 
							
								UPDATE t1 SET i = 3 WHERE f1();
							 | 
						||
| 
								 | 
							
								ERROR HY000: Recursive stored functions and triggers are not allowed.
							 | 
						||
| 
								 | 
							
								UPDATE t1 SET i = f1();
							 | 
						||
| 
								 | 
							
								ERROR HY000: Recursive stored functions and triggers are not allowed.
							 | 
						||
| 
								 | 
							
								DROP TABLE t1;
							 | 
						||
| 
								 | 
							
								DROP FUNCTION f1;
							 | 
						||
| 
								 | 
							
								End of 5.0 tests
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Bug #47919 assert in open_table during ALTER temporary table
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								CREATE TABLE t1 (f1 INTEGER AUTO_INCREMENT, PRIMARY KEY (f1));
							 | 
						||
| 
								 | 
							
								CREATE TEMPORARY TABLE t2 LIKE t1;
							 | 
						||
| 
								 | 
							
								INSERT INTO t1 VALUES (1);
							 | 
						||
| 
								 | 
							
								INSERT INTO t2 VALUES (1);
							 | 
						||
| 
								 | 
							
								ALTER TABLE t2 COMMENT = 'ABC';
							 | 
						||
| 
								 | 
							
								UPDATE t2, t1 SET t2.f1 = 2, t1.f1 = 9;
							 | 
						||
| 
								 | 
							
								ALTER TABLE t2 COMMENT = 'DEF';
							 | 
						||
| 
								 | 
							
								DROP TABLE t1, t2;
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Bug#50545: Single table UPDATE IGNORE crashes on join view in
							 | 
						||
| 
								 | 
							
								# sql_safe_updates mode.
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								CREATE TABLE t1 ( a INT, KEY( a ) );
							 | 
						||
| 
								 | 
							
								INSERT INTO t1 VALUES (0), (1);
							 | 
						||
| 
								 | 
							
								CREATE VIEW v1 AS SELECT t11.a, t12.a AS b FROM t1 t11, t1 t12;
							 | 
						||
| 
								 | 
							
								SET SESSION sql_safe_updates = 1;
							 | 
						||
| 
								 | 
							
								UPDATE IGNORE v1 SET a = 1;
							 | 
						||
| 
								 | 
							
								ERROR HY000: You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
							 | 
						||
| 
								 | 
							
								SET SESSION sql_safe_updates = DEFAULT;
							 | 
						||
| 
								 | 
							
								DROP TABLE t1;
							 | 
						||
| 
								 | 
							
								DROP VIEW v1;
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Bug#54734 assert in Diagnostics_area::set_ok_status
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								DROP TABLE IF EXISTS t1, not_exists;
							 | 
						||
| 
								 | 
							
								DROP FUNCTION IF EXISTS f1;
							 | 
						||
| 
								 | 
							
								DROP VIEW IF EXISTS v1;
							 | 
						||
| 
								 | 
							
								CREATE TABLE t1 (PRIMARY KEY(pk)) AS SELECT 1 AS pk;
							 | 
						||
| 
								 | 
							
								CREATE FUNCTION f1() RETURNS INTEGER RETURN (SELECT 1 FROM not_exists);
							 | 
						||
| 
								 | 
							
								CREATE VIEW v1 AS SELECT pk FROM t1 WHERE f1() = 13;
							 | 
						||
| 
								 | 
							
								UPDATE v1 SET pk = 7 WHERE pk > 0;
							 | 
						||
| 
								 | 
							
								ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
							 | 
						||
| 
								 | 
							
								DROP VIEW v1;
							 | 
						||
| 
								 | 
							
								DROP FUNCTION f1;
							 | 
						||
| 
								 | 
							
								DROP TABLE t1;
							 |