194 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			194 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 
								 | 
							
								drop table if exists t1, t2;
							 | 
						||
| 
								 | 
							
								CREATE TABLE t1(session_id  char(9) NOT NULL);
							 | 
						||
| 
								 | 
							
								INSERT INTO t1 VALUES ("abc");
							 | 
						||
| 
								 | 
							
								SELECT * FROM t1;
							 | 
						||
| 
								 | 
							
								session_id
							 | 
						||
| 
								 | 
							
								abc
							 | 
						||
| 
								 | 
							
								prepare st_1180 from 'SELECT * FROM t1 WHERE ?="1111" and session_id = "abc"';
							 | 
						||
| 
								 | 
							
								set @arg1= 'abc';
							 | 
						||
| 
								 | 
							
								execute st_1180 using @arg1;
							 | 
						||
| 
								 | 
							
								session_id
							 | 
						||
| 
								 | 
							
								set @arg1= '1111';
							 | 
						||
| 
								 | 
							
								execute st_1180 using @arg1;
							 | 
						||
| 
								 | 
							
								session_id
							 | 
						||
| 
								 | 
							
								abc
							 | 
						||
| 
								 | 
							
								set @arg1= 'abc';
							 | 
						||
| 
								 | 
							
								execute st_1180 using @arg1;
							 | 
						||
| 
								 | 
							
								session_id
							 | 
						||
| 
								 | 
							
								drop table t1;
							 | 
						||
| 
								 | 
							
								create table t1 (
							 | 
						||
| 
								 | 
							
								c_01 char(6), c_02 integer, c_03 real, c_04 int(3), c_05 varchar(20),
							 | 
						||
| 
								 | 
							
								c_06 date,    c_07 char(1), c_08 real, c_09 int(11), c_10 time,
							 | 
						||
| 
								 | 
							
								c_11 char(6), c_12 integer, c_13 real, c_14 int(3), c_15 varchar(20),
							 | 
						||
| 
								 | 
							
								c_16 date,    c_17 char(1), c_18 real, c_19 int(11), c_20 text);
							 | 
						||
| 
								 | 
							
								prepare st_1644 from 'insert into t1 values ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)';
							 | 
						||
| 
								 | 
							
								set @arg01= 'row_1';
							 | 
						||
| 
								 | 
							
								set @arg02= 1;
							 | 
						||
| 
								 | 
							
								set @arg03= 1.1;
							 | 
						||
| 
								 | 
							
								set @arg04= 111;
							 | 
						||
| 
								 | 
							
								set @arg05= 'row_one';
							 | 
						||
| 
								 | 
							
								set @arg06= '2004-10-12';
							 | 
						||
| 
								 | 
							
								set @arg07= '1';
							 | 
						||
| 
								 | 
							
								set @arg08= 1.1;
							 | 
						||
| 
								 | 
							
								set @arg09= '100100100';
							 | 
						||
| 
								 | 
							
								set @arg10= '12:34:56';
							 | 
						||
| 
								 | 
							
								set @arg11= 'row_1';
							 | 
						||
| 
								 | 
							
								set @arg12= 1;
							 | 
						||
| 
								 | 
							
								set @arg13= 1.1;
							 | 
						||
| 
								 | 
							
								set @arg14= 111;
							 | 
						||
| 
								 | 
							
								set @arg15= 'row_one';
							 | 
						||
| 
								 | 
							
								set @arg16= '2004-10-12';
							 | 
						||
| 
								 | 
							
								set @arg17= '1';
							 | 
						||
| 
								 | 
							
								set @arg18= 1.1;
							 | 
						||
| 
								 | 
							
								set @arg19= '100100100';
							 | 
						||
| 
								 | 
							
								set @arg20= '12:34:56';
							 | 
						||
| 
								 | 
							
								execute st_1644 using @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08, @arg09, @arg10,
							 | 
						||
| 
								 | 
							
								@arg11, @arg12, @arg13, @arg14, @arg15, @arg16, @arg17, @arg18, @arg19, @arg20;
							 | 
						||
| 
								 | 
							
								set @arg01= NULL;
							 | 
						||
| 
								 | 
							
								set @arg02= NULL;
							 | 
						||
| 
								 | 
							
								set @arg03= NULL;
							 | 
						||
