Commit ecb8110e authored by unknown's avatar unknown

Merge work.mysql.com:/home/bk/mysql

into tetra.spaceapes.com:/usr/home/jcole/bk/mysql


BitKeeper/etc/logging_ok:
  auto-union
sql/sql_parse.cc:
  Auto merged
parents 820d7df9 135d754e
jcole@tetra.spaceapes.com jcole@tetra.spaceapes.com
monty@donna.mysql.com monty@donna.mysql.com
monty@work.mysql.com monty@work.mysql.com
mwagner@evoq.mwagner.org
mwagner@work.mysql.com mwagner@work.mysql.com
paul@central.snake.net paul@central.snake.net
sasha@mysql.sashanet.com sasha@mysql.sashanet.com
sasha@work.mysql.com sasha@work.mysql.com
serg@donna.mysql.com serg@donna.mysql.com
serg@serg.mysql.com serg@serg.mysql.com
tfr@coyote.emotion.ee
tim@cane.mysql.fi tim@cane.mysql.fi
tim@threads.polyesthetic.msg tim@threads.polyesthetic.msg
tim@work.mysql.com tim@work.mysql.com
mwagner@evoq.mwagner.org
tfr@coyote.emotion.ee
...@@ -562,6 +562,9 @@ bool do_command(THD *thd) ...@@ -562,6 +562,9 @@ bool do_command(THD *thd)
bool error=0; bool error=0;
NET *net; NET *net;
enum enum_server_command command; enum enum_server_command command;
// commands which will always take a long time should be marked with
// this so that they will not get logged to the slow query log
bool slow_command=FALSE;
DBUG_ENTER("do_command"); DBUG_ENTER("do_command");
net= &thd->net; net= &thd->net;
...@@ -605,6 +608,7 @@ bool do_command(THD *thd) ...@@ -605,6 +608,7 @@ bool do_command(THD *thd)
break; break;
case COM_TABLE_DUMP: case COM_TABLE_DUMP:
{ {
slow_command = TRUE;
char* data = packet + 1; char* data = packet + 1;
uint db_len = *data; uint db_len = *data;
uint tbl_len = *(data + db_len + 1); uint tbl_len = *(data + db_len + 1);
...@@ -745,6 +749,7 @@ bool do_command(THD *thd) ...@@ -745,6 +749,7 @@ bool do_command(THD *thd)
} }
case COM_BINLOG_DUMP: case COM_BINLOG_DUMP:
{ {
slow_command = TRUE;
if(check_access(thd, FILE_ACL, any_db)) if(check_access(thd, FILE_ACL, any_db))
break; break;
mysql_log.write(thd,command, 0); mysql_log.write(thd,command, 0);
...@@ -849,16 +854,18 @@ bool do_command(THD *thd) ...@@ -849,16 +854,18 @@ bool do_command(THD *thd)
thd->proc_info="closing tables"; thd->proc_info="closing tables";
close_thread_tables(thd); /* Free tables */ close_thread_tables(thd); /* Free tables */
} }
thd->proc_info="cleaning up";
if (thd->fatal_error) if (thd->fatal_error)
send_error(net,0); // End of memory ? send_error(net,0); // End of memory ?
time_t start_of_query=thd->start_time; time_t start_of_query=thd->start_time;
thd->end_time(); // Set start time thd->end_time(); // Set start time
/* If not reading from backup and if the query took too long */ /* If not reading from backup and if the query took too long */
if (!thd->user_time) if (!slow_command && !thd->user_time) // do not log 'slow_command' queries
{ {
thd->proc_info="logging slow query";
if ((ulong) (thd->start_time - thd->time_after_lock) > long_query_time || if ((ulong) (thd->start_time - thd->time_after_lock) > long_query_time ||
((thd->lex.options & ((thd->lex.options &
(QUERY_NO_INDEX_USED | QUERY_NO_GOOD_INDEX_USED)) && (QUERY_NO_INDEX_USED | QUERY_NO_GOOD_INDEX_USED)) &&
...@@ -868,7 +875,7 @@ bool do_command(THD *thd) ...@@ -868,7 +875,7 @@ bool do_command(THD *thd)
mysql_slow_log.write(thd, thd->query, thd->query_length, start_of_query); mysql_slow_log.write(thd, thd->query, thd->query_length, start_of_query);
} }
} }
thd->proc_info="cleaning up2"; thd->proc_info="cleaning up";
VOID(pthread_mutex_lock(&LOCK_thread_count)); // For process list VOID(pthread_mutex_lock(&LOCK_thread_count)); // For process list
thd->proc_info=0; thd->proc_info=0;
thd->command=COM_SLEEP; thd->command=COM_SLEEP;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment