diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 53835cce7df..aa4456f0f4e 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -668,9 +668,6 @@ bool do_command(THD *thd) enum enum_server_command command; DBUG_ENTER("do_command"); -#if defined(ENABLED_PROFILING) && defined(COMMUNITY_SERVER) - thd->profiling.start_new_query(); -#endif /* indicator of uninitialized lex => normal flow of errors handling (see my_message_sql) @@ -688,7 +685,12 @@ bool do_command(THD *thd) thd->clear_error(); // Clear error message net_new_transaction(net); - if ((packet_length=my_net_read(net)) == packet_error) + + packet_length= my_net_read(net); +#if defined(ENABLED_PROFILING) && defined(COMMUNITY_SERVER) + thd->profiling.start_new_query(); +#endif + if (packet_length == packet_error) { DBUG_PRINT("info",("Got error %d reading command from socket %s", net->error, diff --git a/sql/sql_profile.cc b/sql/sql_profile.cc index 5b6e0187a92..fd2ae32c711 100644 --- a/sql/sql_profile.cc +++ b/sql/sql_profile.cc @@ -378,6 +378,7 @@ void PROFILING::finish_current_query() if ((enabled) && /* ON at start? */ ((thd->options & OPTION_PROFILING) != 0) && /* and ON at end? */ + (current->query_source != NULL) && (! current->entries.is_empty())) { current->profiling_query_id= next_profile_id(); /* assign an id */