| 
								 | 
							
								set @arg04= NULL;
							 | 
						||
| 
								 | 
							
								set @arg05= NULL;
							 | 
						||
| 
								 | 
							
								set @arg06= NULL;
							 | 
						||
| 
								 | 
							
								set @arg07= NULL;
							 | 
						||
| 
								 | 
							
								set @arg08= NULL;
							 | 
						||
| 
								 | 
							
								set @arg09= NULL;
							 | 
						||
| 
								 | 
							
								set @arg10= NULL;
							 | 
						||
| 
								 | 
							
								set @arg11= NULL;
							 | 
						||
| 
								 | 
							
								set @arg12= NULL;
							 | 
						||
| 
								 | 
							
								set @arg13= NULL;
							 | 
						||
| 
								 | 
							
								set @arg14= NULL;
							 | 
						||
| 
								 | 
							
								set @arg15= NULL;
							 | 
						||
| 
								 | 
							
								set @arg16= NULL;
							 | 
						||
| 
								 | 
							
								set @arg17= NULL;
							 | 
						||
| 
								 | 
							
								set @arg18= NULL;
							 | 
						||
| 
								 | 
							
								set @arg19= NULL;
							 | 
						||
| 
								 | 
							
								set @arg20= NULL;
							 | 
						||
| 
								 | 
							
								execute st_1644 using @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08, @arg09, @arg10,
							 | 
						||
| 
								 | 
							
								@arg11, @arg12, @arg13, @arg14, @arg15, @arg16, @arg17, @arg18, @arg19, @arg20;
							 | 
						||
| 
								 | 
							
								set @arg01= 'row_3';
							 | 
						||
| 
								 | 
							
								set @arg02= 3;
							 | 
						||
| 
								 | 
							
								set @arg03= 3.3;
							 | 
						||
| 
								 | 
							
								set @arg04= 333;
							 | 
						||
| 
								 | 
							
								set @arg05= 'row_three';
							 | 
						||
| 
								 | 
							
								set @arg06= '2004-10-12';
							 | 
						||
| 
								 | 
							
								set @arg07= '3';
							 | 
						||
| 
								 | 
							
								set @arg08= 3.3;
							 | 
						||
| 
								 | 
							
								set @arg09= '300300300';
							 | 
						||
| 
								 | 
							
								set @arg10= '12:34:56';
							 | 
						||
| 
								 | 
							
								set @arg11= 'row_3';
							 | 
						||
| 
								 | 
							
								set @arg12= 3;
							 | 
						||
| 
								 | 
							
								set @arg13= 3.3;
							 | 
						||
| 
								 | 
							
								set @arg14= 333;
							 | 
						||
| 
								 | 
							
								set @arg15= 'row_three';
							 | 
						||
| 
								 | 
							
								set @arg16= '2004-10-12';
							 | 
						||
| 
								 | 
							
								set @arg17= '3';
							 | 
						||
| 
								 | 
							
								set @arg18= 3.3;
							 | 
						||
| 
								 | 
							
								set @arg19= '300300300';
							 | 
						||
| 
								 | 
							
								set @arg20= '12:34:56';
							 | 
						||
| 
								 | 
							
								execute st_1644 using @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08, @arg09, @arg10,
							 | 
						||
| 
								 | 
							
								@arg11, @arg12, @arg13, @arg14, @arg15, @arg16, @arg17, @arg18, @arg19, @arg20;
							 | 
						||
| 
								 | 
							
								select * from t1;
							 | 
						||
| 
								 | 
							
								c_01	c_02	c_03	c_04	c_05	c_06	c_07	c_08	c_09	c_10	c_11	c_12	c_13	c_14	c_15	c_16	c_17	c_18	c_19	c_20
							 | 
						||
| 
								 | 
							
								row_1	1	1.1	111	row_one	2004-10-12	1	1.1	100100100	12:34:56	row_1	1	1.1	111	row_one	2004-10-12	1	1.1	100100100	12:34:56
							 | 
						||
| 
								 | 
							
								NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL
							 | 
						||
| 
								 | 
							
								row_3	3	3.3	333	row_three	2004-10-12	3	3.3	300300300	12:34:56	row_3	3	3.3	333	row_three	2004-10-12	3	3.3	300300300	12:34:56
							 | 
						||
