diff options
author | unknown <sergefp@mysql.com> | 2004-05-15 00:06:16 +0400 |
---|---|---|
committer | unknown <sergefp@mysql.com> | 2004-05-15 00:06:16 +0400 |
commit | d26969764ee0c261acf9eb2862c7ea037ac843f0 (patch) | |
tree | 2b847992c4d6ac40460d6727558f05df45a64c69 /sql/sql_parse.cc | |
parent | 2edbe2e7879362cf19fefb22627c31510963e67f (diff) | |
parent | 5cfa8301ea435657f6c186b8f3b4c398f04b85ac (diff) | |
download | mariadb-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.cc | 40 |
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)))) |