Commit b323667f authored by unknown's avatar unknown
Browse files

Prelocking-free SPs, post-review fixes:

* Don't activate prelocking mode for evaluating procedure arguments when it is not necessary.
* Code structure simplification and cleanup.
* Cleanup in .test files


mysql-test/r/sp-prelocking.result:
  Prelocking-free SPs, post-review fixes:
  Added comment, s/testdb/mysqltest/, fixed a wrong test (error wasnt reported because of known bug in mysqltestrun)
mysql-test/r/sp-security.result:
  Don't drop the table we're not using.
mysql-test/r/sp.result:
  Prelocking-free SPs, post-review fixes:
  remove redundant "drop table if exists t3" statements
mysql-test/t/sp-prelocking.test:
  Prelocking-free SPs, post-review fixes:
  Added comment, s/testdb/mysqltest/, fixed a wrong test (error wasnt reported because of known bug in mysqltestrun)
mysql-test/t/sp-security.test:
  Don't drop the table we're not using.
mysql-test/t/sp.test:
  Prelocking-free SPs, post-review fixes:
  remove redundant "drop table if exists t3" statements
sql/sp.cc:
  New, better defined, sp_get_prelocking_info() function to get info about
    statement prelocking options
sql/sp.h:
  Prelocking-free SPs, post-review fixes: New, better defined, sp_get_prelocking_info() 
  function to get info about statement prelocking options
sql/sp_cache.h:
  Prelocking-free SPs, post-review fixes: Amended the comments
sql/sp_head.cc:
  Prelocking-free SPs, post-review fixes: Amend the comments, simplify the code that 
  attaches removes statement's prelocking tables.
sql/sql_base.cc:
  Prelocking-free SPs, post-review fixes:
  * Use a better defined sp_get_prelocking_info() function to get info about 
    statement prelocking options
  * Don't activate prelocked mode for evaluation of SP arguments that use tables 
    but don't need prelocking.
sql/sql_class.cc:
  Prelocking-free SPs, post-review fixes: Initialize THD members in the order they are declared.
parent 11abe15e
Loading
Loading
Loading
Loading
+11 −15
Original line number Diff line number Diff line
drop database if exists testdb;
drop database if exists mysqltest;
drop table if exists t1, t2, t3, t4;
drop procedure if exists sp1;
drop procedure if exists sp2;
@@ -7,8 +7,8 @@ drop procedure if exists sp4;
drop function if exists f1;
drop function if exists f2;
drop function if exists f3;
create database testdb;
use testdb//
create database mysqltest;
use mysqltest//
create procedure sp1 () 
begin
drop table if exists t1;
@@ -17,7 +17,7 @@ end;
//
select database();
database()
testdb
mysqltest
call sp1();
my-col
1
@@ -25,12 +25,12 @@ Warnings:
Note	1051	Unknown table 't1'
select database();
database()
testdb
mysqltest
use test;
select database();
database()
test
call testdb.sp1();
call mysqltest.sp1();
my-col
1
Warnings:
@@ -38,8 +38,8 @@ Note 1051 Unknown table 't1'
select database();
database()
test
drop procedure testdb.sp1;
drop database testdb;
drop procedure mysqltest.sp1;
drop database mysqltest;
create procedure sp1() 
begin 
create table t1 (a int); 
@@ -95,13 +95,15 @@ create temporary table t1 (a int);
insert into t1 values(1);
call sp1();
select 't1', a from t1;
select 't2', b from t2;
select 't2', a from t2;
drop table t1;
drop table t2;
end//
call sp2();
t1	a
t1	1
t2	a
t2	1
drop procedure sp1;
drop procedure sp2;
create table t1 (a int);
@@ -138,21 +140,15 @@ end //
call sp4();
a
1
1
1
2
a
1
1
2
a
1
1
2
a
5
drop temporary table t1;
drop temporary table t2;
drop procedure sp1;
drop procedure sp2;
drop procedure sp3;
+1 −1
Original line number Diff line number Diff line
use test;
grant usage on *.* to user1@localhost;
flush privileges;
drop table if exists t1,t2;
drop table if exists t1;
drop database if exists db1_secret;
create database db1_secret;
create procedure db1_secret.dummy() begin end;
+1 −21
Original line number Diff line number Diff line
@@ -84,7 +84,6 @@ foo 1
kaka	3
delete from t1|
drop procedure setcontext|
drop table if exists t3|
create table t3 ( d date, i int, f double, s varchar(32) )|
drop procedure if exists nullset|
create procedure nullset()
@@ -520,7 +519,6 @@ select data into x from test.t1 limit 1;
insert into test.t3 values ("into4", x);
end|
delete from t1|
drop table if exists t3|
create table t3 ( s char(16), d int)|
call into_test4()|
Warnings:
@@ -564,13 +562,12 @@ insert into test.t1 values (x, y);
create temporary table test.t3 select * from test.t1;
insert into test.t3 values (concat(x, "2"), y+2);
end|
drop table if exists t3|
call create_select("cs", 90)|
select * from t1, t3|
id	data	id	data
cs	90	cs	90
cs	90	cs2	92
drop table if exists t3|
drop table t3|
delete from t1|
drop procedure create_select|
drop function if exists e|
@@ -701,7 +698,6 @@ id data
hndlr3	13
delete from t1|
drop procedure hndlr3|
drop table if exists t3|
create table t3 ( id   char(16), data int )|
drop procedure if exists hndlr4|
create procedure hndlr4()
@@ -744,7 +740,6 @@ foo 40
bar	15
zap	663
drop procedure cur1|
drop table if exists t3|
create table t3 ( s char(16), i int )|
drop procedure if exists cur2|
create procedure cur2()
@@ -1308,7 +1303,6 @@ select t1max()|
t1max()
5
drop function t1max|
drop table if exists t3|
create table t3 (
v char(16) not null primary key,
c int unsigned not null
@@ -1429,7 +1423,6 @@ select @1, @2|
2	NULL
drop table t70|
drop procedure bug1656|
drop table if exists t3|
create table t3(a int)|
drop procedure if exists bug1862|
create procedure bug1862()
@@ -1554,7 +1547,6 @@ select @x|
42
drop procedure bug2776_1|
drop procedure bug2776_2|
drop table if exists t3|
create table t3 (s1 smallint)|
insert into t3 values (123456789012)|
Warnings:
@@ -1615,7 +1607,6 @@ f1 rc t3
drop procedure bug1863|
drop temporary table temp_t1;
drop table t3, t4|
drop table if exists t3, t4|
create table t3 ( 
OrderID  int not null,
MarketID int,
@@ -1693,7 +1684,6 @@ select @i, from_unixtime(@stamped_time, '%d-%m-%Y %h:%i:%s') as time|
@i	time
2	01-01-1970 03:16:40
drop procedure bug3426|
drop table if exists t3, t4|
create table t3 (
a int primary key, 
ach char(1)
@@ -1723,7 +1713,6 @@ a ach b bch
1	a	1	b
drop procedure bug3448|
drop table t3, t4|
drop table if exists t3|
create table t3 (
id int unsigned auto_increment not null primary key,
title VARCHAR(200),
@@ -1872,7 +1861,6 @@ select 1+2|
1+2
3
drop procedure bug3843|
drop table if exists t3|
create table t3 ( s1 char(10) )|
insert into t3 values ('a'), ('b')|
drop procedure if exists bug3368|
@@ -1888,7 +1876,6 @@ group_concat(v)
yz,yz
drop procedure bug3368|
drop table t3|
drop table if exists t3|
create table t3 (f1 int, f2 int)|
insert into t3 values (1,1)|
drop procedure if exists bug4579_1|
@@ -1913,7 +1900,6 @@ Warning 1329 No data to FETCH
drop procedure bug4579_1|
drop procedure bug4579_2|
drop table t3|
drop table if exists t3|
drop procedure if exists bug2773|
create function bug2773() returns int return null|
create table t3 as select bug2773()|
@@ -1935,7 +1921,6 @@ select bug3788()|
bug3788()
5
drop function bug3788|
drop table if exists t3|
create table t3 (f1 int, f2 int, f3 int)|
insert into t3 values (1,1,1)|
drop procedure if exists bug4726|
@@ -2096,7 +2081,6 @@ call bug4902_2()|
Id	User	Host	db	Command	Time	State	Info
#	root	localhost	test	Query	#	NULL	show processlist
drop procedure bug4902_2|
drop table if exists t3|
drop procedure if exists bug4904|
create procedure bug4904()
begin
@@ -2285,7 +2269,6 @@ flush status|
flush query cache|
delete from t1|
drop procedure bug3583|
drop table if exists t3|
drop procedure if exists bug4905|
create table t3 (s1 int,primary key (s1))|
drop procedure if exists bug4905|
@@ -2343,7 +2326,6 @@ call bug8540()|
y	z
1	1
drop procedure bug8540|
drop table if exists t3|
create table t3 (s1 int)|
drop procedure if exists bug6642|
create procedure bug6642()
@@ -2426,7 +2408,6 @@ call bug7992_2()|
drop procedure bug7992_1|
drop procedure bug7992_2|
drop table t3|
drop table if exists t3|
create table t3 (  userid bigint(20) not null default 0 )|
drop procedure if exists bug8116|
create procedure bug8116(in _userid int)
@@ -2587,7 +2568,6 @@ delete from t1|
drop procedure if exists bug6900|
drop procedure if exists bug9074|
drop procedure if exists bug6900_9074|
drop table if exists t3|
create table t3 (w char unique, x char)|
insert into t3 values ('a', 'b')|
create procedure bug6900()
+15 −9
Original line number Diff line number Diff line
#
# Tests of prelocking-free execution of stored procedures.
# Currently two properties of prelocking-free SP execution are checked:
#  - It is possible to execute DDL statements in prelocking-free stored
#    procedure
#  - The same procedure can be called in prelocking-free mode and 
#    in prelocked mode (from within a function).

--disable_warnings
drop database if exists testdb;
drop database if exists mysqltest;
drop table if exists t1, t2, t3, t4;
drop procedure if exists sp1;
drop procedure if exists sp2;
@@ -12,9 +20,9 @@ drop function if exists f3;

# BUG#8072 

create database testdb;
create database mysqltest;
delimiter //;
use testdb//
use mysqltest//
create procedure sp1 () 
begin
  drop table if exists t1;
@@ -29,11 +37,11 @@ select database();

use test;
select database();
call testdb.sp1();
call mysqltest.sp1();
select database();

drop procedure testdb.sp1;
drop database testdb;
drop procedure mysqltest.sp1;
drop database mysqltest;

# BUG#8766

@@ -96,7 +104,7 @@ begin
  insert into t1 values(1);
  call sp1();
  select 't1', a from t1;
  select 't2', b from t2;
  select 't2', a from t2;
  drop table t1;
  drop table t2;
end//
@@ -151,8 +159,6 @@ end //
delimiter ;//
call sp4();

drop temporary table t1;
drop temporary table t2;
drop procedure sp1;
drop procedure sp2;
drop procedure sp3;
+1 −1
Original line number Diff line number Diff line
@@ -15,7 +15,7 @@ grant usage on *.* to user1@localhost;
flush privileges;

--disable_warnings
drop table if exists t1,t2;
drop table if exists t1;
drop database if exists db1_secret;
--enable_warnings
# Create our secret database
Loading