2864 Konstantin Osipov 2008-11-15
WL#2793 "Dynamic SQL: support EXECUTE IMMEDIATE":
fix a crash if recursion.
modified:
mysql-test/t/sp-dynamic.test
sql/sql_prepare.cc
2863 Konstantin Osipov 2008-11-11
WL#2793 "Dynamic SQL: support EXECUTE IMMEDIATE"
WL#4627 "Prepared Statements: add C API call mysql_stmt_execute_immediate()"
Add support for EXECUTE IMMEDIATE SQL syntax.
This syntax allows to construct and execute an arbitrary SQL statement,
and is allowed inside stored procedures and events, which allows for
extreme flexibility.
Add mysql_stmt_execute_immediate(), which allows to execute arbitrary query,
but get data back in binary format (lower network overhead).
modified:
BUILD/SETUP.sh
client/mysqltest.c
include/mysql.h
include/mysql.h.pp
include/mysql_com.h
libmysql/libmysql.c
mysql-test/mysql-test-run.pl
mysql-test/r/func_time.result
mysql-test/r/partition.result
mysql-test/r/query_cache.result
mysql-test/r/sp-security.result
mysql-test/r/sp.result
mysql-test/r/sp_notembedded.result
mysql-test/t/explain.test
mysql-test/t/func_time.test
mysql-test/t/log_tables.test
mysql-test/t/partition.test
mysql-test/t/query_cache.test
mysql-test/t/query_cache_ps_no_prot.test
mysql-test/t/sp-security.test
mysql-test/t/sp-threads.test
mysql-test/t/sp.test
mysql-test/t/sp_notembedded.test
mysql-test/t/view.test
mysql-test/t/warnings.test
sql/lex.h
sql/mysql_priv.h
sql/mysqld.cc
sql/protocol.cc
sql/sp_head.cc
sql/sql_class.cc
sql/sql_class.h
sql/sql_lex.cc
sql/sql_lex.h
sql/sql_parse.cc
sql/sql_prepare.cc
sql/sql_yacc.yy
tests/mysql_client_test.c
=== modified file 'mysql-test/t/sp-dynamic.test'
--- a/mysql-test/t/sp-dynamic.test 2007-06-22 09:55:48 +0000
+++ b/mysql-test/t/sp-dynamic.test 2008-11-15 07:57:15 +0000
@@ -358,3 +358,8 @@ drop procedure if exists p1|
# End of the test
delimiter ;|
+--echo # ------------------------------------------------------------------
+--echo # -- End of 5.1 tests
+--echo # ------------------------------------------------------------------
+set @var="execute immediate @var";
+execute immediate @var;
=== modified file 'sql/sql_prepare.cc'
--- a/sql/sql_prepare.cc 2008-11-11 19:09:14 +0000
+++ b/sql/sql_prepare.cc 2008-11-15 07:57:15 +0000
@@ -3388,7 +3388,8 @@ Prepared_statement::execute_immediate(co
if (lex->sql_command == SQLCOM_PREPARE ||
lex->sql_command == SQLCOM_EXECUTE ||
- (lex->sql_command == SQLCOM_CHANGE_DB && is_sql_prepare()))
+ ((lex->sql_command == SQLCOM_CHANGE_DB ||
+ lex->sql_command == SQLCOM_EXECUTE_IMMEDIATE) && is_sql_prepare()))
{
my_error(ER_PS_NO_RECURSION, MYF(0));
error= 1;
| Thread |
|---|
| • bzr push into mysql-6.0 branch (kostja:2863 to 2864) WL#2793 | Konstantin Osipov | 15 Nov |