diff options
author | unknown <konstantin@mysql.com> | 2006-07-04 23:46:15 +0400 |
---|---|---|
committer | unknown <konstantin@mysql.com> | 2006-07-04 23:46:15 +0400 |
commit | c12cc90d12b0be745975fcfdc010f53e707af1d3 (patch) | |
tree | a7a8aa12da0a32c3c9b7147eb0d41983bdb0aff1 /mysql-test/r/init_file.result | |
parent | 6a8f2ee2931342d40576736c2286352f0c654c33 (diff) | |
download | mariadb-git-c12cc90d12b0be745975fcfdc010f53e707af1d3.tar.gz |
A fix and a test case for Bug#17843 "Certain stored procedures fail to
run at startup"
The server returned an error when trying to execute init-file with a
stored procedure that could return multiple result sets to the client.
A stored procedure can return multiple result sets if it contains
PREPARE, SELECT, SHOW and similar statements.
The fix is to set client_capabilites|=CLIENT_MULTI_RESULTS in
sql_parse.cc:handle_bootstrap(). There is no "client" really, so
nothing is ever sent. This makes init-file feature behave consistently:
the prepared statements that can be called directly in the init-file
can be used in a stored procedure too.
Re-committed the patch originally submitted by Per-Erik after review.
mysql-test/Makefile.am:
Fix re-make without make clean.
mysql-test/r/init_connect.result:
Updated results (a test case for Bug#17843)
mysql-test/r/init_file.result:
Updated results (a test case for Bug#17843)
mysql-test/std_data/init_file.dat:
Add test coverage for new features added in 5.0. Note, that what can
be done in init_file is very limited as it does not support any other
delimiter except ';' -- only "one liners" and no multiple statement
procedures. Also, this is executed with a dummy user "boot@", which
calls for the use of DEFINER clause.
mysql-test/t/init_connect.test:
Add test coverage for new features added in 5.0.
mysql-test/t/init_file.test:
Add test coverage for new features added in 5.0 --
stored routines, views, triggers. The actual tests are in
std_data/init_file.dat, here we just check the results and clean up.
sql/sql_class.cc:
Initialize Security_context::priv_host to an empty string:
when executing an init-file, sql_parse.cc:get_default_definer()
will use this for the value of the definer if it's not set in the query.
sql/sql_parse.cc:
Set CLIENT_MULTI_RESULTS in handle_bootstrap(), to make prepared
statements work in stored procedures called from init-file.
Diffstat (limited to 'mysql-test/r/init_file.result')
-rw-r--r-- | mysql-test/r/init_file.result | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/mysql-test/r/init_file.result b/mysql-test/r/init_file.result index 9766475a418..1569f2c3d68 100644 --- a/mysql-test/r/init_file.result +++ b/mysql-test/r/init_file.result @@ -1 +1,16 @@ ok +end of 4.1 tests +select * from t1; +x +3 +5 +7 +11 +13 +select * from t2; +y +30 +3 +11 +13 +drop table t1, t2; |