Commit 2c82ee2f authored by unknown's avatar unknown
Browse files

Fix for bug #5066(Wrong result after subselect with an error)

In this case we have to clear thd->data after errorneous query.
So i just move thd->data cleanup to emb_advanced_command


libmysqld/lib_sql.cc:
  Cleaning thd->data moved to emb_advanced_command
parent 83e3d3f9
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -72,6 +72,11 @@ emb_advanced_command(MYSQL *mysql, enum enum_server_command command,
  THD *thd=(THD *) mysql->thd;
  NET *net= &mysql->net;

  if (thd->data)
  {
    free_rows(thd->data);
    thd->data= 0;
  }
  /* Check that we are calling the client functions in right order */
  if (mysql->status != MYSQL_STATUS_READY)
  {
@@ -217,11 +222,6 @@ static int emb_stmt_execute(MYSQL_STMT *stmt)
  THD *thd= (THD*)stmt->mysql->thd;
  thd->client_param_count= stmt->param_count;
  thd->client_params= stmt->params;
  if (thd->data)
  {
    free_rows(thd->data);
    thd->data= 0;
  }
  if (emb_advanced_command(stmt->mysql, COM_EXECUTE,0,0,
			   (const char*)&stmt->stmt_id,sizeof(stmt->stmt_id),
			   1) ||