Commit d4e7e9ac authored by unknown's avatar unknown

do not log certain commans in the slow log

parent d3efeb1b
...@@ -609,6 +609,7 @@ public: ...@@ -609,6 +609,7 @@ public:
bool prepare_command; bool prepare_command;
bool tmp_table_used; bool tmp_table_used;
bool charset_is_system_charset, charset_is_collation_connection; bool charset_is_system_charset, charset_is_collation_connection;
bool slow_command;
/* /*
If we do a purge of binary logs, log index info of the threads If we do a purge of binary logs, log index info of the threads
......
...@@ -1185,10 +1185,10 @@ bool dispatch_command(enum enum_server_command command, THD *thd, ...@@ -1185,10 +1185,10 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
Commands which will always take a long time should be marked with 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 this so that they will not get logged to the slow query log
*/ */
bool slow_command=FALSE;
DBUG_ENTER("dispatch_command"); DBUG_ENTER("dispatch_command");
thd->command=command; thd->command=command;
thd->slow_command=FALSE;
thd->set_time(); thd->set_time();
VOID(pthread_mutex_lock(&LOCK_thread_count)); VOID(pthread_mutex_lock(&LOCK_thread_count));
thd->query_id=query_id; thd->query_id=query_id;
...@@ -1224,7 +1224,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd, ...@@ -1224,7 +1224,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
uint tbl_len= *(uchar*) (packet + db_len + 1); uint tbl_len= *(uchar*) (packet + db_len + 1);
statistic_increment(com_other, &LOCK_status); statistic_increment(com_other, &LOCK_status);
slow_command= TRUE; thd->slow_command= TRUE;
db= thd->alloc(db_len + tbl_len + 2); db= thd->alloc(db_len + tbl_len + 2);
tbl_name= strmake(db, packet + 1, db_len)+1; tbl_name= strmake(db, packet + 1, db_len)+1;
strmake(tbl_name, packet + db_len + 2, tbl_len); strmake(tbl_name, packet + db_len + 2, tbl_len);
...@@ -1463,7 +1463,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd, ...@@ -1463,7 +1463,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
case COM_BINLOG_DUMP: case COM_BINLOG_DUMP:
{ {
statistic_increment(com_other,&LOCK_status); statistic_increment(com_other,&LOCK_status);
slow_command = TRUE; thd->slow_command = TRUE;
if (check_global_access(thd, REPL_SLAVE_ACL)) if (check_global_access(thd, REPL_SLAVE_ACL))
break; break;
mysql_log.write(thd,command, 0); mysql_log.write(thd,command, 0);
...@@ -1606,7 +1606,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd, ...@@ -1606,7 +1606,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
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 (!slow_command && !thd->user_time) // do not log 'slow_command' queries if (!thd->slow_command && !thd->user_time) // do not log 'slow_command' queries
{ {
thd->proc_info="logging slow query"; thd->proc_info="logging slow query";
...@@ -1947,6 +1947,7 @@ mysql_execute_command(THD *thd) ...@@ -1947,6 +1947,7 @@ mysql_execute_command(THD *thd)
check_table_access(thd,SELECT_ACL, tables,0) || check_table_access(thd,SELECT_ACL, tables,0) ||
check_global_access(thd, FILE_ACL)) check_global_access(thd, FILE_ACL))
goto error; /* purecov: inspected */ goto error; /* purecov: inspected */
thd->slow_command=TRUE;
res = mysql_backup_table(thd, tables); res = mysql_backup_table(thd, tables);
break; break;
...@@ -1957,6 +1958,7 @@ mysql_execute_command(THD *thd) ...@@ -1957,6 +1958,7 @@ mysql_execute_command(THD *thd)
check_table_access(thd, INSERT_ACL, tables,0) || check_table_access(thd, INSERT_ACL, tables,0) ||
check_global_access(thd, FILE_ACL)) check_global_access(thd, FILE_ACL))
goto error; /* purecov: inspected */ goto error; /* purecov: inspected */
thd->slow_command=TRUE;
res = mysql_restore_table(thd, tables); res = mysql_restore_table(thd, tables);
break; break;
} }
...@@ -2173,6 +2175,7 @@ mysql_execute_command(THD *thd) ...@@ -2173,6 +2175,7 @@ mysql_execute_command(THD *thd)
if (grant_option && check_grant(thd,INDEX_ACL,tables)) if (grant_option && check_grant(thd,INDEX_ACL,tables))
goto error; goto error;
#endif #endif
thd->slow_command=TRUE;
if (end_active_trans(thd)) if (end_active_trans(thd))
res= -1; res= -1;
else else
...@@ -2263,6 +2266,7 @@ mysql_execute_command(THD *thd) ...@@ -2263,6 +2266,7 @@ mysql_execute_command(THD *thd)
res= -1; res= -1;
else else
{ {
thd->slow_command=TRUE;
res= mysql_alter_table(thd, select_lex->db, lex->name, res= mysql_alter_table(thd, select_lex->db, lex->name,
&lex->create_info, &lex->create_info,
tables, lex->create_list, tables, lex->create_list,
...@@ -2352,6 +2356,7 @@ mysql_execute_command(THD *thd) ...@@ -2352,6 +2356,7 @@ mysql_execute_command(THD *thd)
if (check_db_used(thd,tables) || if (check_db_used(thd,tables) ||
check_table_access(thd,SELECT_ACL | INSERT_ACL, tables,0)) check_table_access(thd,SELECT_ACL | INSERT_ACL, tables,0))
goto error; /* purecov: inspected */ goto error; /* purecov: inspected */
thd->slow_command=TRUE;
res = mysql_repair_table(thd, tables, &lex->check_opt); res = mysql_repair_table(thd, tables, &lex->check_opt);
/* ! we write after unlocking the table */ /* ! we write after unlocking the table */
if (!res && !lex->no_write_to_binlog) if (!res && !lex->no_write_to_binlog)
...@@ -2370,6 +2375,7 @@ mysql_execute_command(THD *thd) ...@@ -2370,6 +2375,7 @@ mysql_execute_command(THD *thd)
if (check_db_used(thd,tables) || if (check_db_used(thd,tables) ||
check_table_access(thd, SELECT_ACL | EXTRA_ACL , tables,0)) check_table_access(thd, SELECT_ACL | EXTRA_ACL , tables,0))
goto error; /* purecov: inspected */ goto error; /* purecov: inspected */
thd->slow_command=TRUE;
res = mysql_check_table(thd, tables, &lex->check_opt); res = mysql_check_table(thd, tables, &lex->check_opt);
break; break;
} }
...@@ -2378,6 +2384,7 @@ mysql_execute_command(THD *thd) ...@@ -2378,6 +2384,7 @@ mysql_execute_command(THD *thd)
if (check_db_used(thd,tables) || if (check_db_used(thd,tables) ||
check_table_access(thd,SELECT_ACL | INSERT_ACL, tables,0)) check_table_access(thd,SELECT_ACL | INSERT_ACL, tables,0))
goto error; /* purecov: inspected */ goto error; /* purecov: inspected */
thd->slow_command=TRUE;
res = mysql_analyze_table(thd, tables, &lex->check_opt); res = mysql_analyze_table(thd, tables, &lex->check_opt);
/* ! we write after unlocking the table */ /* ! we write after unlocking the table */
if (!res && !lex->no_write_to_binlog) if (!res && !lex->no_write_to_binlog)
...@@ -2398,6 +2405,7 @@ mysql_execute_command(THD *thd) ...@@ -2398,6 +2405,7 @@ mysql_execute_command(THD *thd)
if (check_db_used(thd,tables) || if (check_db_used(thd,tables) ||
check_table_access(thd,SELECT_ACL | INSERT_ACL, tables,0)) check_table_access(thd,SELECT_ACL | INSERT_ACL, tables,0))
goto error; /* purecov: inspected */ goto error; /* purecov: inspected */
thd->slow_command=TRUE;
if (specialflag & (SPECIAL_SAFE_MODE | SPECIAL_NO_NEW_FUNC)) if (specialflag & (SPECIAL_SAFE_MODE | SPECIAL_NO_NEW_FUNC))
{ {
/* Use ALTER TABLE */ /* Use ALTER TABLE */
......
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