mirror of https://github.com/MariaDB/server
				
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							1894 lines
						
					
					
						
							54 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							1894 lines
						
					
					
						
							54 KiB
						
					
					
				| drop table if exists t1,t2; | |
| drop database if exists client_test_db; | |
| create table t1 | |
| ( | |
| a int primary key, | |
| b char(10) | |
| ); | |
| insert into t1 values (1,'one'); | |
| insert into t1 values (2,'two'); | |
| insert into t1 values (3,'three'); | |
| insert into t1 values (4,'four'); | |
| set @a=2; | |
| prepare stmt1 from 'select * from t1 where a <= ?'; | |
| execute stmt1 using @a; | |
| a	b | |
| 1	one | |
| 2	two | |
| set @a=3; | |
| execute stmt1 using @a; | |
| a	b | |
| 1	one | |
| 2	two | |
| 3	three | |
| deallocate prepare no_such_statement; | |
| ERROR HY000: Unknown prepared statement handler (no_such_statement) given to DEALLOCATE PREPARE | |
| execute stmt1; | |
| ERROR HY000: Incorrect arguments to EXECUTE | |
| prepare stmt2 from 'prepare nested_stmt from "select 1"'; | |
| ERROR HY000: This command is not supported in the prepared statement protocol yet | |
| prepare stmt2 from 'execute stmt1'; | |
| ERROR HY000: This command is not supported in the prepared statement protocol yet | |
| prepare stmt2 from 'deallocate prepare z'; | |
| ERROR HY000: This command is not supported in the prepared statement protocol yet | |
| prepare stmt3 from 'insert into t1 values (?,?)'; | |
| set @arg1=5, @arg2='five'; | |
| execute stmt3 using @arg1, @arg2; | |
| select * from t1 where a>3; | |
| a	b | |
| 4	four | |
| 5	five | |
| prepare stmt4 from 'update t1 set a=? where b=?'; | |
| set @arg1=55, @arg2='five'; | |
| execute stmt4 using @arg1, @arg2; | |
| select * from t1 where a>3; | |
| a	b | |
| 4	four | |
| 55	five | |
| prepare stmt4 from 'create table t2 (a int)'; | |
| execute stmt4; | |
| prepare stmt4 from 'drop table t2'; | |
| execute stmt4; | |
| execute stmt4; | |
| ERROR 42S02: Unknown table 't2' | |
| prepare stmt5 from 'select ? + a from t1'; | |
| set @a=1; | |
| execute stmt5 using @a; | |
| ? + a | |
| 2 | |
| 3 | |
| 4 | |
| 5 | |
| 56 | |
| execute stmt5 using @no_such_var; | |
| ? + a | |
| NULL | |
| NULL | |
| NULL | |
| NULL | |
| NULL | |
| set @nullvar=1; | |
| set @nullvar=NULL; | |
| execute stmt5 using @nullvar; | |
| ? + a | |
| NULL | |
| NULL | |
| NULL | |
| NULL | |
| NULL | |
| set @nullvar2=NULL; | |
| execute stmt5 using @nullvar2; | |
| ? + a | |
| NULL | |
| NULL | |
| NULL | |
| NULL | |
| NULL | |
| prepare stmt6 from 'select 1; select2'; | |
| ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select2' at line 1 | |
| prepare stmt6 from 'insert into t1 values (5,"five"); select2'; | |
| ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select2' at line 1 | |
| explain prepare stmt6 from 'insert into t1 values (5,"five"); select2'; | |
| ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from 'insert into t1 values (5,"five"); select2'' at line 1 | |
| create table t2 | |
| ( | |
| a int | |
| ); | |
| insert into t2 values (0); | |
| set @arg00=NULL ; | |
| prepare stmt1 from 'select 1 FROM t2 where a=?' ; | |
| execute stmt1 using @arg00 ; | |
| 1 | |
| prepare stmt1 from @nosuchvar; | |
| ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NULL' at line 1 | |
| set @ivar= 1234; | |
| prepare stmt1 from @ivar; | |
| ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1234' at line 1 | |
| set @fvar= 123.4567; | |
| prepare stmt1 from @fvar; | |
| ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '123.4567' at line 1 | |
| drop table t1,t2; | |
| deallocate prepare stmt3; | |
| deallocate prepare stmt4; | |
| deallocate prepare stmt5; | |
| PREPARE stmt1 FROM "select _utf8 'A' collate utf8_bin = ?"; | |
| set @var='A'; | |
| EXECUTE stmt1 USING @var; | |
| _utf8 'A' collate utf8_bin = ? | |
| 1 | |
| DEALLOCATE PREPARE stmt1; | |
| create table t1 (id int); | |
| prepare stmt1 from "select FOUND_ROWS()"; | |
| select SQL_CALC_FOUND_ROWS * from t1; | |
| id | |
| execute stmt1; | |
| FOUND_ROWS() | |
| 0 | |
| insert into t1 values (1); | |
| select SQL_CALC_FOUND_ROWS * from t1; | |
| id | |
| 1 | |
| execute stmt1; | |
| FOUND_ROWS() | |
| 1 | |
| execute stmt1; | |
| FOUND_ROWS() | |
| 1 | |
| deallocate prepare stmt1; | |
| drop table t1; | |
| create table t1  | |
| ( | |
| c1  tinyint, c2  smallint, c3  mediumint, c4  int, | |
| c5  integer, c6  bigint, c7  float, c8  double, | |
| c9  double precision, c10 real, c11 decimal(7, 4), c12 numeric(8, 4), | |
| c13 date, c14 datetime, c15 timestamp, c16 time, | |
| c17 year, c18 bit, c19 bool, c20 char, | |
| c21 char(10), c22 varchar(30), c23 tinyblob, c24 tinytext, | |
| c25 blob, c26 text, c27 mediumblob, c28 mediumtext, | |
| c29 longblob, c30 longtext, c31 enum('one', 'two', 'three'), | |
| c32 set('monday', 'tuesday', 'wednesday') | |
| ) engine = MYISAM ; | |
| create table t2 like t1; | |
| set @stmt= ' explain SELECT (SELECT SUM(c1 + c12 + 0.0) FROM t2 where (t1.c2 - 0e-3) = t2.c2 GROUP BY t1.c15 LIMIT 1) as scalar_s, exists (select 1.0e+0 from t2 where t2.c3 * 9.0000000000 = t1.c4) as exists_s, c5 * 4 in (select c6 + 0.3e+1 from t2) as in_s, (c7 - 4, c8 - 4) in (select c9 + 4.0, c10 + 40e-1 from t2) as in_row_s FROM t1, (select c25 x, c32 y from t2) tt WHERE x * 1 = c25 ' ; | |
| prepare stmt1 from @stmt ; | |
| execute stmt1 ; | |
| id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra | |
| 1	PRIMARY	NULL	NULL	NULL	NULL	NULL	NULL	NULL	Impossible WHERE noticed after reading const tables | |
| 6	DERIVED	NULL	NULL	NULL	NULL	NULL	NULL	NULL	no matching row in const table | |
| 5	DEPENDENT SUBQUERY	t2	system	NULL	NULL	NULL	NULL	0	const row not found | |
| 4	DEPENDENT SUBQUERY	t2	system	NULL	NULL	NULL	NULL	0	const row not found | |
| 3	DEPENDENT SUBQUERY	NULL	NULL	NULL	NULL	NULL	NULL	NULL	Impossible WHERE noticed after reading const tables | |
| 2	DEPENDENT SUBQUERY	NULL	NULL	NULL	NULL	NULL	NULL	NULL	Impossible WHERE noticed after reading const tables | |
| execute stmt1 ; | |
| id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra | |
| 1	PRIMARY	NULL	NULL	NULL	NULL	NULL	NULL	NULL	Impossible WHERE noticed after reading const tables | |
| 6	DERIVED	NULL	NULL	NULL	NULL	NULL	NULL	NULL	no matching row in const table | |
| 5	DEPENDENT SUBQUERY	t2	system	NULL	NULL	NULL	NULL	0	const row not found | |
| 4	DEPENDENT SUBQUERY	t2	system	NULL	NULL	NULL	NULL	0	const row not found | |
| 3	DEPENDENT SUBQUERY	NULL	NULL	NULL	NULL	NULL	NULL	NULL	Impossible WHERE noticed after reading const tables | |
| 2	DEPENDENT SUBQUERY	NULL	NULL	NULL	NULL	NULL	NULL	NULL	Impossible WHERE noticed after reading const tables | |
| explain SELECT (SELECT SUM(c1 + c12 + 0.0) FROM t2 where (t1.c2 - 0e-3) = t2.c2 GROUP BY t1.c15 LIMIT 1) as scalar_s, exists (select 1.0e+0 from t2 where t2.c3 * 9.0000000000 = t1.c4) as exists_s, c5 * 4 in (select c6 + 0.3e+1 from t2) as in_s, (c7 - 4, c8 - 4) in (select c9 + 4.0, c10 + 40e-1 from t2) as in_row_s FROM t1, (select c25 x, c32 y from t2) tt WHERE x * 1 = c25; | |
| id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra | |
| 1	PRIMARY	NULL	NULL	NULL	NULL	NULL	NULL	NULL	Impossible WHERE noticed after reading const tables | |
| 6	DERIVED	NULL	NULL	NULL	NULL	NULL	NULL	NULL	no matching row in const table | |
| 5	DEPENDENT SUBQUERY	t2	system	NULL	NULL	NULL	NULL	0	const row not found | |
| 4	DEPENDENT SUBQUERY	t2	system	NULL	NULL	NULL	NULL	0	const row not found | |
| 3	DEPENDENT SUBQUERY	NULL	NULL	NULL	NULL	NULL	NULL	NULL	Impossible WHERE noticed after reading const tables | |
| 2	DEPENDENT SUBQUERY	NULL	NULL	NULL	NULL	NULL	NULL	NULL	Impossible WHERE noticed after reading const tables | |
| deallocate prepare stmt1; | |
| drop tables t1,t2; | |
| set @arg00=1; | |
| prepare stmt1 from ' create table t1 (m int) as select 1 as m ' ; | |
| execute stmt1 ; | |
| select m from t1; | |
| m | |
| 1 | |
| drop table t1; | |
| prepare stmt1 from ' create table t1 (m int) as select ? as m ' ; | |
| execute stmt1 using @arg00; | |
| select m from t1; | |
| m | |
| 1 | |
| deallocate prepare stmt1; | |
| drop table t1; | |
| create table t1 (id int(10) unsigned NOT NULL default '0', | |
| name varchar(64) NOT NULL default '', | |
| PRIMARY KEY  (id), UNIQUE KEY `name` (`name`)); | |
| insert into t1 values (1,'1'),(2,'2'),(3,'3'),(4,'4'),(5,'5'),(6,'6'),(7,'7'); | |
| prepare stmt1 from 'select name from t1 where id=? or id=?'; | |
| set @id1=1,@id2=6; | |
| execute stmt1 using @id1, @id2; | |
| name | |
| 1 | |
| 6 | |
| select name from t1 where id=1 or id=6; | |
| name | |
| 1 | |
| 6 | |
| deallocate prepare stmt1; | |
| drop table t1; | |
| create table t1 ( a int primary key, b varchar(30)) engine = MYISAM ; | |
| prepare stmt1 from ' show table status from test like ''t1%'' '; | |
| execute stmt1; | |
| Name	Engine	Version	Row_format	Rows	Avg_row_length	Data_length	Max_data_length	Index_length	Data_free	Auto_increment	Create_time	Update_time	Check_time	Collation	Checksum	Create_options	Comment | |
| t1	MyISAM	10	Dynamic	0	0	0	4294967295	1024	0	NULL	#	#	#	latin1_swedish_ci	NULL		 | |
| show table status from test like 't1%' ; | |
| Name	Engine	Version	Row_format	Rows	Avg_row_length	Data_length	Max_data_length	Index_length	Data_free	Auto_increment	Create_time	Update_time	Check_time	Collation	Checksum	Create_options	Comment | |
| t1	MyISAM	10	Dynamic	0	0	0	4294967295	1024	0	NULL	#	#	#	latin1_swedish_ci	NULL		 | |
| deallocate prepare stmt1 ; | |
| drop table t1; | |
| create table t1(a varchar(2), b varchar(3)); | |
| prepare stmt1 from "select a, b from t1 where (not (a='aa' and b < 'zzz'))"; | |
| execute stmt1; | |
| a	b | |
| execute stmt1; | |
| a	b | |
| deallocate prepare stmt1; | |
| drop table t1; | |
| prepare stmt1 from "select 1 into @var"; | |
| execute stmt1; | |
| execute stmt1; | |
| prepare stmt1 from "create table t1 select 1 as i"; | |
| execute stmt1; | |
| drop table t1; | |
| execute stmt1; | |
| prepare stmt1 from "insert into t1 select i from t1"; | |
| execute stmt1; | |
| execute stmt1; | |
| prepare stmt1 from "select * from t1 into outfile 'f1.txt'"; | |
| execute stmt1; | |
| deallocate prepare stmt1; | |
| drop table t1; | |
| prepare stmt1 from 'select 1'; | |
| prepare STMT1 from 'select 2'; | |
| execute sTmT1; | |
| 2 | |
| 2 | |
| deallocate prepare StMt1; | |
| deallocate prepare Stmt1; | |
| ERROR HY000: Unknown prepared statement handler (Stmt1) given to DEALLOCATE PREPARE | |
| set names utf8; | |
| prepare `ü` from 'select 1234'; | |
| execute `ü` ; | |
| 1234 | |
| 1234 | |
| set names latin1; | |
| execute `ü`; | |
| 1234 | |
| 1234 | |
| deallocate prepare `ü`; | |
| set names default; | |
| create table t1 (a varchar(10)) charset=utf8; | |
| insert into t1 (a) values ('yahoo'); | |
| set character_set_connection=latin1; | |
| prepare stmt from 'select a from t1 where a like ?'; | |
| set @var='google'; | |
| execute stmt using @var; | |
| a | |
| execute stmt using @var; | |
| a | |
| deallocate prepare stmt; | |
| drop table t1; | |
| create table t1 (a bigint(20) not null primary key auto_increment); | |
| insert into t1 (a) values (null); | |
| select * from t1; | |
| a | |
| 1 | |
| prepare stmt from "insert into t1 (a) values (?)"; | |
| set @var=null; | |
| execute stmt using @var; | |
| select * from t1; | |
| a | |
| 1 | |
| 2 | |
| drop table t1; | |
| create table t1 (a timestamp not null); | |
| prepare stmt from "insert into t1 (a) values (?)"; | |
| execute stmt using @var; | |
| select * from t1; | |
| deallocate prepare stmt; | |
| drop table t1; | |
| prepare stmt from "select 'abc' like convert('abc' using utf8)"; | |
| execute stmt; | |
| 'abc' like convert('abc' using utf8) | |
| 1 | |
| execute stmt; | |
| 'abc' like convert('abc' using utf8) | |
| 1 | |
| deallocate prepare stmt; | |
| create table t1 ( a bigint ); | |
| prepare stmt from 'select a from t1 where a between ? and ?'; | |
| set @a=1; | |
| execute stmt using @a, @a; | |
| a | |
| execute stmt using @a, @a; | |
| a | |
| execute stmt using @a, @a; | |
| a | |
| drop table t1; | |
| deallocate prepare stmt; | |
| create table t1 (a int); | |
| prepare stmt from "select * from t1 where 1 > (1 in (SELECT * FROM t1))"; | |
| execute stmt; | |
| a | |
| execute stmt; | |
| a | |
| execute stmt; | |
| a | |
| drop table t1; | |
| deallocate prepare stmt; | |
| create table t1 (a int, b int); | |
| insert into t1 (a, b) values (1,1), (1,2), (2,1), (2,2); | |
| prepare stmt from | |
| "explain select * from t1 where t1.a=2 and t1.a=t1.b and t1.b > 1 + ?"; | |
| set @v=5; | |
| execute stmt using @v; | |
| id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra | |
| -	-	-	-	-	-	-	-	NULL	Impossible WHERE | |
| set @v=0; | |
| execute stmt using @v; | |
| id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra | |
| -	-	-	-	-	-	-	-	4	Using where | |
| set @v=5; | |
| execute stmt using @v; | |
| id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra | |
| -	-	-	-	-	-	-	-	NULL	Impossible WHERE | |
| drop table t1; | |
| deallocate prepare stmt; | |
| create table t1 (a int); | |
| insert into t1 (a) values (1), (2), (3), (4); | |
| set @precision=10000000000; | |
| select rand(),  | |
| cast(rand(10)*@precision as unsigned integer) from t1; | |
| rand()	cast(rand(10)*@precision as unsigned integer) | |
| -	6570515220 | |
| -	1282061302 | |
| -	6698761160 | |
| -	9647622201 | |
| prepare stmt from | |
| "select rand(),  | |
|         cast(rand(10)*@precision as unsigned integer), | |
|         cast(rand(?)*@precision as unsigned integer) from t1"; | |
| set @var=1; | |
| execute stmt using @var; | |
| rand()	cast(rand(10)*@precision as unsigned integer)	cast(rand(?)*@precision as unsigned integer) | |
| -	6570515220	- | |
| -	1282061302	- | |
| -	6698761160	- | |
| -	9647622201	- | |
| set @var=2; | |
| execute stmt using @var; | |
| rand()	cast(rand(10)*@precision as unsigned integer)	cast(rand(?)*@precision as unsigned integer) | |
| -	6570515220	6555866465 | |
| -	1282061302	1223466193 | |
| -	6698761160	6449731874 | |
| -	9647622201	8578261098 | |
| set @var=3; | |
| execute stmt using @var; | |
| rand()	cast(rand(10)*@precision as unsigned integer)	cast(rand(?)*@precision as unsigned integer) | |
| -	6570515220	9057697560 | |
| -	1282061302	3730790581 | |
| -	6698761160	1480860535 | |
| -	9647622201	6211931236 | |
| drop table t1; | |
| deallocate prepare stmt; | |
| create database mysqltest1; | |
| create table t1 (a int); | |
| create table mysqltest1.t1 (a int); | |
| select * from t1, mysqltest1.t1; | |
| a	a | |
| prepare stmt from "select * from t1, mysqltest1.t1"; | |
| execute stmt; | |
| a	a | |
| execute stmt; | |
| a	a | |
| execute stmt; | |
| a	a | |
| drop table t1; | |
| drop table mysqltest1.t1; | |
| drop database mysqltest1; | |
| deallocate prepare stmt; | |
| select '1.1' as a, '1.2' as a UNION SELECT '2.1', '2.2'; | |
| a	a | |
| 1.1	1.2 | |
| 2.1	2.2 | |
| prepare stmt from | |
| "select '1.1' as a, '1.2' as a UNION SELECT '2.1', '2.2'"; | |
| execute stmt; | |
| a	a | |
| 1.1	1.2 | |
| 2.1	2.2 | |
| execute stmt; | |
| a	a | |
| 1.1	1.2 | |
| 2.1	2.2 | |
| execute stmt; | |
| a	a | |
| 1.1	1.2 | |
| 2.1	2.2 | |
| deallocate prepare stmt; | |
| create table t1 (a int); | |
| insert into t1 values (1),(2),(3); | |
| create table t2 select * from t1; | |
| prepare stmt FROM 'create table t2 select * from t1'; | |
| drop table t2; | |
| execute stmt; | |
| drop table t2; | |
| execute stmt; | |
| execute stmt; | |
| ERROR 42S01: Table 't2' already exists | |
| drop table t2; | |
| execute stmt; | |
| drop table t1,t2; | |
| deallocate prepare stmt; | |
| create table t1 (a int); | |
| insert into t1 (a) values (1), (2), (3), (4), (5), (6), (7), (8), (9), (10); | |
| prepare stmt from "select sql_calc_found_rows * from t1 limit 2"; | |
| execute stmt; | |
| a | |
| 1 | |
| 2 | |
| select found_rows(); | |
| found_rows() | |
| 10 | |
| execute stmt; | |
| a | |
| 1 | |
| 2 | |
| select found_rows(); | |
| found_rows() | |
| 10 | |
| execute stmt; | |
| a | |
| 1 | |
| 2 | |
| select found_rows(); | |
| found_rows() | |
| 10 | |
| deallocate prepare stmt; | |
| drop table t1; | |
| CREATE TABLE t1 (N int, M tinyint); | |
| INSERT INTO t1 VALUES (1,0),(1,0),(2,0),(2,0),(3,0); | |
| PREPARE stmt FROM 'UPDATE t1 AS P1 INNER JOIN (SELECT N FROM t1 GROUP BY N HAVING COUNT(M) > 1) AS P2 ON P1.N = P2.N SET P1.M = 2'; | |
| EXECUTE stmt; | |
| DEALLOCATE PREPARE stmt; | |
| DROP TABLE t1; | |
| prepare stmt from "select ? is null, ? is not null, ?"; | |
| select @no_such_var is null, @no_such_var is not null, @no_such_var; | |
| @no_such_var is null	@no_such_var is not null	@no_such_var | |
| 1	0	NULL | |
| execute stmt using @no_such_var, @no_such_var, @no_such_var; | |
| ? is null	? is not null	? | |
| 1	0	NULL | |
| set @var='abc'; | |
| select @var is null, @var is not null, @var; | |
| @var is null	@var is not null	@var | |
| 0	1	abc | |
| execute stmt using @var, @var, @var; | |
| ? is null	? is not null	? | |
| 0	1	abc | |
| set @var=null; | |
| select @var is null, @var is not null, @var; | |
| @var is null	@var is not null	@var | |
| 1	0	NULL | |
| execute stmt using @var, @var, @var; | |
| ? is null	? is not null	? | |
| 1	0	NULL | |
| create table t1 (pnum char(3)); | |
| create table t2 (pnum char(3)); | |
| prepare stmt from "select pnum from t2 having pnum in (select 'p1' from t1)"; | |
| execute stmt; | |
| pnum | |
| execute stmt; | |
| pnum | |
| execute stmt; | |
| pnum | |
| deallocate prepare stmt; | |
| drop table t1, t2; | |
| drop table if exists t1; | |
| create temporary table if not exists t1 (a1 int); | |
| prepare stmt from "delete t1 from t1 where (cast(a1/3 as unsigned) * 3) = a1"; | |
| drop temporary table t1; | |
| create temporary table if not exists t1 (a1 int); | |
| execute stmt; | |
| drop temporary table t1; | |
| create temporary table if not exists t1 (a1 int); | |
| execute stmt; | |
| drop temporary table t1; | |
| create temporary table if not exists t1 (a1 int); | |
| execute stmt; | |
| drop temporary table t1; | |
| deallocate prepare stmt; | |
| create table t1 (a varchar(20)); | |
| insert into t1 values ('foo'); | |
| prepare stmt FROM 'SELECT char_length (a) FROM t1'; | |
| ERROR 42000: FUNCTION test.char_length does not exist | |
| drop table t1; | |
| prepare stmt from "SELECT SQL_CALC_FOUND_ROWS 'foo' UNION SELECT 'bar' LIMIT 0"; | |
| execute stmt; | |
| foo | |
| SELECT FOUND_ROWS(); | |
| FOUND_ROWS() | |
| 2 | |
| execute stmt; | |
| foo | |
| SELECT FOUND_ROWS(); | |
| FOUND_ROWS() | |
| 2 | |
| deallocate prepare stmt; | |
| drop table if exists t1; | |
| Warnings: | |
| Note	1051	Unknown table 't1' | |
| create table t1 (c1 int(11) not null, c2 int(11) not null, | |
| primary key  (c1,c2), key c2 (c2), key c1 (c1)); | |
| insert into t1 values (200887, 860); | |
| insert into t1 values (200887, 200887); | |
| select * from t1 where (c1=200887 and c2=200887) or c2=860; | |
| c1	c2 | |
| 200887	860 | |
| 200887	200887 | |
| prepare stmt from | |
| "select * from t1 where (c1=200887 and c2=200887) or c2=860"; | |
| execute stmt; | |
| c1	c2 | |
| 200887	860 | |
| 200887	200887 | |
| prepare stmt from | |
| "select * from t1 where (c1=200887 and c2=?) or c2=?"; | |
| set @a=200887, @b=860; | |
| execute stmt using @a, @b; | |
| c1	c2 | |
| 200887	860 | |
| 200887	200887 | |
| deallocate prepare stmt; | |
| drop table t1; | |
| create table t1 ( | |
| id bigint(20) not null auto_increment, | |
| code varchar(20) character set utf8 collate utf8_bin not null default '', | |
| company_name varchar(250) character set utf8 collate utf8_bin default null, | |
| setup_mode tinyint(4) default null, | |
| start_date datetime default null, | |
| primary key  (id), unique key code (code) | |
| ); | |
| create table t2 ( | |
| id bigint(20) not null auto_increment, | |
| email varchar(250) character set utf8 collate utf8_bin default null, | |
| name varchar(250) character set utf8 collate utf8_bin default null, | |
| t1_id bigint(20) default null, | |
| password varchar(250) character set utf8 collate utf8_bin default null, | |
| primary_contact tinyint(4) not null default '0', | |
| email_opt_in tinyint(4) not null default '1', | |
| primary key  (id), unique key email (email), key t1_id (t1_id), | |
| constraint t2_fk1 foreign key (t1_id) references t1 (id) | |
| ); | |
| insert into t1 values | |
| (1, 'demo', 'demo s', 0, current_date()), | |
| (2, 'code2', 'name 2', 0, current_date()), | |
| (3, 'code3', 'name 3', 0, current_date()); | |
| insert into t2 values | |
| (2, 'email1', 'name1', 3, 'password1', 0, 0), | |
| (3, 'email2', 'name1', 1, 'password2', 1, 0), | |
| (5, 'email3', 'name3', 2, 'password3', 0, 0); | |
| prepare stmt from 'select t2.id from t2, t1 where (t1.id=? and t2.t1_id=t1.id)'; | |
| set @a=1; | |
| execute stmt using @a; | |
| id | |
| 3 | |
| select t2.id from t2, t1 where (t1.id=1 and t2.t1_id=t1.id); | |
| id | |
| 3 | |
| deallocate prepare stmt; | |
| drop table t1, t2; | |
| create table t1 (id int); | |
| prepare stmt from "insert into t1 (id) select id from t1 union select id from t1"; | |
| execute stmt; | |
| execute stmt; | |
| deallocate prepare stmt; | |
| drop table t1; | |
| create table t1 ( | |
| id int(11) unsigned not null primary key auto_increment, | |
| partner_id varchar(35) not null, | |
| t1_status_id int(10) unsigned | |
| ); | |
| insert into t1 values ("1", "partner1", "10"), ("2", "partner2", "10"), | |
| ("3", "partner3", "10"), ("4", "partner4", "10"); | |
| create table t2 ( | |
| id int(11) unsigned not null default '0', | |
| t1_line_id int(11) unsigned not null default '0', | |
| article_id varchar(20), | |
| sequence int(11) not null default '0', | |
| primary key  (id,t1_line_id) | |
| ); | |
| insert into t2 values ("1", "1", "sup", "0"), ("2", "1", "sup", "1"), | |
| ("2", "2", "sup", "2"), ("2", "3", "sup", "3"), | |
| ("2", "4", "imp", "4"), ("3", "1", "sup", "0"), | |
| ("4", "1", "sup", "0"); | |
| create table t3 ( | |
| id int(11) not null default '0', | |
| preceeding_id int(11) not null default '0', | |
| primary key  (id,preceeding_id) | |
| ); | |
| create table t4 ( | |
| user_id varchar(50) not null, | |
| article_id varchar(20) not null, | |
| primary key  (user_id,article_id) | |
| ); | |
| insert into t4 values("nicke", "imp"); | |
| prepare stmt from | |
| 'select distinct t1.partner_id | |
| from t1 left join t3 on t1.id = t3.id | |
|      left join t1 pp on pp.id = t3.preceeding_id | |
| where | |
|   exists ( | |
|     select * | |
|     from t2 as pl_inner | |
|     where pl_inner.id = t1.id | |
|     and pl_inner.sequence <= ( | |
|       select min(sequence) from t2 pl_seqnr | |
|       where pl_seqnr.id = t1.id | |
|     ) | |
|     and exists ( | |
|       select * from t4 | |
|       where t4.article_id = pl_inner.article_id | |
|       and t4.user_id = ? | |
|     ) | |
|   ) | |
|   and t1.id = ? | |
| group by t1.id | |
| having count(pp.id) = 0'; | |
| set @user_id = 'nicke'; | |
| set @id = '2'; | |
| execute stmt using @user_id, @id; | |
| partner_id | |
| execute stmt using @user_id, @id; | |
| partner_id | |
| deallocate prepare stmt; | |
| drop table t1, t2, t3, t4; | |
| prepare stmt from 'select ?=?'; | |
| set @a='CHRISTINE           '; | |
| set @b='CHRISTINE'; | |
| execute stmt using @a, @b; | |
| ?=? | |
| 1 | |
| execute stmt using @a, @b; | |
| ?=? | |
| 1 | |
| set @a=1, @b=2; | |
| execute stmt using @a, @b; | |
| ?=? | |
| 0 | |
| set @a='CHRISTINE           '; | |
| set @b='CHRISTINE'; | |
| execute stmt using @a, @b; | |
| ?=? | |
| 1 | |
| deallocate prepare stmt; | |
| create table t1 (a int); | |
| prepare stmt from "select ??"; | |
| ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 1 | |
| prepare stmt from "select ?FROM t1"; | |
| ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?FROM t1' at line 1 | |
| prepare stmt from "select FROM t1 WHERE?=1"; | |
| ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM t1 WHERE?=1' at line 1 | |
| prepare stmt from "update t1 set a=a+?WHERE 1"; | |
| ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?WHERE 1' at line 1 | |
| select ?; | |
| ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 1 | |
| select ??; | |
| ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '??' at line 1 | |
| select ? from t1; | |
| ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? from t1' at line 1 | |
| drop table t1; | |
| prepare stmt from "select @@time_zone"; | |
| execute stmt; | |
| @@time_zone | |
| SYSTEM | |
| set @@time_zone:='Japan'; | |
| execute stmt; | |
| @@time_zone | |
| Japan | |
| prepare stmt from "select @@tx_isolation"; | |
| execute stmt; | |
| @@tx_isolation | |
| REPEATABLE-READ | |
| set transaction isolation level read committed; | |
| execute stmt; | |
| @@tx_isolation | |
| READ-COMMITTED | |
| set transaction isolation level serializable; | |
| execute stmt; | |
| @@tx_isolation | |
| SERIALIZABLE | |
| set @@tx_isolation=default; | |
| execute stmt; | |
| @@tx_isolation | |
| REPEATABLE-READ | |
| deallocate prepare stmt; | |
| prepare stmt from "create temporary table t1 (letter enum('','a','b','c') | |
| not null)"; | |
| execute stmt; | |
| drop table t1; | |
| execute stmt; | |
| drop table t1; | |
| execute stmt; | |
| drop table t1; | |
| set names latin1; | |
| prepare stmt from "create table t1 (a enum('test') default 'test') | |
|  character set utf8"; | |
| execute stmt; | |
| drop table t1; | |
| execute stmt; | |
| drop table t1; | |
| execute stmt; | |
| drop table t1; | |
| set names default; | |
| deallocate prepare stmt; | |
| create table t1 ( | |
| word_id mediumint(8) unsigned not null default '0', | |
| formatted varchar(20) not null default '' | |
| ); | |
| insert into t1 values | |
| (80,'pendant'), (475,'pretendants'), (989,'tendances'), | |
| (1019,'cependant'),(1022,'abondance'),(1205,'independants'), | |
| (13,'lessiver'),(25,'lambiner'),(46,'situer'),(71,'terminer'), | |
| (82,'decrocher'); | |
| select count(*) from t1 where formatted like '%NDAN%'; | |
| count(*) | |
| 6 | |
| select count(*) from t1 where formatted like '%ER'; | |
| count(*) | |
| 5 | |
| prepare stmt from "select count(*) from t1 where formatted like ?"; | |
| set @like="%NDAN%"; | |
| execute stmt using @like; | |
| count(*) | |
| 6 | |
| set @like="%ER"; | |
| execute stmt using @like; | |
| count(*) | |
| 5 | |
| set @like="%NDAN%"; | |
| execute stmt using @like; | |
| count(*) | |
| 6 | |
| set @like="%ER"; | |
| execute stmt using @like; | |
| count(*) | |
| 5 | |
| deallocate prepare stmt; | |
| drop table t1; | |
| prepare stmt from 'create table t1 (a varchar(10) character set utf8)'; | |
| execute stmt; | |
| insert into t1 (a) values (repeat('a', 20)); | |
| select length(a) from t1; | |
| length(a) | |
| 10 | |
| drop table t1; | |
| execute stmt; | |
| insert into t1 (a) values (repeat('a', 20)); | |
| select length(a) from t1; | |
| length(a) | |
| 10 | |
| drop table t1; | |
| deallocate prepare stmt; | |
| create table t1 (col1 integer, col2 integer); | |
| insert into t1 values(100,100),(101,101),(102,102),(103,103); | |
| prepare stmt from 'select col1, col2 from t1 where (col1, col2) in ((?,?))'; | |
| set @a=100, @b=100; | |
| execute stmt using @a,@b; | |
| col1	col2 | |
| 100	100 | |
| set @a=101, @b=101; | |
| execute stmt using @a,@b; | |
| col1	col2 | |
| 101	101 | |
| set @a=102, @b=102; | |
| execute stmt using @a,@b; | |
| col1	col2 | |
| 102	102 | |
| set @a=102, @b=103; | |
| execute stmt using @a,@b; | |
| col1	col2 | |
| deallocate prepare stmt; | |
| drop table t1; | |
| set @old_max_prepared_stmt_count= @@max_prepared_stmt_count; | |
| show variables like 'max_prepared_stmt_count'; | |
| Variable_name	Value | |
| max_prepared_stmt_count	16382 | |
| show status like 'prepared_stmt_count'; | |
| Variable_name	Value | |
| Prepared_stmt_count	0 | |
| select @@max_prepared_stmt_count; | |
| @@max_prepared_stmt_count | |
| 16382 | |
| set global max_prepared_stmt_count=-1; | |
| select @@max_prepared_stmt_count; | |
| @@max_prepared_stmt_count | |
| 0 | |
| set global max_prepared_stmt_count=10000000000000000; | |
| Warnings: | |
| Warning	1292	Truncated incorrect max_prepared_stmt_count value: '10000000000000000' | |
| select @@max_prepared_stmt_count; | |
| @@max_prepared_stmt_count | |
| 1048576 | |
| set global max_prepared_stmt_count=default; | |
| select @@max_prepared_stmt_count; | |
| @@max_prepared_stmt_count | |
| 16382 | |
| set @@max_prepared_stmt_count=1; | |
| ERROR HY000: Variable 'max_prepared_stmt_count' is a GLOBAL variable and should be set with SET GLOBAL | |
| set max_prepared_stmt_count=1; | |
| ERROR HY000: Variable 'max_prepared_stmt_count' is a GLOBAL variable and should be set with SET GLOBAL | |
| set local max_prepared_stmt_count=1; | |
| ERROR HY000: Variable 'max_prepared_stmt_count' is a GLOBAL variable and should be set with SET GLOBAL | |
| set global max_prepared_stmt_count=1; | |
| select @@max_prepared_stmt_count; | |
| @@max_prepared_stmt_count | |
| 1 | |
| set global max_prepared_stmt_count=0; | |
| select @@max_prepared_stmt_count; | |
| @@max_prepared_stmt_count | |
| 0 | |
| show status like 'prepared_stmt_count'; | |
| Variable_name	Value | |
| Prepared_stmt_count	0 | |
| prepare stmt from "select 1"; | |
| ERROR 42000: Can't create more than max_prepared_stmt_count statements (current value: 0) | |
| show status like 'prepared_stmt_count'; | |
| Variable_name	Value | |
| Prepared_stmt_count	0 | |
| set global max_prepared_stmt_count=1; | |
| prepare stmt from "select 1"; | |
| show status like 'prepared_stmt_count'; | |
| Variable_name	Value | |
| Prepared_stmt_count	1 | |
| prepare stmt1 from "select 1"; | |
| ERROR 42000: Can't create more than max_prepared_stmt_count statements (current value: 1) | |
| show status like 'prepared_stmt_count'; | |
| Variable_name	Value | |
| Prepared_stmt_count	1 | |
| deallocate prepare stmt; | |
| show status like 'prepared_stmt_count'; | |
| Variable_name	Value | |
| Prepared_stmt_count	0 | |
| prepare stmt from "select 1"; | |
| show status like 'prepared_stmt_count'; | |
| Variable_name	Value | |
| Prepared_stmt_count	1 | |
| prepare stmt from "select 2"; | |
| show status like 'prepared_stmt_count'; | |
| Variable_name	Value | |
| Prepared_stmt_count	1 | |
| show status like 'prepared_stmt_count'; | |
| Variable_name	Value | |
| Prepared_stmt_count	1 | |
| select @@max_prepared_stmt_count; | |
| @@max_prepared_stmt_count | |
| 1 | |
| set global max_prepared_stmt_count=0; | |
| prepare stmt from "select 1"; | |
| ERROR 42000: Can't create more than max_prepared_stmt_count statements (current value: 0) | |
| execute stmt; | |
| ERROR HY000: Unknown prepared statement handler (stmt) given to EXECUTE | |
| show status like 'prepared_stmt_count'; | |
| Variable_name	Value | |
| Prepared_stmt_count	0 | |
| prepare stmt from "select 1"; | |
| ERROR 42000: Can't create more than max_prepared_stmt_count statements (current value: 0) | |
| show status like 'prepared_stmt_count'; | |
| Variable_name	Value | |
| Prepared_stmt_count	0 | |
| set global max_prepared_stmt_count=3; | |
| select @@max_prepared_stmt_count; | |
| @@max_prepared_stmt_count | |
| 3 | |
| show status like 'prepared_stmt_count'; | |
| Variable_name	Value | |
| Prepared_stmt_count	0 | |
| prepare stmt from "select 1"; | |
| prepare stmt from "select 2"; | |
| prepare stmt1 from "select 3"; | |
| prepare stmt2 from "select 4"; | |
| ERROR 42000: Can't create more than max_prepared_stmt_count statements (current value: 3) | |
| prepare stmt2 from "select 4"; | |
| ERROR 42000: Can't create more than max_prepared_stmt_count statements (current value: 3) | |
| select @@max_prepared_stmt_count; | |
| @@max_prepared_stmt_count | |
| 3 | |
| show status like 'prepared_stmt_count'; | |
| Variable_name	Value | |
| Prepared_stmt_count	3 | |
| deallocate prepare stmt; | |
| set global max_prepared_stmt_count= @old_max_prepared_stmt_count; | |
| drop table if exists t1; | |
| create temporary table if not exists t1 (a1 int); | |
| prepare stmt from "delete t1 from t1 where (cast(a1/3 as unsigned) * 3) = a1"; | |
| drop temporary table t1; | |
| create temporary table if not exists t1 (a1 int); | |
| execute stmt; | |
| drop temporary table t1; | |
| create temporary table if not exists t1 (a1 int); | |
| execute stmt; | |
| drop temporary table t1; | |
| create temporary table if not exists t1 (a1 int); | |
| execute stmt; | |
| drop temporary table t1; | |
| deallocate prepare stmt; | |
| CREATE TABLE t1( | |
| ID int(10) unsigned NOT NULL auto_increment, | |
| Member_ID varchar(15) NOT NULL default '', | |
| Action varchar(12) NOT NULL, | |
| Action_Date datetime NOT NULL, | |
| Track varchar(15) default NULL, | |
| User varchar(12) default NULL, | |
| Date_Updated timestamp NOT NULL default CURRENT_TIMESTAMP on update | |
| CURRENT_TIMESTAMP, | |
| PRIMARY KEY (ID), | |
| KEY Action (Action), | |
| KEY Action_Date (Action_Date) | |
| ); | |
| INSERT INTO t1(Member_ID, Action, Action_Date, Track) VALUES | |
| ('111111', 'Disenrolled', '2006-03-01', 'CAD' ), | |
| ('111111', 'Enrolled', '2006-03-01', 'CAD' ), | |
| ('111111', 'Disenrolled', '2006-07-03', 'CAD' ), | |
| ('222222', 'Enrolled', '2006-03-07', 'CAD' ), | |
| ('222222', 'Enrolled', '2006-03-07', 'CHF' ), | |
| ('222222', 'Disenrolled', '2006-08-02', 'CHF' ), | |
| ('333333', 'Enrolled', '2006-03-01', 'CAD' ), | |
| ('333333', 'Disenrolled', '2006-03-01', 'CAD' ), | |
| ('444444', 'Enrolled', '2006-03-01', 'CAD' ), | |
| ('555555', 'Disenrolled', '2006-03-01', 'CAD' ), | |
| ('555555', 'Enrolled', '2006-07-21', 'CAD' ), | |
| ('555555', 'Disenrolled', '2006-03-01', 'CHF' ), | |
| ('666666', 'Enrolled', '2006-02-09', 'CAD' ), | |
| ('666666', 'Enrolled', '2006-05-12', 'CHF' ), | |
| ('666666', 'Disenrolled', '2006-06-01', 'CAD' ); | |
| PREPARE STMT FROM | |
| "SELECT GROUP_CONCAT(Track SEPARATOR ', ') FROM t1 | |
|   WHERE Member_ID=? AND Action='Enrolled' AND | |
|         (Track,Action_Date) IN (SELECT Track, MAX(Action_Date) FROM t1 | |
|                                   WHERE Member_ID=? | |
|                                     GROUP BY Track  | |
|                                       HAVING Track>='CAD' AND | |
|                                              MAX(Action_Date)>'2006-03-01')"; | |
| SET @id='111111'; | |
| EXECUTE STMT USING @id,@id; | |
| GROUP_CONCAT(Track SEPARATOR ', ') | |
| NULL | |
| SET @id='222222'; | |
| EXECUTE STMT USING @id,@id; | |
| GROUP_CONCAT(Track SEPARATOR ', ') | |
| CAD | |
| DEALLOCATE PREPARE STMT; | |
| DROP TABLE t1; | |
| DROP TABLE IF EXISTS t1; | |
| CREATE TABLE t1 (i INT, INDEX(i)); | |
| INSERT INTO t1 VALUES (1); | |
| PREPARE stmt FROM "SELECT (COUNT(i) = 1), COUNT(i) FROM t1 WHERE i = ?"; | |
| SET @a = 0; | |
| EXECUTE stmt USING @a; | |
| (COUNT(i) = 1)	COUNT(i) | |
| 0	0 | |
| SET @a = 1; | |
| EXECUTE stmt USING @a; | |
| (COUNT(i) = 1)	COUNT(i) | |
| 1	1 | |
| SET @a = 0; | |
| EXECUTE stmt USING @a; | |
| (COUNT(i) = 1)	COUNT(i) | |
| 0	0 | |
| PREPARE stmt FROM "SELECT (AVG(i) = 1), AVG(i) FROM t1 WHERE i = ?"; | |
| SET @a = 0; | |
| EXECUTE stmt USING @a; | |
| (AVG(i) = 1)	AVG(i) | |
| NULL	NULL | |
| SET @a = 1; | |
| EXECUTE stmt USING @a; | |
| (AVG(i) = 1)	AVG(i) | |
| 1	1.0000 | |
| SET @a = 0; | |
| EXECUTE stmt USING @a; | |
| (AVG(i) = 1)	AVG(i) | |
| NULL	NULL | |
| PREPARE stmt FROM "SELECT (VARIANCE(i) = 1), VARIANCE(i) FROM t1 WHERE i = ?"; | |
| SET @a = 0; | |
| EXECUTE stmt USING @a; | |
| (VARIANCE(i) = 1)	VARIANCE(i) | |
| NULL	NULL | |
| SET @a = 1; | |
| EXECUTE stmt USING @a; | |
| (VARIANCE(i) = 1)	VARIANCE(i) | |
| 0	0.0000 | |
| SET @a = 0; | |
| EXECUTE stmt USING @a; | |
| (VARIANCE(i) = 1)	VARIANCE(i) | |
| NULL	NULL | |
| PREPARE stmt FROM "SELECT (STDDEV(i) = 1), STDDEV(i) FROM t1 WHERE i = ?"; | |
| SET @a = 0; | |
| EXECUTE stmt USING @a; | |
| (STDDEV(i) = 1)	STDDEV(i) | |
| NULL	NULL | |
| SET @a = 1; | |
| EXECUTE stmt USING @a; | |
| (STDDEV(i) = 1)	STDDEV(i) | |
| 0	0.0000 | |
| SET @a = 0; | |
| EXECUTE stmt USING @a; | |
| (STDDEV(i) = 1)	STDDEV(i) | |
| NULL	NULL | |
| PREPARE stmt FROM "SELECT (BIT_OR(i) = 1), BIT_OR(i) FROM t1 WHERE i = ?"; | |
| SET @a = 0; | |
| EXECUTE stmt USING @a; | |
| (BIT_OR(i) = 1)	BIT_OR(i) | |
| 0	0 | |
| SET @a = 1; | |
| EXECUTE stmt USING @a; | |
| (BIT_OR(i) = 1)	BIT_OR(i) | |
| 1	1 | |
| SET @a = 0; | |
| EXECUTE stmt USING @a; | |
| (BIT_OR(i) = 1)	BIT_OR(i) | |
| 0	0 | |
| PREPARE stmt FROM "SELECT (BIT_AND(i) = 1), BIT_AND(i) FROM t1 WHERE i = ?"; | |
| SET @a = 0; | |
| EXECUTE stmt USING @a; | |
| (BIT_AND(i) = 1)	BIT_AND(i) | |
| 0	18446744073709551615 | |
| SET @a = 1; | |
| EXECUTE stmt USING @a; | |
| (BIT_AND(i) = 1)	BIT_AND(i) | |
| 1	1 | |
| SET @a = 0; | |
| EXECUTE stmt USING @a; | |
| (BIT_AND(i) = 1)	BIT_AND(i) | |
| 0	18446744073709551615 | |
| PREPARE stmt FROM "SELECT (BIT_XOR(i) = 1), BIT_XOR(i) FROM t1 WHERE i = ?"; | |
| SET @a = 0; | |
| EXECUTE stmt USING @a; | |
| (BIT_XOR(i) = 1)	BIT_XOR(i) | |
| 0	0 | |
| SET @a = 1; | |
| EXECUTE stmt USING @a; | |
| (BIT_XOR(i) = 1)	BIT_XOR(i) | |
| 1	1 | |
| SET @a = 0; | |
| EXECUTE stmt USING @a; | |
| (BIT_XOR(i) = 1)	BIT_XOR(i) | |
| 0	0 | |
| DEALLOCATE PREPARE stmt; | |
| DROP TABLE t1; | |
| DROP TABLE IF EXISTS t1, t2; | |
| CREATE TABLE t1 (i INT); | |
| PREPARE st_19182 | |
| FROM "CREATE TABLE t2 (i INT, j INT, KEY (i), KEY(j)) SELECT i FROM t1"; | |
| EXECUTE st_19182; | |
| DESC t2; | |
| Field	Type	Null	Key	Default	Extra | |
| j	int(11)	YES	MUL	NULL	 | |
| i	int(11)	YES	MUL	NULL	 | |
| DROP TABLE t2; | |
| EXECUTE st_19182; | |
| DESC t2; | |
| Field	Type	Null	Key	Default	Extra | |
| j	int(11)	YES	MUL	NULL	 | |
| i	int(11)	YES	MUL	NULL	 | |
| DEALLOCATE PREPARE st_19182; | |
| DROP TABLE t2, t1; | |
| drop database if exists mysqltest; | |
| drop table if exists t1, t2; | |
| create database mysqltest character set utf8; | |
| prepare stmt1 from "create table mysqltest.t1 (c char(10))"; | |
| prepare stmt2 from "create table mysqltest.t2 select 'test'"; | |
| execute stmt1; | |
| execute stmt2; | |
| show create table mysqltest.t1; | |
| Table	Create Table | |
| t1	CREATE TABLE `t1` ( | |
|   `c` char(10) default NULL | |
| ) ENGINE=MyISAM DEFAULT CHARSET=utf8 | |
| show create table mysqltest.t2; | |
| Table	Create Table | |
| t2	CREATE TABLE `t2` ( | |
|   `test` varchar(4) character set latin1 NOT NULL default '' | |
| ) ENGINE=MyISAM DEFAULT CHARSET=utf8 | |
| drop table mysqltest.t1; | |
| drop table mysqltest.t2; | |
| alter database mysqltest character set latin1; | |
| execute stmt1; | |
| execute stmt2; | |
| show create table mysqltest.t1; | |
| Table	Create Table | |
| t1	CREATE TABLE `t1` ( | |
|   `c` char(10) character set utf8 default NULL | |
| ) ENGINE=MyISAM DEFAULT CHARSET=latin1 | |
| show create table mysqltest.t2; | |
| Table	Create Table | |
| t2	CREATE TABLE `t2` ( | |
|   `test` varchar(4) NOT NULL default '' | |
| ) ENGINE=MyISAM DEFAULT CHARSET=latin1 | |
| drop database mysqltest; | |
| deallocate prepare stmt1; | |
| deallocate prepare stmt2; | |
| execute stmt; | |
| show create table t1; | |
| drop table t1; | |
| execute stmt; | |
| show create table t1; | |
| drop table t1; | |
| deallocate prepare stmt; | |
| CREATE TABLE t1(a int); | |
| INSERT INTO t1 VALUES (2), (3), (1); | |
| PREPARE st1 FROM | |
| '(SELECT a FROM t1) UNION (SELECT a+10 FROM t1) ORDER BY RAND()*0+a'; | |
| EXECUTE st1; | |
| a | |
| 1 | |
| 2 | |
| 3 | |
| 11 | |
| 12 | |
| 13 | |
| EXECUTE st1; | |
| a | |
| 1 | |
| 2 | |
| 3 | |
| 11 | |
| 12 | |
| 13 | |
| DEALLOCATE PREPARE st1; | |
| DROP TABLE t1; | |
| create table t1 (a int, b tinyint); | |
| prepare st1 from 'update t1 set b= (str_to_date(a, a))'; | |
| execute st1; | |
| deallocate prepare st1; | |
| drop table t1; | |
| End of 4.1 tests. | |
| create table t1 (a varchar(20)); | |
| insert into t1 values ('foo'); | |
| prepare stmt FROM 'SELECT char_length (a) FROM t1'; | |
| ERROR 42000: FUNCTION test.char_length does not exist | |
| drop table t1; | |
| create table t1 (a char(3) not null, b char(3) not null, | |
| c char(3) not null, primary key  (a, b, c)); | |
| create table t2 like t1; | |
| prepare stmt from | |
| "select t1.a from (t1 left outer join t2 on t2.a=1 and t1.b=t2.b) | |
|   where t1.a=1"; | |
| execute stmt; | |
| a | |
| execute stmt; | |
| a | |
| execute stmt; | |
| a | |
| prepare stmt from | |
| "select t1.a, t1.b, t1.c, t2.a, t2.b, t2.c from | |
| (t1 left outer join t2 on t2.a=? and t1.b=t2.b) | |
| left outer join t2 t3 on t3.a=? where t1.a=?"; | |
| set @a:=1, @b:=1, @c:=1; | |
| execute stmt using @a, @b, @c; | |
| a	b	c	a	b	c | |
| execute stmt using @a, @b, @c; | |
| a	b	c	a	b	c | |
| execute stmt using @a, @b, @c; | |
| a	b	c	a	b	c | |
| deallocate prepare stmt; | |
| drop table t1,t2; | |
| SET @aux= "SELECT COUNT(*) | |
|                 FROM INFORMATION_SCHEMA.COLUMNS A, | |
|                 INFORMATION_SCHEMA.COLUMNS B | |
|                 WHERE A.TABLE_SCHEMA = B.TABLE_SCHEMA | |
|                 AND A.TABLE_NAME = B.TABLE_NAME | |
|                 AND A.COLUMN_NAME = B.COLUMN_NAME AND | |
|                 A.TABLE_NAME = 'user'"; | |
| prepare my_stmt from @aux; | |
| execute my_stmt; | |
| COUNT(*) | |
| 37 | |
| execute my_stmt; | |
| COUNT(*) | |
| 37 | |
| execute my_stmt; | |
| COUNT(*) | |
| 37 | |
| deallocate prepare my_stmt; | |
| drop procedure if exists p1| | |
| drop table if exists t1| | |
| create table t1 (id int)| | |
| insert into t1 values(1)| | |
| create procedure p1(a int, b int) | |
| begin | |
| declare c int; | |
| select max(id)+1 into c from t1; | |
| insert into t1 select a+b; | |
| insert into t1 select a-b; | |
| insert into t1 select a-c; | |
| end| | |
| set @a= 3, @b= 4| | |
| prepare stmt from "call p1(?, ?)"| | |
| execute stmt using @a, @b| | |
| execute stmt using @a, @b| | |
| select * from t1| | |
| id | |
| 1 | |
| 7 | |
| -1 | |
| 1 | |
| 7 | |
| -1 | |
| -5 | |
| deallocate prepare stmt| | |
| drop procedure p1| | |
| drop table t1| | |
| create table t1 (a int); | |
| insert into t1 (a) values (1), (2), (3), (4), (5), (6), (7), (8), (9), (10); | |
| prepare stmt from "select * from t1 limit ?, ?"; | |
| set @offset=0, @limit=1; | |
| execute stmt using @offset, @limit; | |
| a | |
| 1 | |
| select * from t1 limit 0, 1; | |
| a | |
| 1 | |
| set @offset=3, @limit=2; | |
| execute stmt using @offset, @limit; | |
| a | |
| 4 | |
| 5 | |
| select * from t1 limit 3, 2; | |
| a | |
| 4 | |
| 5 | |
| prepare stmt from "select * from t1 limit ?"; | |
| execute stmt using @limit; | |
| a | |
| 1 | |
| 2 | |
| prepare stmt from "select * from t1 where a in (select a from t1 limit ?)"; | |
| ERROR 42000: This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery' | |
| prepare stmt from "select * from t1 union all select * from t1 limit ?, ?"; | |
| set @offset=9; | |
| set @limit=2; | |
| execute stmt using @offset, @limit; | |
| a | |
| 10 | |
| 1 | |
| prepare stmt from "(select * from t1 limit ?, ?) union all | |
|                    (select * from t1 limit ?, ?) order by a limit ?"; | |
| execute stmt using @offset, @limit, @offset, @limit, @limit; | |
| a | |
| 10 | |
| 10 | |
| drop table t1; | |
| deallocate prepare stmt; | |
| CREATE TABLE b12651_T1(a int) ENGINE=MYISAM; | |
| CREATE TABLE b12651_T2(b int) ENGINE=MYISAM; | |
| CREATE VIEW  b12651_V1 as SELECT b FROM b12651_T2; | |
| PREPARE b12651 FROM 'SELECT 1 FROM b12651_T1 WHERE a IN (SELECT b FROM b12651_V1)'; | |
| EXECUTE b12651; | |
| 1 | |
| DROP VIEW b12651_V1; | |
| DROP TABLE b12651_T1, b12651_T2; | |
| DEALLOCATE PREPARE b12651; | |
| create table t1 (id int); | |
| prepare ins_call from "insert into t1 (id) values (1)"; | |
| execute ins_call; | |
| select row_count(); | |
| row_count() | |
| 1 | |
| drop table t1; | |
| create table t1 (a int, b int); | |
| insert into t1 (a,b) values (2,8),(1,9),(3,7); | |
| prepare stmt from "select * from t1 order by ?"; | |
| set @a=NULL; | |
| execute stmt using @a; | |
| a	b | |
| 2	8 | |
| 1	9 | |
| 3	7 | |
| set @a=1; | |
| execute stmt using @a; | |
| a	b | |
| 1	9 | |
| 2	8 | |
| 3	7 | |
| set @a=2; | |
| execute stmt using @a; | |
| a	b | |
| 3	7 | |
| 2	8 | |
| 1	9 | |
| deallocate prepare stmt; | |
| select * from t1 order by 1; | |
| a	b | |
| 1	9 | |
| 2	8 | |
| 3	7 | |
| prepare stmt from "select * from t1 order by ?+1"; | |
| set @a=0; | |
| execute stmt using @a; | |
| a	b | |
| 2	8 | |
| 1	9 | |
| 3	7 | |
| set @a=1; | |
| execute stmt using @a; | |
| a	b | |
| 2	8 | |
| 1	9 | |
| 3	7 | |
| deallocate prepare stmt; | |
| select * from t1 order by 1+1; | |
| a	b | |
| 2	8 | |
| 1	9 | |
| 3	7 | |
| drop table t1; | |
| create table t1 (a int); | |
| create table t2 like t1; | |
| create table t3 like t2; | |
| prepare stmt from "repair table t1"; | |
| execute stmt; | |
| Table	Op	Msg_type	Msg_text | |
| test.t1	repair	status	OK | |
| execute stmt; | |
| Table	Op	Msg_type	Msg_text | |
| test.t1	repair	status	OK | |
| prepare stmt from "optimize table t1"; | |
| execute stmt; | |
| Table	Op	Msg_type	Msg_text | |
| test.t1	optimize	status	OK | |
| execute stmt; | |
| Table	Op	Msg_type	Msg_text | |
| test.t1	optimize	status	Table is already up to date | |
| prepare stmt from "analyze table t1"; | |
| execute stmt; | |
| Table	Op	Msg_type	Msg_text | |
| test.t1	analyze	status	Table is already up to date | |
| execute stmt; | |
| Table	Op	Msg_type	Msg_text | |
| test.t1	analyze	status	Table is already up to date | |
| prepare stmt from "repair table t1, t2, t3"; | |
| execute stmt; | |
| Table	Op	Msg_type	Msg_text | |
| test.t1	repair	status	OK | |
| test.t2	repair	status	OK | |
| test.t3	repair	status	OK | |
| execute stmt; | |
| Table	Op	Msg_type	Msg_text | |
| test.t1	repair	status	OK | |
| test.t2	repair	status	OK | |
| test.t3	repair	status	OK | |
| prepare stmt from "optimize table t1, t2, t3"; | |
| execute stmt; | |
| Table	Op	Msg_type	Msg_text | |
| test.t1	optimize	status	OK | |
| test.t2	optimize	status	OK | |
| test.t3	optimize	status	OK | |
| execute stmt; | |
| Table	Op	Msg_type	Msg_text | |
| test.t1	optimize	status	Table is already up to date | |
| test.t2	optimize	status	Table is already up to date | |
| test.t3	optimize	status	Table is already up to date | |
| prepare stmt from "analyze table t1, t2, t3"; | |
| execute stmt; | |
| Table	Op	Msg_type	Msg_text | |
| test.t1	analyze	status	Table is already up to date | |
| test.t2	analyze	status	Table is already up to date | |
| test.t3	analyze	status	Table is already up to date | |
| execute stmt; | |
| Table	Op	Msg_type	Msg_text | |
| test.t1	analyze	status	Table is already up to date | |
| test.t2	analyze	status	Table is already up to date | |
| test.t3	analyze	status	Table is already up to date | |
| prepare stmt from "repair table t1, t4, t3"; | |
| execute stmt; | |
| Table	Op	Msg_type	Msg_text | |
| test.t1	repair	status	OK | |
| test.t4	repair	Error	Table 'test.t4' doesn't exist | |
| test.t4	repair	error	Corrupt | |
| test.t3	repair	status	OK | |
| execute stmt; | |
| Table	Op	Msg_type	Msg_text | |
| test.t1	repair	status	OK | |
| test.t4	repair	Error	Table 'test.t4' doesn't exist | |
| test.t4	repair	error	Corrupt | |
| test.t3	repair	status	OK | |
| prepare stmt from "optimize table t1, t3, t4"; | |
| execute stmt; | |
| Table	Op	Msg_type	Msg_text | |
| test.t1	optimize	status	OK | |
| test.t3	optimize	status	OK | |
| test.t4	optimize	Error	Table 'test.t4' doesn't exist | |
| test.t4	optimize	error	Corrupt | |
| execute stmt; | |
| Table	Op	Msg_type	Msg_text | |
| test.t1	optimize	status	Table is already up to date | |
| test.t3	optimize	status	Table is already up to date | |
| test.t4	optimize	Error	Table 'test.t4' doesn't exist | |
| test.t4	optimize	error	Corrupt | |
| prepare stmt from "analyze table t4, t1"; | |
| execute stmt; | |
| Table	Op	Msg_type	Msg_text | |
| test.t4	analyze	Error	Table 'test.t4' doesn't exist | |
| test.t4	analyze	error	Corrupt | |
| test.t1	analyze	status	Table is already up to date | |
| execute stmt; | |
| Table	Op	Msg_type	Msg_text | |
| test.t4	analyze	Error	Table 'test.t4' doesn't exist | |
| test.t4	analyze	error	Corrupt | |
| test.t1	analyze	status	Table is already up to date | |
| deallocate prepare stmt; | |
| drop table t1, t2, t3; | |
| create database mysqltest_long_database_name_to_thrash_heap; | |
| use test; | |
| create table t1 (i int); | |
| prepare stmt from "alter table test.t1 rename t1"; | |
| use mysqltest_long_database_name_to_thrash_heap; | |
| execute stmt; | |
| show tables like 't1'; | |
| Tables_in_mysqltest_long_database_name_to_thrash_heap (t1) | |
| prepare stmt from "alter table test.t1 rename t1"; | |
| use test; | |
| execute stmt; | |
| show tables like 't1'; | |
| Tables_in_test (t1) | |
| use mysqltest_long_database_name_to_thrash_heap; | |
| show tables like 't1'; | |
| Tables_in_mysqltest_long_database_name_to_thrash_heap (t1) | |
| t1 | |
| deallocate prepare stmt; | |
| use mysqltest_long_database_name_to_thrash_heap; | |
| prepare stmt_create from "create table t1 (i int)"; | |
| prepare stmt_insert from "insert into t1 (i) values (1)"; | |
| prepare stmt_update from "update t1 set i=2"; | |
| prepare stmt_delete from "delete from t1 where i=2"; | |
| prepare stmt_select from "select * from t1"; | |
| prepare stmt_alter from "alter table t1 add column (b int)"; | |
| prepare stmt_alter1 from "alter table t1 drop column b"; | |
| prepare stmt_analyze from "analyze table t1"; | |
| prepare stmt_optimize from "optimize table t1"; | |
| prepare stmt_show from "show tables like 't1'"; | |
| prepare stmt_truncate from "truncate table t1"; | |
| prepare stmt_drop from "drop table t1"; | |
| drop table t1; | |
| use test; | |
| execute stmt_create; | |
| show tables like 't1'; | |
| Tables_in_test (t1) | |
| use mysqltest_long_database_name_to_thrash_heap; | |
| show tables like 't1'; | |
| Tables_in_mysqltest_long_database_name_to_thrash_heap (t1) | |
| t1 | |
| use test; | |
| execute stmt_insert; | |
| select * from mysqltest_long_database_name_to_thrash_heap.t1; | |
| i | |
| 1 | |
| execute stmt_update; | |
| select * from mysqltest_long_database_name_to_thrash_heap.t1; | |
| i | |
| 2 | |
| execute stmt_delete; | |
| execute stmt_select; | |
| i | |
| execute stmt_alter; | |
| show columns from mysqltest_long_database_name_to_thrash_heap.t1; | |
| Field	Type	Null	Key	Default	Extra | |
| i	int(11)	YES		NULL	 | |
| b	int(11)	YES		NULL	 | |
| execute stmt_alter1; | |
| show columns from mysqltest_long_database_name_to_thrash_heap.t1; | |
| Field	Type	Null	Key	Default	Extra | |
| i	int(11)	YES		NULL	 | |
| execute stmt_analyze; | |
| Table	Op	Msg_type	Msg_text | |
| mysqltest_long_database_name_to_thrash_heap.t1	analyze	status	Table is already up to date | |
| execute stmt_optimize; | |
| Table	Op	Msg_type	Msg_text | |
| mysqltest_long_database_name_to_thrash_heap.t1	optimize	status	Table is already up to date | |
| execute stmt_show; | |
| Tables_in_mysqltest_long_database_name_to_thrash_heap (t1) | |
| t1 | |
| execute stmt_truncate; | |
| execute stmt_drop; | |
| show tables like 't1'; | |
| Tables_in_test (t1) | |
| use mysqltest_long_database_name_to_thrash_heap; | |
| show tables like 't1'; | |
| Tables_in_mysqltest_long_database_name_to_thrash_heap (t1) | |
| drop database mysqltest_long_database_name_to_thrash_heap; | |
| prepare stmt_create from "create table t1 (i int)"; | |
| ERROR 3D000: No database selected | |
| prepare stmt_insert from "insert into t1 (i) values (1)"; | |
| ERROR 3D000: No database selected | |
| prepare stmt_update from "update t1 set i=2"; | |
| ERROR 3D000: No database selected | |
| prepare stmt_delete from "delete from t1 where i=2"; | |
| ERROR 3D000: No database selected | |
| prepare stmt_select from "select * from t1"; | |
| ERROR 3D000: No database selected | |
| prepare stmt_alter from "alter table t1 add column (b int)"; | |
| ERROR 3D000: No database selected | |
| prepare stmt_alter1 from "alter table t1 drop column b"; | |
| ERROR 3D000: No database selected | |
| prepare stmt_analyze from "analyze table t1"; | |
| ERROR 3D000: No database selected | |
| prepare stmt_optimize from "optimize table t1"; | |
| ERROR 3D000: No database selected | |
| prepare stmt_show from "show tables like 't1'"; | |
| ERROR 3D000: No database selected | |
| prepare stmt_truncate from "truncate table t1"; | |
| ERROR 3D000: No database selected | |
| prepare stmt_drop from "drop table t1"; | |
| ERROR 3D000: No database selected | |
| create temporary table t1 (i int); | |
| ERROR 3D000: No database selected | |
| use test; | |
| DROP TABLE IF EXISTS t1, t2, t3; | |
| CREATE TABLE t1 (i BIGINT, j BIGINT); | |
| CREATE TABLE t2 (i BIGINT); | |
| CREATE TABLE t3 (i BIGINT, j BIGINT); | |
| PREPARE stmt FROM "SELECT * FROM t1 JOIN t2 ON (t2.i = t1.i) | |
|                    LEFT JOIN t3 ON ((t3.i, t3.j) = (t1.i, t1.j)) | |
|                    WHERE t1.i = ?"; | |
| SET @a= 1; | |
| EXECUTE stmt USING @a; | |
| i	j	i	i	j | |
| EXECUTE stmt USING @a; | |
| i	j	i	i	j | |
| DEALLOCATE PREPARE stmt; | |
| DROP TABLE IF EXISTS t1, t2, t3; | |
| DROP TABLE IF EXISTS t1, t2; | |
| CREATE TABLE t1 (i INT KEY); | |
| CREATE TABLE t2 (i INT); | |
| INSERT INTO t1 VALUES (1), (2); | |
| INSERT INTO t2 VALUES (1); | |
| PREPARE stmt FROM "SELECT t2.i FROM t1 LEFT JOIN t2 ON t2.i = t1.i | |
|                    WHERE t1.i = ?"; | |
| SET @arg= 1; | |
| EXECUTE stmt USING @arg; | |
| i | |
| 1 | |
| SET @arg= 2; | |
| EXECUTE stmt USING @arg; | |
| i | |
| NULL | |
| SET @arg= 1; | |
| EXECUTE stmt USING @arg; | |
| i | |
| 1 | |
| DEALLOCATE PREPARE stmt; | |
| DROP TABLE t1, t2; | |
| CREATE TABLE t1 (i INT); | |
| CREATE VIEW v1 AS SELECT * FROM t1; | |
| INSERT INTO t1 VALUES (1), (2); | |
| SELECT t1.i FROM t1 JOIN v1 ON t1.i = v1.i | |
| WHERE EXISTS (SELECT * FROM t1 WHERE v1.i = 1); | |
| i | |
| 1 | |
| PREPARE stmt FROM "SELECT t1.i FROM t1 JOIN v1 ON t1.i = v1.i | |
| WHERE EXISTS (SELECT * FROM t1 WHERE v1.i = 1)"; | |
| EXECUTE stmt; | |
| i | |
| 1 | |
| EXECUTE stmt; | |
| i | |
| 1 | |
| DEALLOCATE PREPARE stmt; | |
| DROP VIEW v1; | |
| DROP TABLE t1; | |
| DROP PROCEDURE IF EXISTS p1; | |
| flush status; | |
| prepare sq from 'show status like "slow_queries"'; | |
| execute sq; | |
| Variable_name	Value | |
| Slow_queries	0 | |
| prepare no_index from 'select 1 from information_schema.tables limit 1'; | |
| execute sq; | |
| Variable_name	Value | |
| Slow_queries	0 | |
| execute no_index; | |
| 1 | |
| 1 | |
| execute sq; | |
| Variable_name	Value | |
| Slow_queries	1 | |
| deallocate prepare no_index; | |
| deallocate prepare sq; | |
| CREATE TABLE t1 (a int); | |
| INSERT INTO t1 VALUES (1), (2); | |
| CREATE TABLE t2 (b int); | |
| INSERT INTO t2 VALUES (NULL); | |
| SELECT a FROM t1 WHERE (SELECT b FROM t2) IS NULL; | |
| a | |
| 1 | |
| 2 | |
| PREPARE stmt FROM 'SELECT a FROM t1 WHERE (SELECT b FROM t2) IS NULL'; | |
| EXECUTE stmt; | |
| a | |
| 1 | |
| 2 | |
| DEALLOCATE PREPARE stmt; | |
| PREPARE stmt FROM 'SELECT a FROM t1 WHERE (SELECT b FROM t2 limit ?) IS NULL'; | |
| SET @arg=1; | |
| EXECUTE stmt USING @arg; | |
| a | |
| 1 | |
| 2 | |
| DEALLOCATE PREPARE stmt; | |
| DROP TABLE t1,t2; | |
| drop table if exists t1; | |
| create table t1 (s1 char(20)); | |
| prepare stmt from "alter table t1 modify s1 int"; | |
| execute stmt; | |
| execute stmt; | |
| drop table t1; | |
| deallocate prepare stmt; | |
| drop table if exists t1; | |
| create table t1 (a int, b int); | |
| prepare s_6895 from "alter table t1 drop column b"; | |
| execute s_6895; | |
| show columns from t1; | |
| Field	Type	Null	Key	Default	Extra | |
| a	int(11)	YES		NULL	 | |
| drop table t1; | |
| create table t1 (a int, b int); | |
| execute s_6895; | |
| show columns from t1; | |
| Field	Type	Null	Key	Default	Extra | |
| a	int(11)	YES		NULL	 | |
| drop table t1; | |
| create table t1 (a int, b int); | |
| execute s_6895; | |
| show columns from t1; | |
| Field	Type	Null	Key	Default	Extra | |
| a	int(11)	YES		NULL	 | |
| deallocate prepare s_6895; | |
| drop table t1; | |
| create table t1 (i int primary key auto_increment) comment='comment for table t1'; | |
| create table t2 (i int, j int, k int); | |
| prepare stmt from "alter table t1 auto_increment=100"; | |
| execute stmt; | |
| show create table t1; | |
| Table	Create Table | |
| t1	CREATE TABLE `t1` ( | |
|   `i` int(11) NOT NULL auto_increment, | |
|   PRIMARY KEY  (`i`) | |
| ) ENGINE=MyISAM AUTO_INCREMENT=100 DEFAULT CHARSET=latin1 COMMENT='comment for table t1' | |
| flush tables; | |
| select * from t2; | |
| i	j	k | |
| execute stmt; | |
| show create table t1; | |
| Table	Create Table | |
| t1	CREATE TABLE `t1` ( | |
|   `i` int(11) NOT NULL auto_increment, | |
|   PRIMARY KEY  (`i`) | |
| ) ENGINE=MyISAM AUTO_INCREMENT=100 DEFAULT CHARSET=latin1 COMMENT='comment for table t1' | |
| deallocate prepare stmt; | |
| drop table t1, t2; | |
| drop tables if exists t1; | |
| create table t1 (id int primary key auto_increment, value varchar(10)); | |
| insert into t1 (id, value) values (1, 'FIRST'), (2, 'SECOND'), (3, 'THIRD'); | |
| prepare stmt from "insert into t1 (id, value) select * from (select 4 as i, 'FOURTH' as v) as y on duplicate key update v = 'DUP'"; | |
| execute stmt; | |
| ERROR 42S22: Unknown column 'v' in 'field list' | |
| execute stmt; | |
| ERROR 42S22: Unknown column 'v' in 'field list' | |
| deallocate prepare stmt; | |
| prepare stmt from "insert into t1 (id, value) select * from (select 4 as id, 'FOURTH' as value) as y on duplicate key update y.value = 'DUP'"; | |
| execute stmt; | |
| ERROR 42S22: Unknown column 'y.value' in 'field list' | |
| execute stmt; | |
| ERROR 42S22: Unknown column 'y.value' in 'field list' | |
| deallocate prepare stmt; | |
| drop tables t1; | |
| prepare stmt from "create table t1 select ?"; | |
| set @a=1.0; | |
| execute stmt using @a; | |
| show create table t1; | |
| Table	Create Table | |
| t1	CREATE TABLE `t1` ( | |
|   `?` decimal(2,1) default NULL | |
| ) ENGINE=MyISAM DEFAULT CHARSET=latin1 | |
| drop table t1; | |
| drop table if exists t1; | |
| create table t1 (a bigint unsigned, b bigint(20) unsigned); | |
| prepare stmt from "insert into t1 values (?,?)"; | |
| set @a= 9999999999999999; | |
| set @b= 14632475938453979136; | |
| insert into t1 values (@a, @b); | |
| select * from t1 where a = @a and b = @b; | |
| a	b | |
| 9999999999999999	14632475938453979136 | |
| execute stmt using @a, @b; | |
| select * from t1 where a = @a and b = @b; | |
| a	b | |
| 9999999999999999	14632475938453979136 | |
| 9999999999999999	14632475938453979136 | |
| deallocate prepare stmt; | |
| drop table t1; | |
| drop view if exists v1; | |
| drop table if exists t1; | |
| create table t1 (a int, b int); | |
| insert into t1 values (1,1), (2,2), (3,3); | |
| insert into t1 values (3,1), (1,2), (2,3); | |
| prepare stmt from "create view v1 as select * from t1"; | |
| execute stmt; | |
| drop table t1; | |
| create table t1 (a int, b int); | |
| drop view v1; | |
| execute stmt; | |
| show create view v1; | |
| View	Create View | |
| v1	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a`,`t1`.`b` AS `b` from `t1` | |
| drop view v1; | |
| prepare stmt from "create view v1 (c,d) as select a,b from t1"; | |
| execute stmt; | |
| show create view v1; | |
| View	Create View | |
| v1	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `c`,`t1`.`b` AS `d` from `t1` | |
| select * from v1; | |
| c	d | |
| drop view v1; | |
| execute stmt; | |
| deallocate prepare stmt; | |
| show create view v1; | |
| View	Create View | |
| v1	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `c`,`t1`.`b` AS `d` from `t1` | |
| select * from v1; | |
| c	d | |
| drop view v1; | |
| prepare stmt from "create view v1 (c) as select b+1 from t1"; | |
| execute stmt; | |
| show create view v1; | |
| View	Create View | |
| v1	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select (`t1`.`b` + 1) AS `c` from `t1` | |
| select * from v1; | |
| c | |
| drop view v1; | |
| execute stmt; | |
| deallocate prepare stmt; | |
| show create view v1; | |
| View	Create View | |
| v1	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select (`t1`.`b` + 1) AS `c` from `t1` | |
| select * from v1; | |
| c | |
| drop view v1; | |
| prepare stmt from "create view v1 (c,d,e,f) as select a,b,a in (select a+2 from t1), a = all (select a from t1) from t1"; | |
| execute stmt; | |
| show create view v1; | |
| View	Create View | |
| v1	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `c`,`t1`.`b` AS `d`,`t1`.`a` in (select (`t1`.`a` + 2) AS `a+2` from `t1`) AS `e`,`t1`.`a` = all (select `t1`.`a` AS `a` from `t1`) AS `f` from `t1` | |
| select * from v1; | |
| c	d	e	f | |
| drop view v1; | |
| execute stmt; | |
| deallocate prepare stmt; | |
| show create view v1; | |
| View	Create View | |
| v1	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `c`,`t1`.`b` AS `d`,`t1`.`a` in (select (`t1`.`a` + 2) AS `a+2` from `t1`) AS `e`,`t1`.`a` = all (select `t1`.`a` AS `a` from `t1`) AS `f` from `t1` | |
| select * from v1; | |
| c	d	e	f | |
| drop view v1; | |
| prepare stmt from "create or replace view v1 as select 1"; | |
| execute stmt; | |
| show create view v1; | |
| View	Create View | |
| v1	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 1 AS `1` | |
| select * from v1; | |
| 1 | |
| 1 | |
| execute stmt; | |
| show create view v1; | |
| View	Create View | |
| v1	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 1 AS `1` | |
| deallocate prepare stmt; | |
| show create view v1; | |
| View	Create View | |
| v1	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 1 AS `1` | |
| select * from v1; | |
| 1 | |
| 1 | |
| drop view v1; | |
| prepare stmt from "create view v1 as select 1, 1"; | |
| execute stmt; | |
| show create view v1; | |
| View	Create View | |
| v1	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 1 AS `1`,1 AS `My_exp_1` | |
| select * from v1; | |
| 1	My_exp_1 | |
| 1	1 | |
| drop view v1; | |
| execute stmt; | |
| deallocate prepare stmt; | |
| show create view v1; | |
| View	Create View | |
| v1	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 1 AS `1`,1 AS `My_exp_1` | |
| select * from v1; | |
| 1	My_exp_1 | |
| 1	1 | |
| drop view v1; | |
| prepare stmt from "create view v1 (x) as select a from t1 where a > 1"; | |
| execute stmt; | |
| show create view v1; | |
| View	Create View | |
| v1	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `x` from `t1` where (`t1`.`a` > 1) | |
| select * from v1; | |
| x | |
| drop view v1; | |
| execute stmt; | |
| deallocate prepare stmt; | |
| show create view v1; | |
| View	Create View | |
| v1	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `x` from `t1` where (`t1`.`a` > 1) | |
| select * from v1; | |
| x | |
| drop view v1; | |
| prepare stmt from "create view v1 as select * from `t1` `b`"; | |
| execute stmt; | |
| show create view v1; | |
| View	Create View | |
| v1	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `b`.`a` AS `a`,`b`.`b` AS `b` from `t1` `b` | |
| select * from v1; | |
| a	b | |
| drop view v1; | |
| execute stmt; | |
| deallocate prepare stmt; | |
| show create view v1; | |
| View	Create View | |
| v1	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `b`.`a` AS `a`,`b`.`b` AS `b` from `t1` `b` | |
| select * from v1; | |
| a	b | |
| drop view v1; | |
| prepare stmt from "create view v1 (a,b,c) as select * from t1"; | |
| execute stmt; | |
| ERROR HY000: View's SELECT and view's field list have different column counts | |
| execute stmt; | |
| ERROR HY000: View's SELECT and view's field list have different column counts | |
| deallocate prepare stmt; | |
| drop table t1; | |
| create temporary table t1 (a int, b int); | |
| prepare stmt from "create view v1 as select * from t1"; | |
| execute stmt; | |
| ERROR HY000: View's SELECT refers to a temporary table 't1' | |
| execute stmt; | |
| ERROR HY000: View's SELECT refers to a temporary table 't1' | |
| deallocate prepare stmt; | |
| drop table t1; | |
| prepare stmt from "create view v1 as select * from t1"; | |
| ERROR 42S02: Table 'test.t1' doesn't exist | |
| prepare stmt from "create view v1 as select * from `t1` `b`"; | |
| ERROR 42S02: Table 'test.t1' doesn't exist | |
| prepare stmt from "select ?"; | |
| set @arg= 123456789.987654321; | |
| select @arg; | |
| @arg | |
| 123456789.987654321 | |
| execute stmt using @arg; | |
| ? | |
| 123456789.987654321 | |
| set @arg= "string"; | |
| select @arg; | |
| @arg | |
| string | |
| execute stmt using @arg; | |
| ? | |
| string | |
| set @arg= 123456; | |
| select @arg; | |
| @arg | |
| 123456 | |
| execute stmt using @arg; | |
| ? | |
| 123456 | |
| set @arg= cast(-12345.54321 as decimal(20, 10)); | |
| select @arg; | |
| @arg | |
| -12345.5432100000 | |
| execute stmt using @arg; | |
| ? | |
| -12345.5432100000 | |
| deallocate prepare stmt; | |
| End of 5.0 tests.
 |