| 
								 | 
							
								drop table t1;
							 | 
						||
| 
								 | 
							
								create table t1(
							 | 
						||
| 
								 | 
							
								cola varchar(50) not null,
							 | 
						||
| 
								 | 
							
								colb varchar(8) not null,
							 | 
						||
| 
								 | 
							
								colc varchar(12) not null,
							 | 
						||
| 
								 | 
							
								cold varchar(2) not null,
							 | 
						||
| 
								 | 
							
								primary key (cola, colb, cold));
							 | 
						||
| 
								 | 
							
								create table t2(
							 | 
						||
| 
								 | 
							
								cola varchar(50) not null,
							 | 
						||
| 
								 | 
							
								colb varchar(8) not null,
							 | 
						||
| 
								 | 
							
								colc varchar(2) not null,
							 | 
						||
| 
								 | 
							
								cold float,
							 | 
						||
| 
								 | 
							
								primary key (cold));
							 | 
						||
| 
								 | 
							
								insert into t1 values ('aaaa', 'yyyy', 'yyyy-dd-mm', 'R');
							 | 
						||
| 
								 | 
							
								insert into t2 values ('aaaa', 'yyyy', 'R', 203), ('bbbb', 'zzzz', 'C', 201);
							 | 
						||
| 
								 | 
							
								prepare st_1676 from 'select a.cola, a.colb, a.cold from t1 a, t2 b where a.cola = ? and a.colb = ? and a.cold = ? and b.cola = a.cola and b.colb = a.colb and b.colc = a.cold';
							 | 
						||
| 
								 | 
							
								set @arg0= "aaaa";
							 | 
						||
| 
								 | 
							
								set @arg1= "yyyy";
							 | 
						||
| 
								 | 
							
								set @arg2= "R";
							 | 
						||
| 
								 | 
							
								execute st_1676 using @arg0, @arg1, @arg2;
							 | 
						||
| 
								 | 
							
								cola	colb	cold
							 | 
						||
| 
								 | 
							
								aaaa	yyyy	R
							 | 
						||
| 
								 | 
							
								drop table t1, t2;
							 | 
						||
| 
								 | 
							
								create table t1 (a int primary key);
							 | 
						||
| 
								 | 
							
								insert into t1 values (1);
							 | 
						||
| 
								 | 
							
								explain select * from t1 where 3 in (select (1+1) union select 1);
							 | 
						||
| 
								 | 
							
								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
							 | 
						||
| 
								 | 
							
								2	DEPENDENT SUBQUERY	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
							 | 
						||
| 
								 | 
							
								3	DEPENDENT UNION	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
							 | 
						||
| 
								 | 
							
								NULL	UNION RESULT	<union2,3>	ALL	NULL	NULL	NULL	NULL	NULL	
							 | 
						||
| 
								 | 
							
								select * from t1 where 3 in (select (1+1) union select 1);
							 | 
						||
| 
								 | 
							
								a
							 | 
						||
| 
								 | 
							
								prepare st_18492 from 'select * from t1 where 3 in (select (1+1) union select 1)';
							 | 
						||
| 
								 | 
							
								execute st_18492;
							 | 
						||
| 
								 | 
							
								a
							 | 
						||
| 
								 | 
							
								drop table t1;
							 | 
						||
| 
								 | 
							
								create table t1 (a int, b varchar(4));
							 | 
						||
| 
								 | 
							
								create table t2 (a int, b varchar(4), primary key(a));
							 | 
						||
| 
								 | 
							
								prepare stmt1 from 'insert into t1 (a, b) values (?, ?)';
							 | 
						||
| 
								 | 
							
								prepare stmt2 from 'insert into t2 (a, b) values (?, ?)';
							 | 
						||
| 
								 | 
							
								set @intarg= 11;
							 | 
						||
| 
								 | 
							
								set @varchararg= '2222';
							 | 
						||
| 
								 | 
							
								execute stmt1 using @intarg, @varchararg;
							 | 
						||
| 
								 | 
							
								execute stmt2 using @intarg, @varchararg;
							 | 
						||
| 
								 | 
							
								set @intarg= 12;
							 | 
						||
