mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 15:50:51 +03:00 
			
		
		
		
	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.
		
			
				
	
	
		
			21 lines
		
	
	
		
			386 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			21 lines
		
	
	
		
			386 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| #
 | |
| # This is a regression test for bug #2526 "--init-file crashes MySQL if it
 | |
| # contains a large select"
 | |
| #
 | |
| # See mysql-test/std_data/init_file.dat and
 | |
| # mysql-test/t/init_file-master.opt for the actual test
 | |
| # 
 | |
| 
 | |
| --echo ok
 | |
| --echo end of 4.1 tests
 | |
| #
 | |
| # Chec 5.x features
 | |
| #
 | |
| # Expected:
 | |
| #   3, 5, 7, 11, 13 
 | |
| select * from t1;
 | |
| # Expected:
 | |
| #   30, 3, 11, 13
 | |
| select * from t2;
 | |
| drop table t1, t2;
 |