Merge weblab.(none):/home/marcsql/TREE/mysql-5.1-base
into weblab.(none):/home/marcsql/TREE/mysql-5.1-rt-merge sql/Makefile.am: Auto merged sql/sql_class.h: Auto merged sql/sql_parse.cc: Auto merged sql/sql_view.cc: Auto merged sql/sql_yacc.yy: Auto merged
This commit is contained in:
commit
0f719e7407
@ -33,7 +33,7 @@ drop table if exists t1;
|
|||||||
create table t1(c1 int);
|
create table t1(c1 int);
|
||||||
insert into t1 values(1),(10),(100);
|
insert into t1 values(1),(10),(100);
|
||||||
|
|
||||||
# Prepared statements has no parameters, query caching should happen
|
# First, prepared statements with no parameters
|
||||||
prepare stmt1 from "select * from t1 where c1=10";
|
prepare stmt1 from "select * from t1 where c1=10";
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
execute stmt1;
|
execute stmt1;
|
||||||
@ -113,7 +113,9 @@ show status like 'Qcache_hits';
|
|||||||
--echo ---- switch to connection default ----
|
--echo ---- switch to connection default ----
|
||||||
connection default;
|
connection default;
|
||||||
|
|
||||||
# Prepared statement has parameters, query caching should not happen
|
# Query caching also works when statement has parameters
|
||||||
|
# (BUG#29318 Statements prepared with PREPARE and with one parameter don't use
|
||||||
|
# query cache)
|
||||||
prepare stmt1 from "select * from t1 where c1=?";
|
prepare stmt1 from "select * from t1 where c1=?";
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
set @a=1;
|
set @a=1;
|
||||||
@ -127,6 +129,12 @@ set @a=1;
|
|||||||
prepare stmt4 from "select * from t1 where c1=?";
|
prepare stmt4 from "select * from t1 where c1=?";
|
||||||
execute stmt4 using @a;
|
execute stmt4 using @a;
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
|
# verify that presence of user variables forbids caching
|
||||||
|
prepare stmt4 from "select @a from t1 where c1=?";
|
||||||
|
execute stmt4 using @a;
|
||||||
|
show status like 'Qcache_hits';
|
||||||
|
execute stmt4 using @a;
|
||||||
|
show status like 'Qcache_hits';
|
||||||
--echo ---- switch to connection default ----
|
--echo ---- switch to connection default ----
|
||||||
connection default;
|
connection default;
|
||||||
|
|
||||||
|
@ -378,6 +378,8 @@ prepare stmt1 from ' execute stmt2 ' ;
|
|||||||
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
||||||
prepare stmt1 from ' deallocate prepare never_prepared ' ;
|
prepare stmt1 from ' deallocate prepare never_prepared ' ;
|
||||||
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
||||||
|
prepare stmt1 from 'alter view v1 as select 2';
|
||||||
|
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
||||||
prepare stmt4 from ' use test ' ;
|
prepare stmt4 from ' use test ' ;
|
||||||
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
||||||
prepare stmt3 from ' create database mysqltest ';
|
prepare stmt3 from ' create database mysqltest ';
|
||||||
|
@ -144,7 +144,7 @@ c1
|
|||||||
1
|
1
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 14
|
Qcache_hits 15
|
||||||
---- switch to connection con1 ----
|
---- switch to connection con1 ----
|
||||||
set @a=1;
|
set @a=1;
|
||||||
prepare stmt4 from "select * from t1 where c1=?";
|
prepare stmt4 from "select * from t1 where c1=?";
|
||||||
@ -153,64 +153,38 @@ c1
|
|||||||
1
|
1
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 14
|
Qcache_hits 16
|
||||||
|
prepare stmt4 from "select @a from t1 where c1=?";
|
||||||
|
execute stmt4 using @a;
|
||||||
|
@a
|
||||||
|
1
|
||||||
|
show status like 'Qcache_hits';
|
||||||
|
Variable_name Value
|
||||||
|
Qcache_hits 16
|
||||||
|
execute stmt4 using @a;
|
||||||
|
@a
|
||||||
|
1
|
||||||
|
show status like 'Qcache_hits';
|
||||||
|
Variable_name Value
|
||||||
|
Qcache_hits 16
|
||||||
---- switch to connection default ----
|
---- switch to connection default ----
|
||||||
prepare stmt1 from "select * from t1 where c1=10";
|
prepare stmt1 from "select * from t1 where c1=10";
|
||||||
set global query_cache_size=0;
|
set global query_cache_size=0;
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 14
|
Qcache_hits 16
|
||||||
execute stmt1;
|
execute stmt1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 14
|
Qcache_hits 16
|
||||||
execute stmt1;
|
execute stmt1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 14
|
Qcache_hits 16
|
||||||
execute stmt1;
|
|
||||||
c1
|
|
||||||
10
|
|
||||||
show status like 'Qcache_hits';
|
|
||||||
Variable_name Value
|
|
||||||
Qcache_hits 14
|
|
||||||
---- switch to connection con1 ----
|
|
||||||
execute stmt3;
|
|
||||||
c1
|
|
||||||
10
|
|
||||||
show status like 'Qcache_hits';
|
|
||||||
Variable_name Value
|
|
||||||
Qcache_hits 14
|
|
||||||
execute stmt3;
|
|
||||||
c1
|
|
||||||
10
|
|
||||||
show status like 'Qcache_hits';
|
|
||||||
Variable_name Value
|
|
||||||
Qcache_hits 14
|
|
||||||
execute stmt3;
|
|
||||||
c1
|
|
||||||
10
|
|
||||||
show status like 'Qcache_hits';
|
|
||||||
Variable_name Value
|
|
||||||
Qcache_hits 14
|
|
||||||
---- switch to connection default ----
|
|
||||||
set global query_cache_size=100000;
|
|
||||||
execute stmt1;
|
|
||||||
c1
|
|
||||||
10
|
|
||||||
show status like 'Qcache_hits';
|
|
||||||
Variable_name Value
|
|
||||||
Qcache_hits 14
|
|
||||||
execute stmt1;
|
|
||||||
c1
|
|
||||||
10
|
|
||||||
show status like 'Qcache_hits';
|
|
||||||
Variable_name Value
|
|
||||||
Qcache_hits 15
|
|
||||||
execute stmt1;
|
execute stmt1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
@ -223,42 +197,39 @@ c1
|
|||||||
10
|
10
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 17
|
Qcache_hits 16
|
||||||
execute stmt3;
|
execute stmt3;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
|
Qcache_hits 16
|
||||||
|
execute stmt3;
|
||||||
|
c1
|
||||||
|
10
|
||||||
|
show status like 'Qcache_hits';
|
||||||
|
Variable_name Value
|
||||||
|
Qcache_hits 16
|
||||||
|
---- switch to connection default ----
|
||||||
|
set global query_cache_size=100000;
|
||||||
|
execute stmt1;
|
||||||
|
c1
|
||||||
|
10
|
||||||
|
show status like 'Qcache_hits';
|
||||||
|
Variable_name Value
|
||||||
|
Qcache_hits 16
|
||||||
|
execute stmt1;
|
||||||
|
c1
|
||||||
|
10
|
||||||
|
show status like 'Qcache_hits';
|
||||||
|
Variable_name Value
|
||||||
|
Qcache_hits 17
|
||||||
|
execute stmt1;
|
||||||
|
c1
|
||||||
|
10
|
||||||
|
show status like 'Qcache_hits';
|
||||||
|
Variable_name Value
|
||||||
Qcache_hits 18
|
Qcache_hits 18
|
||||||
execute stmt3;
|
|
||||||
c1
|
|
||||||
10
|
|
||||||
show status like 'Qcache_hits';
|
|
||||||
Variable_name Value
|
|
||||||
Qcache_hits 19
|
|
||||||
---- switch to connection default ----
|
|
||||||
set global query_cache_size=0;
|
|
||||||
show status like 'Qcache_hits';
|
|
||||||
Variable_name Value
|
|
||||||
Qcache_hits 19
|
|
||||||
execute stmt1;
|
|
||||||
c1
|
|
||||||
10
|
|
||||||
show status like 'Qcache_hits';
|
|
||||||
Variable_name Value
|
|
||||||
Qcache_hits 19
|
|
||||||
execute stmt1;
|
|
||||||
c1
|
|
||||||
10
|
|
||||||
show status like 'Qcache_hits';
|
|
||||||
Variable_name Value
|
|
||||||
Qcache_hits 19
|
|
||||||
execute stmt1;
|
|
||||||
c1
|
|
||||||
10
|
|
||||||
show status like 'Qcache_hits';
|
|
||||||
Variable_name Value
|
|
||||||
Qcache_hits 19
|
|
||||||
---- switch to connection con1 ----
|
---- switch to connection con1 ----
|
||||||
execute stmt3;
|
execute stmt3;
|
||||||
c1
|
c1
|
||||||
@ -271,13 +242,55 @@ c1
|
|||||||
10
|
10
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 19
|
Qcache_hits 20
|
||||||
execute stmt3;
|
execute stmt3;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 19
|
Qcache_hits 21
|
||||||
|
---- switch to connection default ----
|
||||||
|
set global query_cache_size=0;
|
||||||
|
show status like 'Qcache_hits';
|
||||||
|
Variable_name Value
|
||||||
|
Qcache_hits 21
|
||||||
|
execute stmt1;
|
||||||
|
c1
|
||||||
|
10
|
||||||
|
show status like 'Qcache_hits';
|
||||||
|
Variable_name Value
|
||||||
|
Qcache_hits 21
|
||||||
|
execute stmt1;
|
||||||
|
c1
|
||||||
|
10
|
||||||
|
show status like 'Qcache_hits';
|
||||||
|
Variable_name Value
|
||||||
|
Qcache_hits 21
|
||||||
|
execute stmt1;
|
||||||
|
c1
|
||||||
|
10
|
||||||
|
show status like 'Qcache_hits';
|
||||||
|
Variable_name Value
|
||||||
|
Qcache_hits 21
|
||||||
|
---- switch to connection con1 ----
|
||||||
|
execute stmt3;
|
||||||
|
c1
|
||||||
|
10
|
||||||
|
show status like 'Qcache_hits';
|
||||||
|
Variable_name Value
|
||||||
|
Qcache_hits 21
|
||||||
|
execute stmt3;
|
||||||
|
c1
|
||||||
|
10
|
||||||
|
show status like 'Qcache_hits';
|
||||||
|
Variable_name Value
|
||||||
|
Qcache_hits 21
|
||||||
|
execute stmt3;
|
||||||
|
c1
|
||||||
|
10
|
||||||
|
show status like 'Qcache_hits';
|
||||||
|
Variable_name Value
|
||||||
|
Qcache_hits 21
|
||||||
---- switch to connection default ----
|
---- switch to connection default ----
|
||||||
set global query_cache_size=0;
|
set global query_cache_size=0;
|
||||||
prepare stmt1 from "select * from t1 where c1=10";
|
prepare stmt1 from "select * from t1 where c1=10";
|
||||||
@ -287,75 +300,75 @@ prepare stmt3 from "select * from t1 where c1=10";
|
|||||||
set global query_cache_size=100000;
|
set global query_cache_size=100000;
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 19
|
Qcache_hits 21
|
||||||
execute stmt1;
|
execute stmt1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 19
|
Qcache_hits 21
|
||||||
execute stmt1;
|
execute stmt1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 19
|
Qcache_hits 21
|
||||||
execute stmt1;
|
execute stmt1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 19
|
Qcache_hits 21
|
||||||
---- switch to connection con1 ----
|
---- switch to connection con1 ----
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 19
|
Qcache_hits 21
|
||||||
execute stmt3;
|
execute stmt3;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 19
|
Qcache_hits 21
|
||||||
execute stmt3;
|
execute stmt3;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 19
|
Qcache_hits 21
|
||||||
execute stmt3;
|
execute stmt3;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 19
|
Qcache_hits 21
|
||||||
---- switch to connection default ----
|
---- switch to connection default ----
|
||||||
set global query_cache_size=0;
|
set global query_cache_size=0;
|
||||||
prepare stmt1 from "select * from t1 where c1=?";
|
prepare stmt1 from "select * from t1 where c1=?";
|
||||||
set global query_cache_size=100000;
|
set global query_cache_size=100000;
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 19
|
Qcache_hits 21
|
||||||
set @a=1;
|
set @a=1;
|
||||||
execute stmt1 using @a;
|
execute stmt1 using @a;
|
||||||
c1
|
c1
|
||||||
1
|
1
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 19
|
Qcache_hits 21
|
||||||
set @a=100;
|
set @a=100;
|
||||||
execute stmt1 using @a;
|
execute stmt1 using @a;
|
||||||
c1
|
c1
|
||||||
100
|
100
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 19
|
Qcache_hits 21
|
||||||
set @a=10;
|
set @a=10;
|
||||||
execute stmt1 using @a;
|
execute stmt1 using @a;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 19
|
Qcache_hits 21
|
||||||
drop table t1;
|
drop table t1;
|
||||||
---- disconnect connection con1 ----
|
---- disconnect connection con1 ----
|
||||||
set @@global.query_cache_size=@initial_query_cache_size;
|
set @@global.query_cache_size=@initial_query_cache_size;
|
||||||
|
@ -144,7 +144,7 @@ c1
|
|||||||
1
|
1
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 12
|
Qcache_hits 13
|
||||||
---- switch to connection con1 ----
|
---- switch to connection con1 ----
|
||||||
set @a=1;
|
set @a=1;
|
||||||
prepare stmt4 from "select * from t1 where c1=?";
|
prepare stmt4 from "select * from t1 where c1=?";
|
||||||
@ -153,64 +153,38 @@ c1
|
|||||||
1
|
1
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 12
|
Qcache_hits 14
|
||||||
|
prepare stmt4 from "select @a from t1 where c1=?";
|
||||||
|
execute stmt4 using @a;
|
||||||
|
@a
|
||||||
|
1
|
||||||
|
show status like 'Qcache_hits';
|
||||||
|
Variable_name Value
|
||||||
|
Qcache_hits 14
|
||||||
|
execute stmt4 using @a;
|
||||||
|
@a
|
||||||
|
1
|
||||||
|
show status like 'Qcache_hits';
|
||||||
|
Variable_name Value
|
||||||
|
Qcache_hits 14
|
||||||
---- switch to connection default ----
|
---- switch to connection default ----
|
||||||
prepare stmt1 from "select * from t1 where c1=10";
|
prepare stmt1 from "select * from t1 where c1=10";
|
||||||
set global query_cache_size=0;
|
set global query_cache_size=0;
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 12
|
Qcache_hits 14
|
||||||
execute stmt1;
|
execute stmt1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 12
|
Qcache_hits 14
|
||||||
execute stmt1;
|
execute stmt1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 12
|
Qcache_hits 14
|
||||||
execute stmt1;
|
|
||||||
c1
|
|
||||||
10
|
|
||||||
show status like 'Qcache_hits';
|
|
||||||
Variable_name Value
|
|
||||||
Qcache_hits 12
|
|
||||||
---- switch to connection con1 ----
|
|
||||||
execute stmt3;
|
|
||||||
c1
|
|
||||||
10
|
|
||||||
show status like 'Qcache_hits';
|
|
||||||
Variable_name Value
|
|
||||||
Qcache_hits 12
|
|
||||||
execute stmt3;
|
|
||||||
c1
|
|
||||||
10
|
|
||||||
show status like 'Qcache_hits';
|
|
||||||
Variable_name Value
|
|
||||||
Qcache_hits 12
|
|
||||||
execute stmt3;
|
|
||||||
c1
|
|
||||||
10
|
|
||||||
show status like 'Qcache_hits';
|
|
||||||
Variable_name Value
|
|
||||||
Qcache_hits 12
|
|
||||||
---- switch to connection default ----
|
|
||||||
set global query_cache_size=100000;
|
|
||||||
execute stmt1;
|
|
||||||
c1
|
|
||||||
10
|
|
||||||
show status like 'Qcache_hits';
|
|
||||||
Variable_name Value
|
|
||||||
Qcache_hits 12
|
|
||||||
execute stmt1;
|
|
||||||
c1
|
|
||||||
10
|
|
||||||
show status like 'Qcache_hits';
|
|
||||||
Variable_name Value
|
|
||||||
Qcache_hits 13
|
|
||||||
execute stmt1;
|
execute stmt1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
@ -223,42 +197,39 @@ c1
|
|||||||
10
|
10
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 15
|
Qcache_hits 14
|
||||||
execute stmt3;
|
execute stmt3;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
|
Qcache_hits 14
|
||||||
|
execute stmt3;
|
||||||
|
c1
|
||||||
|
10
|
||||||
|
show status like 'Qcache_hits';
|
||||||
|
Variable_name Value
|
||||||
|
Qcache_hits 14
|
||||||
|
---- switch to connection default ----
|
||||||
|
set global query_cache_size=100000;
|
||||||
|
execute stmt1;
|
||||||
|
c1
|
||||||
|
10
|
||||||
|
show status like 'Qcache_hits';
|
||||||
|
Variable_name Value
|
||||||
|
Qcache_hits 14
|
||||||
|
execute stmt1;
|
||||||
|
c1
|
||||||
|
10
|
||||||
|
show status like 'Qcache_hits';
|
||||||
|
Variable_name Value
|
||||||
|
Qcache_hits 15
|
||||||
|
execute stmt1;
|
||||||
|
c1
|
||||||
|
10
|
||||||
|
show status like 'Qcache_hits';
|
||||||
|
Variable_name Value
|
||||||
Qcache_hits 16
|
Qcache_hits 16
|
||||||
execute stmt3;
|
|
||||||
c1
|
|
||||||
10
|
|
||||||
show status like 'Qcache_hits';
|
|
||||||
Variable_name Value
|
|
||||||
Qcache_hits 17
|
|
||||||
---- switch to connection default ----
|
|
||||||
set global query_cache_size=0;
|
|
||||||
show status like 'Qcache_hits';
|
|
||||||
Variable_name Value
|
|
||||||
Qcache_hits 17
|
|
||||||
execute stmt1;
|
|
||||||
c1
|
|
||||||
10
|
|
||||||
show status like 'Qcache_hits';
|
|
||||||
Variable_name Value
|
|
||||||
Qcache_hits 17
|
|
||||||
execute stmt1;
|
|
||||||
c1
|
|
||||||
10
|
|
||||||
show status like 'Qcache_hits';
|
|
||||||
Variable_name Value
|
|
||||||
Qcache_hits 17
|
|
||||||
execute stmt1;
|
|
||||||
c1
|
|
||||||
10
|
|
||||||
show status like 'Qcache_hits';
|
|
||||||
Variable_name Value
|
|
||||||
Qcache_hits 17
|
|
||||||
---- switch to connection con1 ----
|
---- switch to connection con1 ----
|
||||||
execute stmt3;
|
execute stmt3;
|
||||||
c1
|
c1
|
||||||
@ -271,13 +242,55 @@ c1
|
|||||||
10
|
10
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 17
|
Qcache_hits 18
|
||||||
execute stmt3;
|
execute stmt3;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 17
|
Qcache_hits 19
|
||||||
|
---- switch to connection default ----
|
||||||
|
set global query_cache_size=0;
|
||||||
|
show status like 'Qcache_hits';
|
||||||
|
Variable_name Value
|
||||||
|
Qcache_hits 19
|
||||||
|
execute stmt1;
|
||||||
|
c1
|
||||||
|
10
|
||||||
|
show status like 'Qcache_hits';
|
||||||
|
Variable_name Value
|
||||||
|
Qcache_hits 19
|
||||||
|
execute stmt1;
|
||||||
|
c1
|
||||||
|
10
|
||||||
|
show status like 'Qcache_hits';
|
||||||
|
Variable_name Value
|
||||||
|
Qcache_hits 19
|
||||||
|
execute stmt1;
|
||||||
|
c1
|
||||||
|
10
|
||||||
|
show status like 'Qcache_hits';
|
||||||
|
Variable_name Value
|
||||||
|
Qcache_hits 19
|
||||||
|
---- switch to connection con1 ----
|
||||||
|
execute stmt3;
|
||||||
|
c1
|
||||||
|
10
|
||||||
|
show status like 'Qcache_hits';
|
||||||
|
Variable_name Value
|
||||||
|
Qcache_hits 19
|
||||||
|
execute stmt3;
|
||||||
|
c1
|
||||||
|
10
|
||||||
|
show status like 'Qcache_hits';
|
||||||
|
Variable_name Value
|
||||||
|
Qcache_hits 19
|
||||||
|
execute stmt3;
|
||||||
|
c1
|
||||||
|
10
|
||||||
|
show status like 'Qcache_hits';
|
||||||
|
Variable_name Value
|
||||||
|
Qcache_hits 19
|
||||||
---- switch to connection default ----
|
---- switch to connection default ----
|
||||||
set global query_cache_size=0;
|
set global query_cache_size=0;
|
||||||
prepare stmt1 from "select * from t1 where c1=10";
|
prepare stmt1 from "select * from t1 where c1=10";
|
||||||
@ -287,75 +300,75 @@ prepare stmt3 from "select * from t1 where c1=10";
|
|||||||
set global query_cache_size=100000;
|
set global query_cache_size=100000;
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 17
|
Qcache_hits 19
|
||||||
execute stmt1;
|
execute stmt1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 17
|
Qcache_hits 19
|
||||||
execute stmt1;
|
execute stmt1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 17
|
Qcache_hits 19
|
||||||
execute stmt1;
|
execute stmt1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 17
|
Qcache_hits 19
|
||||||
---- switch to connection con1 ----
|
---- switch to connection con1 ----
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 17
|
Qcache_hits 19
|
||||||
execute stmt3;
|
execute stmt3;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 17
|
Qcache_hits 19
|
||||||
execute stmt3;
|
execute stmt3;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 17
|
Qcache_hits 19
|
||||||
execute stmt3;
|
execute stmt3;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 17
|
Qcache_hits 19
|
||||||
---- switch to connection default ----
|
---- switch to connection default ----
|
||||||
set global query_cache_size=0;
|
set global query_cache_size=0;
|
||||||
prepare stmt1 from "select * from t1 where c1=?";
|
prepare stmt1 from "select * from t1 where c1=?";
|
||||||
set global query_cache_size=100000;
|
set global query_cache_size=100000;
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 17
|
Qcache_hits 19
|
||||||
set @a=1;
|
set @a=1;
|
||||||
execute stmt1 using @a;
|
execute stmt1 using @a;
|
||||||
c1
|
c1
|
||||||
1
|
1
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 17
|
Qcache_hits 19
|
||||||
set @a=100;
|
set @a=100;
|
||||||
execute stmt1 using @a;
|
execute stmt1 using @a;
|
||||||
c1
|
c1
|
||||||
100
|
100
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 17
|
Qcache_hits 19
|
||||||
set @a=10;
|
set @a=10;
|
||||||
execute stmt1 using @a;
|
execute stmt1 using @a;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
show status like 'Qcache_hits';
|
show status like 'Qcache_hits';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Qcache_hits 17
|
Qcache_hits 19
|
||||||
drop table t1;
|
drop table t1;
|
||||||
---- disconnect connection con1 ----
|
---- disconnect connection con1 ----
|
||||||
set @@global.query_cache_size=@initial_query_cache_size;
|
set @@global.query_cache_size=@initial_query_cache_size;
|
||||||
|
@ -87,6 +87,10 @@ prepare stmt from "create table t1 (a int)";
|
|||||||
execute stmt;
|
execute stmt;
|
||||||
insert into t1 (a) values (1);
|
insert into t1 (a) values (1);
|
||||||
select * from t1;
|
select * from t1;
|
||||||
|
prepare stmt_alter from "alter table t1 add (b int)";
|
||||||
|
execute stmt_alter;
|
||||||
|
insert into t1 (a,b) values (2,1);
|
||||||
|
deallocate prepare stmt_alter;
|
||||||
deallocate prepare stmt;
|
deallocate prepare stmt;
|
||||||
deallocate prepare stmt_drop;
|
deallocate prepare stmt_drop;
|
||||||
end|
|
end|
|
||||||
@ -245,6 +249,9 @@ a
|
|||||||
1
|
1
|
||||||
drop procedure p1|
|
drop procedure p1|
|
||||||
drop table if exists t1|
|
drop table if exists t1|
|
||||||
|
drop table if exists t2|
|
||||||
|
Warnings:
|
||||||
|
Note 1051 Unknown table 't2'
|
||||||
create table t1 (id integer primary key auto_increment,
|
create table t1 (id integer primary key auto_increment,
|
||||||
stmt_text char(35), status varchar(20))|
|
stmt_text char(35), status varchar(20))|
|
||||||
insert into t1 (stmt_text) values
|
insert into t1 (stmt_text) values
|
||||||
@ -255,7 +262,10 @@ insert into t1 (stmt_text) values
|
|||||||
("help help"), ("show databases"), ("show tables"),
|
("help help"), ("show databases"), ("show tables"),
|
||||||
("show table status"), ("show open tables"), ("show storage engines"),
|
("show table status"), ("show open tables"), ("show storage engines"),
|
||||||
("insert into t1 (id) values (1)"), ("update t1 set status=''"),
|
("insert into t1 (id) values (1)"), ("update t1 set status=''"),
|
||||||
("delete from t1"), ("truncate t1"), ("call p1()"), ("foo bar")|
|
("delete from t1"), ("truncate t1"), ("call p1()"), ("foo bar"),
|
||||||
|
("create view v1 as select 1"), ("alter view v1 as select 2"),
|
||||||
|
("drop view v1"),("create table t2 (a int)"),("alter table t2 add (b int)"),
|
||||||
|
("drop table t2")|
|
||||||
create procedure p1()
|
create procedure p1()
|
||||||
begin
|
begin
|
||||||
declare v_stmt_text varchar(255);
|
declare v_stmt_text varchar(255);
|
||||||
@ -305,6 +315,12 @@ id stmt_text status
|
|||||||
20 truncate t1 supported
|
20 truncate t1 supported
|
||||||
21 call p1() supported
|
21 call p1() supported
|
||||||
22 foo bar syntax error
|
22 foo bar syntax error
|
||||||
|
23 create view v1 as select 1 supported
|
||||||
|
24 alter view v1 as select 2 not supported
|
||||||
|
25 drop view v1 supported
|
||||||
|
26 create table t2 (a int) supported
|
||||||
|
27 alter table t2 add (b int) supported
|
||||||
|
28 drop table t2 supported
|
||||||
drop procedure p1|
|
drop procedure p1|
|
||||||
drop table t1|
|
drop table t1|
|
||||||
prepare stmt from 'select 1'|
|
prepare stmt from 'select 1'|
|
||||||
|
@ -982,9 +982,9 @@ ERROR HY000: Explicit or implicit commit is not allowed in stored function or tr
|
|||||||
CREATE FUNCTION bug_13627_f() returns int BEGIN create view v1 as select 1; return 1; END |
|
CREATE FUNCTION bug_13627_f() returns int BEGIN create view v1 as select 1; return 1; END |
|
||||||
ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
|
ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
|
||||||
CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN alter view v1 as select 1; END |
|
CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN alter view v1 as select 1; END |
|
||||||
ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
|
ERROR 0A000: ALTER VIEW is not allowed in stored procedures
|
||||||
CREATE FUNCTION bug_13627_f() returns int BEGIN alter view v1 as select 1; return 1; END |
|
CREATE FUNCTION bug_13627_f() returns int BEGIN alter view v1 as select 1; return 1; END |
|
||||||
ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
|
ERROR 0A000: ALTER VIEW is not allowed in stored procedures
|
||||||
CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN drop view v1; END |
|
CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN drop view v1; END |
|
||||||
ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
|
ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
|
||||||
CREATE FUNCTION bug_13627_f() returns int BEGIN drop view v1; return 1; END |
|
CREATE FUNCTION bug_13627_f() returns int BEGIN drop view v1; return 1; END |
|
||||||
|
@ -414,6 +414,10 @@ prepare stmt1 from ' execute stmt2 ' ;
|
|||||||
--error ER_UNSUPPORTED_PS
|
--error ER_UNSUPPORTED_PS
|
||||||
prepare stmt1 from ' deallocate prepare never_prepared ' ;
|
prepare stmt1 from ' deallocate prepare never_prepared ' ;
|
||||||
|
|
||||||
|
## We don't support alter view as prepared statements
|
||||||
|
--error ER_UNSUPPORTED_PS
|
||||||
|
prepare stmt1 from 'alter view v1 as select 2';
|
||||||
|
|
||||||
## switch the database connection
|
## switch the database connection
|
||||||
--error ER_UNSUPPORTED_PS
|
--error ER_UNSUPPORTED_PS
|
||||||
prepare stmt4 from ' use test ' ;
|
prepare stmt4 from ' use test ' ;
|
||||||
|
@ -85,7 +85,7 @@ call p1()|
|
|||||||
call p1()|
|
call p1()|
|
||||||
drop procedure p1|
|
drop procedure p1|
|
||||||
#
|
#
|
||||||
# D. Create/Drop a table (a DDL that issues a commit) in Dynamic SQL.
|
# D. Create/Drop/Alter a table (a DDL that issues a commit) in Dynamic SQL.
|
||||||
# (should work ok).
|
# (should work ok).
|
||||||
#
|
#
|
||||||
create procedure p1()
|
create procedure p1()
|
||||||
@ -96,6 +96,10 @@ begin
|
|||||||
execute stmt;
|
execute stmt;
|
||||||
insert into t1 (a) values (1);
|
insert into t1 (a) values (1);
|
||||||
select * from t1;
|
select * from t1;
|
||||||
|
prepare stmt_alter from "alter table t1 add (b int)";
|
||||||
|
execute stmt_alter;
|
||||||
|
insert into t1 (a,b) values (2,1);
|
||||||
|
deallocate prepare stmt_alter;
|
||||||
deallocate prepare stmt;
|
deallocate prepare stmt;
|
||||||
deallocate prepare stmt_drop;
|
deallocate prepare stmt_drop;
|
||||||
end|
|
end|
|
||||||
@ -239,6 +243,7 @@ drop procedure p1|
|
|||||||
# K. Use of continue handlers with Dynamic SQL.
|
# K. Use of continue handlers with Dynamic SQL.
|
||||||
#
|
#
|
||||||
drop table if exists t1|
|
drop table if exists t1|
|
||||||
|
drop table if exists t2|
|
||||||
create table t1 (id integer primary key auto_increment,
|
create table t1 (id integer primary key auto_increment,
|
||||||
stmt_text char(35), status varchar(20))|
|
stmt_text char(35), status varchar(20))|
|
||||||
insert into t1 (stmt_text) values
|
insert into t1 (stmt_text) values
|
||||||
@ -249,7 +254,10 @@ insert into t1 (stmt_text) values
|
|||||||
("help help"), ("show databases"), ("show tables"),
|
("help help"), ("show databases"), ("show tables"),
|
||||||
("show table status"), ("show open tables"), ("show storage engines"),
|
("show table status"), ("show open tables"), ("show storage engines"),
|
||||||
("insert into t1 (id) values (1)"), ("update t1 set status=''"),
|
("insert into t1 (id) values (1)"), ("update t1 set status=''"),
|
||||||
("delete from t1"), ("truncate t1"), ("call p1()"), ("foo bar")|
|
("delete from t1"), ("truncate t1"), ("call p1()"), ("foo bar"),
|
||||||
|
("create view v1 as select 1"), ("alter view v1 as select 2"),
|
||||||
|
("drop view v1"),("create table t2 (a int)"),("alter table t2 add (b int)"),
|
||||||
|
("drop table t2")|
|
||||||
create procedure p1()
|
create procedure p1()
|
||||||
begin
|
begin
|
||||||
declare v_stmt_text varchar(255);
|
declare v_stmt_text varchar(255);
|
||||||
|
@ -1087,12 +1087,12 @@ delimiter ;|
|
|||||||
#
|
#
|
||||||
# BUG 12490 (Packets out of order if calling HELP CONTENTS from Stored Procedure)
|
# BUG 12490 (Packets out of order if calling HELP CONTENTS from Stored Procedure)
|
||||||
#
|
#
|
||||||
--error 1314
|
--error ER_SP_BADSTATEMENT
|
||||||
CREATE PROCEDURE BUG_12490() HELP CONTENTS;
|
CREATE PROCEDURE BUG_12490() HELP CONTENTS;
|
||||||
--error 1314
|
--error ER_SP_BADSTATEMENT
|
||||||
CREATE FUNCTION BUG_12490() RETURNS INT HELP CONTENTS;
|
CREATE FUNCTION BUG_12490() RETURNS INT HELP CONTENTS;
|
||||||
CREATE TABLE t_bug_12490(a int);
|
CREATE TABLE t_bug_12490(a int);
|
||||||
--error 1314
|
--error ER_SP_BADSTATEMENT
|
||||||
CREATE TRIGGER BUG_12490 BEFORE UPDATE ON t_bug_12490 FOR EACH ROW HELP CONTENTS;
|
CREATE TRIGGER BUG_12490 BEFORE UPDATE ON t_bug_12490 FOR EACH ROW HELP CONTENTS;
|
||||||
DROP TABLE t_bug_12490;
|
DROP TABLE t_bug_12490;
|
||||||
|
|
||||||
@ -1401,9 +1401,9 @@ CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN create view v1 as sele
|
|||||||
-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
|
-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
|
||||||
CREATE FUNCTION bug_13627_f() returns int BEGIN create view v1 as select 1; return 1; END |
|
CREATE FUNCTION bug_13627_f() returns int BEGIN create view v1 as select 1; return 1; END |
|
||||||
|
|
||||||
-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
|
-- error ER_SP_BADSTATEMENT
|
||||||
CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN alter view v1 as select 1; END |
|
CREATE TRIGGER tr1 BEFORE INSERT ON t1 FOR EACH ROW BEGIN alter view v1 as select 1; END |
|
||||||
-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
|
-- error ER_SP_BADSTATEMENT
|
||||||
CREATE FUNCTION bug_13627_f() returns int BEGIN alter view v1 as select 1; return 1; END |
|
CREATE FUNCTION bug_13627_f() returns int BEGIN alter view v1 as select 1; return 1; END |
|
||||||
|
|
||||||
-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
|
-- error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG
|
||||||
|
@ -27,6 +27,10 @@ SUBDIRS = share
|
|||||||
libexec_PROGRAMS = mysqld
|
libexec_PROGRAMS = mysqld
|
||||||
EXTRA_PROGRAMS = gen_lex_hash
|
EXTRA_PROGRAMS = gen_lex_hash
|
||||||
bin_PROGRAMS = mysql_tzinfo_to_sql
|
bin_PROGRAMS = mysql_tzinfo_to_sql
|
||||||
|
|
||||||
|
noinst_LTLIBRARIES= libndb.la \
|
||||||
|
udf_example.la
|
||||||
|
|
||||||
SUPPORTING_LIBS = $(top_builddir)/vio/libvio.a \
|
SUPPORTING_LIBS = $(top_builddir)/vio/libvio.a \
|
||||||
$(top_builddir)/mysys/libmysys.a \
|
$(top_builddir)/mysys/libmysys.a \
|
||||||
$(top_builddir)/dbug/libdbug.a \
|
$(top_builddir)/dbug/libdbug.a \
|
||||||
@ -34,7 +38,8 @@ SUPPORTING_LIBS = $(top_builddir)/vio/libvio.a \
|
|||||||
$(top_builddir)/strings/libmystrings.a
|
$(top_builddir)/strings/libmystrings.a
|
||||||
mysqld_DEPENDENCIES= @mysql_plugin_libs@ $(SUPPORTING_LIBS)
|
mysqld_DEPENDENCIES= @mysql_plugin_libs@ $(SUPPORTING_LIBS)
|
||||||
LDADD = $(SUPPORTING_LIBS) @ZLIB_LIBS@ @NDB_SCI_LIBS@
|
LDADD = $(SUPPORTING_LIBS) @ZLIB_LIBS@ @NDB_SCI_LIBS@
|
||||||
mysqld_LDADD = @MYSQLD_EXTRA_LDFLAGS@ \
|
mysqld_LDADD = libndb.la \
|
||||||
|
@MYSQLD_EXTRA_LDFLAGS@ \
|
||||||
@pstack_libs@ \
|
@pstack_libs@ \
|
||||||
@mysql_plugin_libs@ \
|
@mysql_plugin_libs@ \
|
||||||
$(LDADD) $(CXXLDFLAGS) $(WRAPLIBS) @LIBDL@ \
|
$(LDADD) $(CXXLDFLAGS) $(WRAPLIBS) @LIBDL@ \
|
||||||
@ -94,8 +99,7 @@ mysqld_SOURCES = sql_lex.cc sql_handler.cc sql_partition.cc \
|
|||||||
log_event_old.cc rpl_record_old.cc \
|
log_event_old.cc rpl_record_old.cc \
|
||||||
discover.cc time.cc opt_range.cc opt_sum.cc \
|
discover.cc time.cc opt_range.cc opt_sum.cc \
|
||||||
records.cc filesort.cc handler.cc \
|
records.cc filesort.cc handler.cc \
|
||||||
ha_ndbcluster.cc ha_ndbcluster_cond.cc \
|
ha_partition.cc \
|
||||||
ha_ndbcluster_binlog.cc ha_partition.cc \
|
|
||||||
sql_db.cc sql_table.cc sql_rename.cc sql_crypt.cc \
|
sql_db.cc sql_table.cc sql_rename.cc sql_crypt.cc \
|
||||||
sql_load.cc mf_iocache.cc field_conv.cc sql_show.cc \
|
sql_load.cc mf_iocache.cc field_conv.cc sql_show.cc \
|
||||||
sql_udf.cc sql_analyse.cc sql_analyse.h sql_cache.cc \
|
sql_udf.cc sql_analyse.cc sql_analyse.h sql_cache.cc \
|
||||||
@ -116,6 +120,11 @@ mysqld_SOURCES = sql_lex.cc sql_handler.cc sql_partition.cc \
|
|||||||
sql_builtin.cc sql_tablespace.cc partition_info.cc \
|
sql_builtin.cc sql_tablespace.cc partition_info.cc \
|
||||||
sql_servers.cc
|
sql_servers.cc
|
||||||
|
|
||||||
|
libndb_la_CPPFLAGS= @ndbcluster_includes@
|
||||||
|
libndb_la_SOURCES= ha_ndbcluster.cc \
|
||||||
|
ha_ndbcluster_binlog.cc \
|
||||||
|
ha_ndbcluster_cond.cc
|
||||||
|
|
||||||
gen_lex_hash_SOURCES = gen_lex_hash.cc
|
gen_lex_hash_SOURCES = gen_lex_hash.cc
|
||||||
gen_lex_hash_LDFLAGS = @NOINST_LDFLAGS@
|
gen_lex_hash_LDFLAGS = @NOINST_LDFLAGS@
|
||||||
|
|
||||||
@ -159,22 +168,7 @@ lex_hash.h: gen_lex_hash.cc lex.h
|
|||||||
./gen_lex_hash$(EXEEXT) > $@-t
|
./gen_lex_hash$(EXEEXT) > $@-t
|
||||||
$(MV) $@-t $@
|
$(MV) $@-t $@
|
||||||
|
|
||||||
# the following four should eventually be moved out of this directory
|
|
||||||
ha_ndbcluster.o:ha_ndbcluster.cc ha_ndbcluster.h
|
|
||||||
$(CXXCOMPILE) @ndbcluster_includes@ $(LM_CFLAGS) -c $<
|
|
||||||
|
|
||||||
ha_ndbcluster_cond.o:ha_ndbcluster_cond.cc ha_ndbcluster_cond.h
|
|
||||||
$(CXXCOMPILE) @ndbcluster_includes@ $(LM_CFLAGS) -c $<
|
|
||||||
|
|
||||||
ha_ndbcluster_binlog.o:ha_ndbcluster_binlog.cc ha_ndbcluster_binlog.h
|
|
||||||
$(CXXCOMPILE) @ndbcluster_includes@ $(LM_CFLAGS) -c $<
|
|
||||||
|
|
||||||
#Until we can get rid of dependencies on ha_ndbcluster.h
|
|
||||||
handler.o: handler.cc ha_ndbcluster.h
|
|
||||||
$(CXXCOMPILE) @ndbcluster_includes@ $(CXXFLAGS) -c $<
|
|
||||||
|
|
||||||
# For testing of udf_example.so
|
# For testing of udf_example.so
|
||||||
noinst_LTLIBRARIES= udf_example.la
|
|
||||||
udf_example_la_SOURCES= udf_example.c
|
udf_example_la_SOURCES= udf_example.c
|
||||||
udf_example_la_LDFLAGS= -module -rpath $(pkglibdir)
|
udf_example_la_LDFLAGS= -module -rpath $(pkglibdir)
|
||||||
|
|
||||||
|
@ -436,6 +436,13 @@ public:
|
|||||||
#ifndef DBUG_OFF
|
#ifndef DBUG_OFF
|
||||||
bool is_backup_arena; /* True if this arena is used for backup. */
|
bool is_backup_arena; /* True if this arena is used for backup. */
|
||||||
#endif
|
#endif
|
||||||
|
/*
|
||||||
|
The states relfects three diffrent life cycles for three
|
||||||
|
different types of statements:
|
||||||
|
Prepared statement: INITIALIZED -> PREPARED -> EXECUTED.
|
||||||
|
Stored procedure: INITIALIZED_FOR_SP -> EXECUTED.
|
||||||
|
Other statements: CONVENTIONAL_EXECUTION never changes.
|
||||||
|
*/
|
||||||
enum enum_state
|
enum enum_state
|
||||||
{
|
{
|
||||||
INITIALIZED= 0, INITIALIZED_FOR_SP= 1, PREPARED= 2,
|
INITIALIZED= 0, INITIALIZED_FOR_SP= 1, PREPARED= 2,
|
||||||
|
@ -4095,6 +4095,10 @@ create_sp_error:
|
|||||||
#endif // ifndef DBUG_OFF
|
#endif // ifndef DBUG_OFF
|
||||||
case SQLCOM_CREATE_VIEW:
|
case SQLCOM_CREATE_VIEW:
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
|
Note: SQLCOM_CREATE_VIEW also handles 'ALTER VIEW' commands
|
||||||
|
as specified through the thd->lex->create_view_mode flag.
|
||||||
|
*/
|
||||||
if (end_active_trans(thd))
|
if (end_active_trans(thd))
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
|
@ -1726,6 +1726,13 @@ static bool check_prepared_statement(Prepared_statement *stmt,
|
|||||||
res= mysql_test_create_table(stmt);
|
res= mysql_test_create_table(stmt);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case SQLCOM_CREATE_VIEW:
|
||||||
|
if (lex->create_view_mode == VIEW_ALTER)
|
||||||
|
{
|
||||||
|
my_message(ER_UNSUPPORTED_PS, ER(ER_UNSUPPORTED_PS), MYF(0));
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case SQLCOM_DO:
|
case SQLCOM_DO:
|
||||||
res= mysql_test_do_fields(stmt, tables, lex->insert_list);
|
res= mysql_test_do_fields(stmt, tables, lex->insert_list);
|
||||||
break;
|
break;
|
||||||
@ -1779,7 +1786,6 @@ static bool check_prepared_statement(Prepared_statement *stmt,
|
|||||||
case SQLCOM_ROLLBACK:
|
case SQLCOM_ROLLBACK:
|
||||||
case SQLCOM_TRUNCATE:
|
case SQLCOM_TRUNCATE:
|
||||||
case SQLCOM_CALL:
|
case SQLCOM_CALL:
|
||||||
case SQLCOM_CREATE_VIEW:
|
|
||||||
case SQLCOM_DROP_VIEW:
|
case SQLCOM_DROP_VIEW:
|
||||||
case SQLCOM_REPAIR:
|
case SQLCOM_REPAIR:
|
||||||
case SQLCOM_ANALYZE:
|
case SQLCOM_ANALYZE:
|
||||||
@ -2916,18 +2922,6 @@ bool Prepared_statement::prepare(const char *packet, uint packet_len)
|
|||||||
thd->restore_backup_statement(this, &stmt_backup);
|
thd->restore_backup_statement(this, &stmt_backup);
|
||||||
thd->stmt_arena= old_stmt_arena;
|
thd->stmt_arena= old_stmt_arena;
|
||||||
|
|
||||||
if ((protocol->type() == Protocol::PROTOCOL_TEXT) && (param_count > 0))
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
This is a mysql_sql_stmt_prepare(); query expansion will insert user
|
|
||||||
variable references, and user variables are uncacheable, thus we have to
|
|
||||||
mark this statement as uncacheable.
|
|
||||||
This has to be done before setup_set_params(), as it may make expansion
|
|
||||||
unneeded.
|
|
||||||
*/
|
|
||||||
lex->safe_to_cache_query= FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (error == 0)
|
if (error == 0)
|
||||||
{
|
{
|
||||||
setup_set_params();
|
setup_set_params();
|
||||||
|
@ -205,18 +205,17 @@ fill_defined_view_parts (THD *thd, TABLE_LIST *view)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/**
|
||||||
Creating/altering VIEW procedure
|
@brief Creating/altering VIEW procedure
|
||||||
|
|
||||||
SYNOPSIS
|
@param thd thread handler
|
||||||
mysql_create_view()
|
@param views views to create
|
||||||
thd - thread handler
|
@param mode VIEW_CREATE_NEW, VIEW_ALTER, VIEW_CREATE_OR_REPLACE
|
||||||
views - views to create
|
|
||||||
mode - VIEW_CREATE_NEW, VIEW_ALTER, VIEW_CREATE_OR_REPLACE
|
|
||||||
|
|
||||||
RETURN VALUE
|
@note This function handles both create and alter view commands.
|
||||||
FALSE OK
|
|
||||||
TRUE Error
|
@retval FALSE Operation was a success.
|
||||||
|
@retval TRUE An error occured.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool mysql_create_view(THD *thd, TABLE_LIST *views,
|
bool mysql_create_view(THD *thd, TABLE_LIST *views,
|
||||||
|
@ -5169,7 +5169,14 @@ alter:
|
|||||||
}
|
}
|
||||||
| ALTER view_algorithm definer
|
| ALTER view_algorithm definer
|
||||||
{
|
{
|
||||||
Lex->create_view_mode= VIEW_ALTER;
|
LEX *lex= Lex;
|
||||||
|
|
||||||
|
if (lex->sphead)
|
||||||
|
{
|
||||||
|
my_error(ER_SP_BADSTATEMENT, MYF(0), "ALTER VIEW");
|
||||||
|
MYSQL_YYABORT;
|
||||||
|
}
|
||||||
|
lex->create_view_mode= VIEW_ALTER;
|
||||||
}
|
}
|
||||||
view_tail
|
view_tail
|
||||||
{}
|
{}
|
||||||
@ -5181,6 +5188,12 @@ alter:
|
|||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
LEX *lex= Lex;
|
LEX *lex= Lex;
|
||||||
|
|
||||||
|
if (lex->sphead)
|
||||||
|
{
|
||||||
|
my_error(ER_SP_BADSTATEMENT, MYF(0), "ALTER VIEW");
|
||||||
|
MYSQL_YYABORT;
|
||||||
|
}
|
||||||
lex->create_view_algorithm= VIEW_ALGORITHM_UNDEFINED;
|
lex->create_view_algorithm= VIEW_ALGORITHM_UNDEFINED;
|
||||||
lex->create_view_mode= VIEW_ALTER;
|
lex->create_view_mode= VIEW_ALTER;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user