| 
								 | 
							
								execute stmt1 using @intarg, @UNDEFINED;
							 | 
						||
| 
								 | 
							
								execute stmt2 using @intarg, @UNDEFINED;
							 | 
						||
| 
								 | 
							
								set @intarg= 13;
							 | 
						||
| 
								 | 
							
								execute stmt1 using @UNDEFINED, @varchararg;
							 | 
						||
| 
								 | 
							
								execute stmt2 using @UNDEFINED, @varchararg;
							 | 
						||
| 
								 | 
							
								ERROR 23000: Column 'a' cannot be null
							 | 
						||
| 
								 | 
							
								set @intarg= 14;
							 | 
						||
| 
								 | 
							
								set @nullarg= Null;
							 | 
						||
| 
								 | 
							
								execute stmt1 using @UNDEFINED, @nullarg;
							 | 
						||
| 
								 | 
							
								execute stmt2 using @nullarg, @varchararg;
							 | 
						||
| 
								 | 
							
								ERROR 23000: Column 'a' cannot be null
							 | 
						||
| 
								 | 
							
								select * from t1;
							 | 
						||
| 
								 | 
							
								a	b
							 | 
						||
| 
								 | 
							
								11	2222
							 | 
						||
| 
								 | 
							
								12	NULL
							 | 
						||
| 
								 | 
							
								NULL	2222
							 | 
						||
| 
								 | 
							
								NULL	NULL
							 | 
						||
| 
								 | 
							
								select * from t2;
							 | 
						||
| 
								 | 
							
								a	b
							 | 
						||
| 
								 | 
							
								11	2222
							 | 
						||
| 
								 | 
							
								12	NULL
							 | 
						||
| 
								 | 
							
								drop table t1;
							 | 
						||
| 
								 | 
							
								drop table t2;
							 | 
						||
| 
								 | 
							
								CREATE TABLE t1 (a INT);
							 | 
						||
| 
								 | 
							
								PREPARE stmt FROM 'select 1 from `t1` where `a` = any (select (@@tmpdir))';
							 | 
						||
| 
								 | 
							
								EXECUTE stmt;
							 | 
						||
| 
								 | 
							
								1
							 | 
						||
| 
								 | 
							
								DEALLOCATE PREPARE stmt;
							 | 
						||
| 
								 | 
							
								DROP TABLE t1;
							 | 
						||
| 
								 | 
							
								CREATE TABLE t2 (a INT PRIMARY KEY);
							 | 
						||
| 
								 | 
							
								INSERT INTO t2 VALUES (400000), (400001);
							 | 
						||
| 
								 | 
							
								SET @@sort_buffer_size=400000;
							 | 
						||
| 
								 | 
							
								CREATE FUNCTION p1(i INT) RETURNS INT
							 | 
						||
| 
								 | 
							
								BEGIN
							 | 
						||
| 
								 | 
							
								SET @@sort_buffer_size= i;
							 | 
						||
| 
								 | 
							
								RETURN i + 1;
							 | 
						||
| 
								 | 
							
								END|
							 | 
						||
| 
								 | 
							
								SELECT * FROM t2 WHERE a = @@sort_buffer_size AND p1(@@sort_buffer_size + 1) > a - 1;
							 | 
						||
| 
								 | 
							
								a
							 | 
						||
| 
								 | 
							
								400000
							 | 
						||
| 
								 | 
							
								DROP TABLE t2;
							 | 
						||
| 
								 | 
							
								DROP FUNCTION p1;
							 | 
						||
| 
								 | 
							
								SELECT CONCAT(@@sort_buffer_size);
							 | 
						||
| 
								 | 
							
								CONCAT(@@sort_buffer_size)
							 | 
						||
| 
								 | 
							
								400001
							 | 
						||
| 
								 | 
							
								SELECT LEFT("12345", @@ft_boolean_syntax);
							 | 
						||
| 
								 | 
							
								LEFT("12345", @@ft_boolean_syntax)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Warnings:
							 | 
						||
| 
								 | 
							
								Warning	1292	Truncated incorrect INTEGER value: '+ -><()~*:""&|'
							 | 
						||
| 
								 | 
							
								SET @@sort_buffer_size=DEFAULT;
							 | 
						||
| 
								 | 
							
								End of 5.0 tests.
							 |