From: Dmitry Lenev Date: November 12 2010 1:58pm Subject: bzr push into mysql-5.5-runtime branch (Dmitry.Lenev:3181 to 3182) Bug#54673 Bug#57006 List-Archive: http://lists.mysql.com/commits/123731 X-Bug: 54673,57006 Message-Id: <20101112135852.2393AE58D3@mockturtle> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 3182 Dmitry Lenev 2010-11-12 Follow-up for patch fixing bug #57006 "Deadlock between HANDLER and FLUSH TABLES WITH READ LOCK" and bug #54673 "It takes too long to get readlock for 'FLUSH TABLES WITH READ LOCK'". Disable execution of flush_read_lock.test on embedded server. This test uses too many statements which are not supported by embedded server. modified: mysql-test/t/flush_read_lock.test 3181 Konstantin Osipov 2010-11-12 Implement a fix for Bug#57058 -- send SERVER_QUERY_WAS_SLOW over 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. modified: include/mysql_com.h sql/protocol.cc sql/sp_head.cc sql/sql_class.h sql/sql_cursor.cc sql/sql_db.cc sql/sql_error.cc sql/sql_error.h sql/sql_parse.cc tests/mysql_client_test.c === modified file 'mysql-test/t/flush_read_lock.test' --- a/mysql-test/t/flush_read_lock.test 2010-11-11 17:11:05 +0000 +++ b/mysql-test/t/flush_read_lock.test 2010-11-12 13:57:08 +0000 @@ -7,6 +7,9 @@ --source include/have_innodb.inc # We need the Debug Sync Facility. --source include/have_debug_sync.inc +# Parts of this test use DDL on events, BINLOG statement and +# other statements which are not supported in embedded server. +-- source include/not_embedded.inc # Save the initial number of concurrent sessions. --source include/count_sessions.inc No bundle (reason: useless for push emails).