mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-15492: Subquery crash similar to MDEV-10050
Detection of first execution of PS fixed. More debug info.
This commit is contained in:
@ -3819,6 +3819,7 @@ bool Prepared_statement::execute(String *expanded_query, bool open_cursor)
|
||||
Statement stmt_backup;
|
||||
Query_arena *old_stmt_arena;
|
||||
bool error= TRUE;
|
||||
bool qc_executed= FALSE;
|
||||
|
||||
char saved_cur_db_name_buf[SAFE_NAME_LEN+1];
|
||||
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;
|
||||
status_var_increment(thd->status_var.com_stat[SQLCOM_SELECT]);
|
||||
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->stmt_arena= old_stmt_arena;
|
||||
|
||||
if (state == Query_arena::STMT_PREPARED)
|
||||
if (state == Query_arena::STMT_PREPARED && !qc_executed)
|
||||
state= Query_arena::STMT_EXECUTED;
|
||||
|
||||
if (error == 0 && this->lex->sql_command == SQLCOM_CALL)
|
||||
|
Reference in New Issue
Block a user