Commit 891a8f57 authored by konstantin@mysql.com's avatar konstantin@mysql.com

Making the latest fix for Bug#6166 (key.test) work in prepared statements.

parent 75f7235e
...@@ -1609,7 +1609,7 @@ int mysql_stmt_prepare(THD *thd, char *packet, uint packet_length, ...@@ -1609,7 +1609,7 @@ int mysql_stmt_prepare(THD *thd, char *packet, uint packet_length,
lex->safe_to_cache_query= 0; lex->safe_to_cache_query= 0;
error= yyparse((void *)thd) || thd->is_fatal_error || error= yyparse((void *)thd) || thd->is_fatal_error ||
init_param_array(stmt); thd->net.report_error || init_param_array(stmt);
/* /*
While doing context analysis of the query (in send_prepare_results) we While doing context analysis of the query (in send_prepare_results) we
allocate a lot of additional memory: for open tables, JOINs, derived allocate a lot of additional memory: for open tables, JOINs, derived
...@@ -1640,7 +1640,9 @@ int mysql_stmt_prepare(THD *thd, char *packet, uint packet_length, ...@@ -1640,7 +1640,9 @@ int mysql_stmt_prepare(THD *thd, char *packet, uint packet_length,
/* Statement map deletes statement on erase */ /* Statement map deletes statement on erase */
thd->stmt_map.erase(stmt); thd->stmt_map.erase(stmt);
stmt= NULL; stmt= NULL;
/* error is sent inside yyparse/send_prepare_results */ if (thd->net.report_error)
send_error(thd);
/* otherwise the error is sent inside yyparse/send_prepare_results */
} }
else else
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment