|
@ -3819,6 +3819,7 @@ bool Prepared_statement::execute(String *expanded_query, bool open_cursor) |
|
|
Statement stmt_backup; |
|
|
Statement stmt_backup; |
|
|
Query_arena *old_stmt_arena; |
|
|
Query_arena *old_stmt_arena; |
|
|
bool error= TRUE; |
|
|
bool error= TRUE; |
|
|
|
|
|
bool qc_executed= FALSE; |
|
|
|
|
|
|
|
|
char saved_cur_db_name_buf[SAFE_NAME_LEN+1]; |
|
|
char saved_cur_db_name_buf[SAFE_NAME_LEN+1]; |
|
|
LEX_STRING saved_cur_db_name= |
|
|
LEX_STRING saved_cur_db_name= |
|
@ -3937,6 +3938,7 @@ bool Prepared_statement::execute(String *expanded_query, bool open_cursor) |
|
|
thd->lex->sql_command= SQLCOM_SELECT; |
|
|
thd->lex->sql_command= SQLCOM_SELECT; |
|
|
status_var_increment(thd->status_var.com_stat[SQLCOM_SELECT]); |
|
|
status_var_increment(thd->status_var.com_stat[SQLCOM_SELECT]); |
|
|
thd->update_stats(); |
|
|
thd->update_stats(); |
|
|
|
|
|
qc_executed= TRUE; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -3960,7 +3962,7 @@ bool Prepared_statement::execute(String *expanded_query, bool open_cursor) |
|
|
thd->set_statement(&stmt_backup); |
|
|
thd->set_statement(&stmt_backup); |
|
|
thd->stmt_arena= old_stmt_arena; |
|
|
thd->stmt_arena= old_stmt_arena; |
|
|
|
|
|
|
|
|
if (state == Query_arena::STMT_PREPARED) |
|
|
|
|
|
|
|
|
if (state == Query_arena::STMT_PREPARED && !qc_executed) |
|
|
state= Query_arena::STMT_EXECUTED; |
|
|
state= Query_arena::STMT_EXECUTED; |
|
|
|
|
|
|
|
|
if (error == 0 && this->lex->sql_command == SQLCOM_CALL) |
|
|
if (error == 0 && this->lex->sql_command == SQLCOM_CALL) |
|
|