summaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
authorBjorn Munch <bjorn.munch@oracle.com>2010-09-22 10:57:10 +0200
committerBjorn Munch <bjorn.munch@oracle.com>2010-09-22 10:57:10 +0200
commit7b216d7625301901a8296868d9a4c34bfec8b08a (patch)
treefd03ea91262c663c9298da7e7a6b7dd7efedaf55 /client
parentee6f8ae1bd0f4821bf806b3721877400ede0e848 (diff)
downloadmariadb-git-7b216d7625301901a8296868d9a4c34bfec8b08a.tar.gz
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
Diffstat (limited to 'client')
-rw-r--r--client/mysqltest.cc33
1 files changed, 33 insertions, 0 deletions
diff --git a/client/mysqltest.cc b/client/mysqltest.cc
index 08375e4a576..742ddda6add 100644
--- a/client/mysqltest.cc
+++ b/client/mysqltest.cc
@@ -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 *name)
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_command *command)
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_command *command,
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;