From 5ddaf35c26ed3459c9662b43687ba7ce1494edd2 Mon Sep 17 00:00:00 2001 From: "holyfoot@hf-ibm.(none)" <> Date: Mon, 9 May 2005 16:26:06 +0500 Subject: [PATCH] Fix for bug #9632 (strict.test fails in -embedded-server mode) --- libmysqld/libmysqld.c | 13 ++++++++----- sql/sql_parse.cc | 6 +++--- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/libmysqld/libmysqld.c b/libmysqld/libmysqld.c index 6fa41fb3fd0..70074e44c6f 100644 --- a/libmysqld/libmysqld.c +++ b/libmysqld/libmysqld.c @@ -199,6 +199,14 @@ mysql_real_connect(MYSQL *mysql,const char *host, const char *user, unix_socket=0; db_name = db ? my_strdup(db,MYF(MY_WME)) : NULL; + /* Send client information for access check */ + client_flag|=CLIENT_CAPABILITIES; + if (client_flag & CLIENT_MULTI_STATEMENTS) + client_flag|= CLIENT_MULTI_RESULTS; + client_flag&= ~CLIENT_COMPRESS; + if (db) + client_flag|=CLIENT_CONNECT_WITH_DB; + mysql->thd= create_embedded_thd(client_flag, db_name); init_embedded_mysql(mysql, client_flag, db_name); @@ -209,11 +217,6 @@ mysql_real_connect(MYSQL *mysql,const char *host, const char *user, if (mysql_init_charset(mysql)) goto error; - /* Send client information for access check */ - client_flag|=CLIENT_CAPABILITIES; - client_flag&= ~CLIENT_COMPRESS; - if (db) - client_flag|=CLIENT_CONNECT_WITH_DB; mysql->server_status= SERVER_STATUS_AUTOCOMMIT; if (mysql->options.init_commands) diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index e9bdce95091..8c8dcc938cb 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -1433,9 +1433,6 @@ bool do_command(THD *thd) } else { - if (thd->killed == THD::KILL_QUERY || thd->killed == THD::KILL_BAD_DATA) - thd->killed= THD::NOT_KILLED; - packet=(char*) net->read_pos; command = (enum enum_server_command) (uchar) packet[0]; if (command >= COM_END) @@ -1482,6 +1479,9 @@ bool dispatch_command(enum enum_server_command command, THD *thd, bool error= 0; DBUG_ENTER("dispatch_command"); + if (thd->killed == THD::KILL_QUERY || thd->killed == THD::KILL_BAD_DATA) + thd->killed= THD::NOT_KILLED; + thd->command=command; /* Commands which will always take a long time should be marked with