List:Commits« Previous MessageNext Message »
From:Konstantin Osipov Date:November 15 2008 7:57am
Subject:bzr push into mysql-6.0 branch (kostja:2863 to 2864) WL#2793
View as plain text  
 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#2793Konstantin Osipov15 Nov