• Michael Widenius's avatar
    Fixed assert in perfschema/pfs.cc::start_idle_wait_v1 when using performance... · ff205b25
    Michael Widenius authored
    Fixed assert in perfschema/pfs.cc::start_idle_wait_v1 when using performance schema and big packets in debug version.
    
    The bug was that my_real_read() called net_before_header_psi() multiple times for long packets.
    Fixed by adding a flag when we are reading a header.
    Did also some cleanups to interface of my_net_read() to avoid unnecessary calls if performance schema is not used.
    
    - Added my_net_read_packet() as a replacement for my_net_read(). my_net_read() is still in the client library for old clients.
    - Removed THD->m_server_idle (not needed anymore as this is now given as argument to my_net_read_packet()
    - Added my_net_read_packet(), which is a new version of my_net_read() with a new parameter if we are doing a read for a new command from the server.
    - Added tests for compressed protocol and big packets
    
    
    
    
    
    include/mysql.h.pp:
      Added my_net_read_packet() as a replacement for my_net_read()
    include/mysql_com.h:
      Added my_net_read_packet() as a replacement for my_net_read()
    mysql-test/r/mysql_client_test_comp.result:
      New test
    mysql-test/t/mysql_client_test-master.opt:
      Added max_allowed_packet to be able to test big packets and packet size overflows.
    mysql-test/t/mysql_client_test_comp-master.opt:
      New test
    mysql-test/t/mysql_client_test_nonblock-master.opt:
      Added max_allowed_packet to be able to test big packets and packet size overflows.
    sql-common/client.c:
      Use my_net_read_packet()
    sql/mf_iocache.cc:
      Use my_net_read_packet()
    sql/mysqld.cc:
      Removed THD->m_server_idle (not needed anymore as this is now given as argument to my_net_read_packet()
    sql/net_serv.cc:
      Added argument to my_real_read() to indicte if we are reading the first block of the next statement and should call performance schema.
      Added 'compatibilty function' my_net_read().
      Added my_net_read_packet(), which is a new version of my_net_read() with a new parameter if we are doing a read for a new command from the server.
    sql/sql_class.cc:
      Removed m_server_idle (not needed anymore)
    sql/sql_class.h:
      Removed m_server_idle (not needed anymore)
    sql/sql_parse.cc:
      Removed m_server_idle (not needed anymore)
    tests/mysql_client_test.c:
      Added tests for compressed protocol and big packets
    ff205b25
mysql_com.h 26.2 KB