From: Bjorn Munch Date: September 22 2010 8:59am Subject: bzr commit into mysql-5.1-mtr branch (bjorn.munch:2934) Bug#56921 List-Archive: http://lists.mysql.com/commits/118782 X-Bug: 56921 Message-Id: <201009220859.o8M8xtIm014154@khepri15.norway.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0968185827==" --===============0968185827== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///home/bm136801/my/ecl-51/ based on revid:bjorn.munch@stripped 2934 Bjorn Munch 2010-09-22 Bug #56921 It should be possible to log connection statements in mysqltest Added --enable-connect-log, somewhet similar to --enable-query-log If query log is disabled, disable connect log too Also some related cleanup in mysqltest.test: removing duplicate test loop modified: client/mysqltest.cc mysql-test/r/mysqltest.result mysql-test/t/mysqltest.test === modified file 'client/mysqltest.cc' --- a/client/mysqltest.cc 2010-09-20 09:21:27 +0000 +++ b/client/mysqltest.cc 2010-09-22 08:57:10 +0000 @@ -103,6 +103,7 @@ static my_bool parsing_disabled= 0; static my_bool display_result_vertically= FALSE, display_result_lower= FALSE, display_metadata= FALSE, display_result_sorted= FALSE; static my_bool disable_query_log= 0, disable_result_log= 0; +static my_bool disable_connect_log= 1; static my_bool disable_warnings= 0; static my_bool disable_info= 1; static my_bool abort_on_error= 1; @@ -275,6 +276,7 @@ enum enum_commands { Q_DISABLE_RPL_PARSE, Q_EVAL_RESULT, Q_ENABLE_QUERY_LOG, Q_DISABLE_QUERY_LOG, Q_ENABLE_RESULT_LOG, Q_DISABLE_RESULT_LOG, + Q_ENABLE_CONNECT_LOG, Q_DISABLE_CONNECT_LOG, Q_WAIT_FOR_SLAVE_TO_STOP, Q_ENABLE_WARNINGS, Q_DISABLE_WARNINGS, Q_ENABLE_INFO, Q_DISABLE_INFO, @@ -342,6 +344,8 @@ const char *command_names[]= /* Enable/disable that the _result_ from a query is logged to result file */ "enable_result_log", "disable_result_log", + "enable_connect_log", + "disable_connect_log", "wait_for_slave_to_stop", "enable_warnings", "disable_warnings", @@ -4793,6 +4797,16 @@ void select_connection_name(const char * set_current_connection(con); + /* Connection logging if enabled */ + if (!disable_connect_log && !disable_query_log) + { + DYNAMIC_STRING *ds= &ds_res; + + dynstr_append_mem(ds, "connection ", 11); + replace_dynstr_append(ds, name); + dynstr_append_mem(ds, ";\n", 2); + } + DBUG_VOID_RETURN; } @@ -4880,6 +4894,16 @@ void do_close_connection(struct st_comma var_set_string("$CURRENT_CONNECTION", con->name); } + /* Connection logging if enabled */ + if (!disable_connect_log && !disable_query_log) + { + DYNAMIC_STRING *ds= &ds_res; + + dynstr_append_mem(ds, "disconnect ", 11); + replace_dynstr_append(ds, ds_connection.str); + dynstr_append_mem(ds, ";\n", 2); + } + DBUG_VOID_RETURN; } @@ -5014,6 +5038,13 @@ int connect_n_handle_errors(struct st_co dynstr_append_mem(ds, delimiter, delimiter_length); dynstr_append_mem(ds, "\n", 1); } + /* Simlified logging if enabled */ + if (!disable_connect_log && !disable_query_log) + { + replace_dynstr_append(ds, command->query); + dynstr_append_mem(ds, ";\n", 2); + } + while (!mysql_real_connect(con, host, user, pass, db, port, sock ? sock: 0, CLIENT_MULTI_STATEMENTS)) { @@ -8071,6 +8102,8 @@ int main(int argc, char **argv) case Q_DISABLE_ABORT_ON_ERROR: abort_on_error=0; break; case Q_ENABLE_RESULT_LOG: disable_result_log=0; break; case Q_DISABLE_RESULT_LOG: disable_result_log=1; break; + case Q_ENABLE_CONNECT_LOG: disable_connect_log=0; break; + case Q_DISABLE_CONNECT_LOG: disable_connect_log=1; break; case Q_ENABLE_WARNINGS: disable_warnings=0; break; case Q_DISABLE_WARNINGS: disable_warnings=1; break; case Q_ENABLE_INFO: disable_info=0; break; === modified file 'mysql-test/r/mysqltest.result' --- a/mysql-test/r/mysqltest.result 2010-09-15 12:56:22 +0000 +++ b/mysql-test/r/mysqltest.result 2010-09-22 08:57:10 +0000 @@ -452,12 +452,16 @@ mysqltest: At line 1: Missing required a mysqltest: At line 1: query 'connect con2,localhost,root,,illegal_db' failed: 1049: Unknown database 'illegal_db' mysqltest: At line 1: Illegal argument for port: 'illegal_port' mysqltest: At line 1: Illegal option to connect: SMTP -OK -mysqltest: The test didn't produce any output +200 connects succeeded mysqltest: In included file "MYSQLTEST_VARDIR/tmp/mysqltest.sql": At line 3: connection 'test_con1' not found in connection pool mysqltest: In included file "MYSQLTEST_VARDIR/tmp/mysqltest.sql": At line 2: Connection test_con1 already exists show tables; ERROR 3D000: No database selected +connect con1,localhost,root,,; +connection default; +connection con1; +disconnect con1; +connection default; Output from mysqltest-x.inc Output from mysqltest-x.inc Output from mysqltest-x.inc === modified file 'mysql-test/t/mysqltest.test' --- a/mysql-test/t/mysqltest.test 2010-09-21 09:16:20 +0000 +++ b/mysql-test/t/mysqltest.test 2010-09-22 08:57:10 +0000 @@ -1467,19 +1467,6 @@ eval select "$long_rep" as x; # Repeat connect/disconnect --write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql -let $i=100; -while ($i) -{ - connect (test_con1,localhost,root,,); - disconnect test_con1; - dec $i; -} -EOF ---exec echo "source $MYSQLTEST_VARDIR/tmp/mysqltest.sql; echo OK; exit;" | $MYSQL_TEST 2>&1 -remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql; - -# Repeat connect/disconnect ---write_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql let $i=200; while ($i) { @@ -1487,9 +1474,8 @@ while ($i) disconnect test_con1; dec $i; } +echo 200 connects succeeded; EOF ---replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR ---error 1 --exec echo "source $MYSQLTEST_VARDIR/tmp/mysqltest.sql;" | $MYSQL_TEST 2>&1 remove_file $MYSQLTEST_VARDIR/tmp/mysqltest.sql; @@ -1530,6 +1516,22 @@ show tables; disconnect con2; connection default; +# Test enable_connect_log +--enable_connect_log +connect (con1,localhost,root,,); +connection default; +connection con1; +--disable_query_log +# These should not be logged +connect (con2,localhost,root,,*NO-ONE*); +connection con2; +disconnect con2; +connection con1; +--enable_query_log +disconnect con1; +connection default; +--disable_connect_log + # ---------------------------------------------------------------------------- # Test mysqltest arguments # ---------------------------------------------------------------------------- --===============0968185827== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/bjorn.munch@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: bjorn.munch@stripped # target_branch: file:///home/bm136801/my/ecl-51/ # testament_sha1: c23b80cbc3ccac5b97b6b24f4b0e345335015e9b # timestamp: 2010-09-22 10:59:55 +0200 # base_revision_id: bjorn.munch@stripped\ # odo7z6qd2n0sayyo # # Begin bundle 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 +RuDtOskG2NA0zvMzLIu0OIv/i7kinChIAXpc4Y= --===============0968185827==--