mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
f37d610147
into mysql.com:/opt/local/work/mysql-4.1-16365 sql/mysql_priv.h: Auto merged sql/sql_class.h: Auto merged mysql-test/r/ps.result: Manual merge mysql-test/t/ps.test: Manual merge
877 lines
26 KiB
Text
877 lines
26 KiB
Text
drop table if exists t1,t2;
|
||
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 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 '"select 1"' at line 1
|
||
prepare stmt2 from 'execute stmt1';
|
||
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 'stmt1' at line 1
|
||
prepare stmt2 from 'deallocate prepare z';
|
||
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 'z' at line 1
|
||
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(14), 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 t2 system NULL NULL NULL NULL 0 const row not found
|
||
2 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
|
||
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 t2 system NULL NULL NULL NULL 0 const row not found
|
||
2 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
|
||
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 t2 system NULL NULL NULL NULL 0 const row not found
|
||
2 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 0 const row not found
|
||
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 9 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 9 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 `<60>`;
|
||
1234
|
||
1234
|
||
deallocate prepare `<60>`;
|
||
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)
|
||
- 6570515219
|
||
- 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)
|
||
- 6570515219 -
|
||
- 1282061302 -
|
||
- 6698761160 -
|
||
- 9647622201 -
|
||
set @var=2;
|
||
execute stmt using @var;
|
||
rand() cast(rand(10)*@precision as unsigned integer) cast(rand(?)*@precision as unsigned integer)
|
||
- 6570515219 6555866465
|
||
- 1282061302 1223466192
|
||
- 6698761160 6449731873
|
||
- 9647622201 8578261098
|
||
set @var=3;
|
||
execute stmt using @var;
|
||
rand() cast(rand(10)*@precision as unsigned integer) cast(rand(?)*@precision as unsigned integer)
|
||
- 6570515219 9057697559
|
||
- 1282061302 3730790581
|
||
- 6698761160 1480860534
|
||
- 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;
|
||
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 variables like 'prepared_stmt_count';
|
||
Variable_name Value
|
||
prepared_stmt_count 0
|
||
select @@max_prepared_stmt_count, @@prepared_stmt_count;
|
||
@@max_prepared_stmt_count @@prepared_stmt_count
|
||
16382 0
|
||
set global max_prepared_stmt_count=-1;
|
||
select @@max_prepared_stmt_count;
|
||
@@max_prepared_stmt_count
|
||
0
|
||
set global max_prepared_stmt_count=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 local prepared_stmt_count=0;
|
||
ERROR HY000: Variable 'prepared_stmt_count' is a GLOBAL variable and should be set with SET GLOBAL
|
||
set @@prepared_stmt_count=0;
|
||
ERROR HY000: Variable 'prepared_stmt_count' is a GLOBAL variable and should be set with SET GLOBAL
|
||
set global prepared_stmt_count=1;
|
||
ERROR 42000: Incorrect argument type to variable 'prepared_stmt_count'
|
||
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, @@prepared_stmt_count;
|
||
@@max_prepared_stmt_count @@prepared_stmt_count
|
||
0 0
|
||
prepare stmt from "select 1";
|
||
ERROR HY000: Unknown error
|
||
select @@prepared_stmt_count;
|
||
@@prepared_stmt_count
|
||
0
|
||
set global max_prepared_stmt_count=1;
|
||
prepare stmt from "select 1";
|
||
select @@prepared_stmt_count;
|
||
@@prepared_stmt_count
|
||
1
|
||
prepare stmt1 from "select 1";
|
||
ERROR HY000: Unknown error
|
||
select @@prepared_stmt_count;
|
||
@@prepared_stmt_count
|
||
1
|
||
deallocate prepare stmt;
|
||
select @@prepared_stmt_count;
|
||
@@prepared_stmt_count
|
||
0
|
||
prepare stmt from "select 1";
|
||
select @@prepared_stmt_count;
|
||
@@prepared_stmt_count
|
||
1
|
||
prepare stmt from "select 2";
|
||
select @@prepared_stmt_count;
|
||
@@prepared_stmt_count
|
||
1
|
||
select @@prepared_stmt_count, @@max_prepared_stmt_count;
|
||
@@prepared_stmt_count @@max_prepared_stmt_count
|
||
1 1
|
||
set global max_prepared_stmt_count=0;
|
||
prepare stmt from "select 1";
|
||
ERROR HY000: Unknown error
|
||
execute stmt;
|
||
ERROR HY000: Unknown prepared statement handler (stmt) given to EXECUTE
|
||
select @@prepared_stmt_count;
|
||
@@prepared_stmt_count
|
||
0
|
||
prepare stmt from "select 1";
|
||
ERROR HY000: Unknown error
|
||
select @@prepared_stmt_count;
|
||
@@prepared_stmt_count
|
||
0
|
||
set global max_prepared_stmt_count=3;
|
||
select @@max_prepared_stmt_count, @@prepared_stmt_count;
|
||
@@max_prepared_stmt_count @@prepared_stmt_count
|
||
3 0
|
||
prepare stmt from "select 1";
|
||
prepare stmt from "select 2";
|
||
prepare stmt1 from "select 3";
|
||
prepare stmt2 from "select 4";
|
||
ERROR HY000: Unknown error
|
||
prepare stmt2 from "select 4";
|
||
ERROR HY000: Unknown error
|
||
select @@max_prepared_stmt_count, @@prepared_stmt_count;
|
||
@@max_prepared_stmt_count @@prepared_stmt_count
|
||
3 3
|
||
deallocate prepare stmt;
|
||
select @@max_prepared_stmt_count, @@prepared_stmt_count;
|
||
@@max_prepared_stmt_count @@prepared_stmt_count
|
||
3 0
|
||
set global max_prepared_stmt_count= @old_max_prepared_stmt_count;
|