summaryrefslogtreecommitdiff
path: root/sql/sql_parse.cc
diff options
context:
space:
mode:
authorunknown <sergefp@mysql.com>2004-05-15 00:06:16 +0400
committerunknown <sergefp@mysql.com>2004-05-15 00:06:16 +0400
commitd26969764ee0c261acf9eb2862c7ea037ac843f0 (patch)
tree2b847992c4d6ac40460d6727558f05df45a64c69 /sql/sql_parse.cc
parent2edbe2e7879362cf19fefb22627c31510963e67f (diff)
parent5cfa8301ea435657f6c186b8f3b4c398f04b85ac (diff)
downloadmariadb-git-d26969764ee0c261acf9eb2862c7ea037ac843f0.tar.gz
Trivial manual merge
sql/sql_class.h: Auto merged sql/sql_lex.h: Auto merged sql/sql_parse.cc: Auto merged sql/sql_yacc.yy: Auto merged
Diffstat (limited to 'sql/sql_parse.cc')
-rw-r--r--sql/sql_parse.cc40
1 files changed, 38 insertions, 2 deletions
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
index e949d40625d..65d538e3ac4 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -1424,7 +1424,6 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
}
case COM_EXECUTE:
{
- thd->free_list= NULL;
mysql_stmt_execute(thd, packet, packet_length);
break;
}
@@ -1971,7 +1970,44 @@ mysql_execute_command(THD *thd)
}
break;
}
-
+ case SQLCOM_PREPARE:
+ {
+ DBUG_PRINT("info", ("PREPARE: %.*s FROM '%.*s' \n",
+ lex->prepared_stmt_name.length,
+ lex->prepared_stmt_name.str,
+ lex->prepared_stmt_code.length,
+ lex->prepared_stmt_code.str));
+ thd->command= COM_PREPARE;
+ if (!mysql_stmt_prepare(thd, lex->prepared_stmt_code.str,
+ lex->prepared_stmt_code.length + 1,
+ &lex->prepared_stmt_name))
+ send_ok(thd, 0L, 0L, "Statement prepared");
+ break;
+ }
+ case SQLCOM_EXECUTE:
+ {
+ DBUG_PRINT("info", ("EXECUTE: %.*s\n",
+ lex->prepared_stmt_name.length,
+ lex->prepared_stmt_name.str));
+ mysql_sql_stmt_execute(thd, &lex->prepared_stmt_name);
+ lex->prepared_stmt_params.empty();
+ break;
+ }
+ case SQLCOM_DEALLOCATE_PREPARE:
+ {
+ Statement* stmt;
+ DBUG_PRINT("info", ("DEALLOCATE PREPARE: %.*s\n",
+ lex->prepared_stmt_name.length,
+ lex->prepared_stmt_name.str));
+ if ((stmt= thd->stmt_map.find_by_name(&lex->prepared_stmt_name)))
+ {
+ thd->stmt_map.erase(stmt);
+ send_ok(thd);
+ }
+ else
+ send_error(thd,ER_UNKNOWN_STMT_HANDLER,"Undefined prepared statement");
+ break;
+ }
case SQLCOM_DO:
if (tables && ((res= check_table_access(thd, SELECT_ACL, tables,0)) ||
(res= open_and_lock_tables(thd,tables))))