• Konstantin Osipov's avatar
    Implement a fix for Bug#57058 -- send SERVER_QUERY_WAS_SLOW over · 78fa2e4d
    Konstantin Osipov authored
    network when a query was slow.
    
    When a query is slow, sent a special flag to the client
    indicating this fact.
    
    Add a test case.
    Implement review comments.
    
    
    
    include/mysql_com.h:
      Clear SERVER_QUERY_WAS_SLOW at end of each statement.
      Since this patch removes the technique when 
      thd->server_status is modified briefly only to
      execute my_eof(), reset more server status
      bit that may remain in the status from
      execution of the previous statement.
    sql/protocol.cc:
      Always use thd->server_status to 
      in net_* functions to send the latest
      status to the client.
    sql/sp_head.cc:
      Calculate if a query was slow before
      sending EOF packet.
    sql/sql_cursor.cc:
      Remove juggling with thd->server_status.
      The extra status bits are reset at
      start of the next statement.
    sql/sql_db.cc:
      Remove juggling with thd->server_status.
      The extra status bits are reset at
      start of the next statement.
    sql/sql_error.cc:
      Remove m_server_status member,
      it's not really part of the Diagnostics_area.
    sql/sql_error.h:
      Remove server_status member, it's
      not part of the Diagnostics_area.
      The associated hack is removed as well.
    sql/sql_parse.cc:
      Do not calculate if a query was
      slow twice. Use a status flag in thd->server_status.
    tests/mysql_client_test.c:
      Add a test case for Bug#57058.
      Check that the status is present
      at the client, when sent.
    78fa2e4d
sql_error.h 16.1 KB