Commit df200bd0 authored by tsmith/tim@siva.hindu.god's avatar tsmith/tim@siva.hindu.god

Merge siva.hindu.god:/usr/home/tim/m/bk/b19764/50

into  siva.hindu.god:/usr/home/tim/m/bk/tmp/mrgOct16/50
parents 93d351f4 0e3cfe02
......@@ -1379,4 +1379,21 @@ i
1
DEALLOCATE PREPARE stmt;
DROP TABLE t1, t2;
flush status;
prepare sq from 'show status like "slow_queries"';
execute sq;
Variable_name Value
Slow_queries 0
prepare no_index from 'select 1 from information_schema.tables limit 1';
execute sq;
Variable_name Value
Slow_queries 0
execute no_index;
1
1
execute sq;
Variable_name Value
Slow_queries 1
deallocate prepare no_index;
deallocate prepare sq;
End of 5.0 tests.
......@@ -630,4 +630,19 @@ SHOW TABLES FROM no_such_database;
ERROR 42000: Unknown database 'no_such_database'
SHOW COLUMNS FROM no_such_table;
ERROR 42S02: Table 'test.no_such_table' doesn't exist
flush status;
show status like 'slow_queries';
Variable_name Value
Slow_queries 0
show tables;
Tables_in_test
show status like 'slow_queries';
Variable_name Value
Slow_queries 0
select 1 from information_schema.tables limit 1;
1
1
show status like 'slow_queries';
Variable_name Value
Slow_queries 1
End of 5.0 tests
......@@ -836,27 +836,27 @@ count(*)
26
show status like 'Slow_queries';
Variable_name Value
Slow_queries 1
Slow_queries 0
select count(*) from t1 where b=13;
count(*)
10
show status like 'Slow_queries';
Variable_name Value
Slow_queries 3
Slow_queries 1
select count(*) from t1 where b=13 union select count(*) from t1 where a=7;
count(*)
10
26
show status like 'Slow_queries';
Variable_name Value
Slow_queries 5
Slow_queries 2
select count(*) from t1 where a=7 union select count(*) from t1 where b=13;
count(*)
26
10
show status like 'Slow_queries';
Variable_name Value
Slow_queries 7
Slow_queries 3
flush status;
select a from t1 where b not in (1,2,3) union select a from t1 where b not in (4,5,6);
a
......
--log-slow-queries --log-long-format --log-queries-not-using-indexes
......@@ -1437,4 +1437,18 @@ DEALLOCATE PREPARE stmt;
DROP TABLE t1, t2;
#
# Bug 19764: SHOW commands end up in the slow log as table scans
#
flush status;
prepare sq from 'show status like "slow_queries"';
execute sq;
prepare no_index from 'select 1 from information_schema.tables limit 1';
execute sq;
execute no_index;
execute sq;
deallocate prepare no_index;
deallocate prepare sq;
--echo End of 5.0 tests.
--log-slow-queries --log-long-format --log-queries-not-using-indexes
......@@ -507,4 +507,16 @@ SHOW TABLES FROM no_such_database;
SHOW COLUMNS FROM no_such_table;
#
# Bug #19764: SHOW commands end up in the slow log as table scans
#
flush status;
show status like 'slow_queries';
show tables;
show status like 'slow_queries';
# Table scan query, to ensure that slow_queries does still get incremented
# (mysqld is started with --log-queries-not-using-indexes)
select 1 from information_schema.tables limit 1;
show status like 'slow_queries';
--echo End of 5.0 tests
......@@ -2159,9 +2159,11 @@ void log_slow_statement(THD *thd)
if ((ulong) (thd->start_time - thd->time_after_lock) >
thd->variables.long_query_time ||
((thd->server_status &
(thd->server_status &
(SERVER_QUERY_NO_INDEX_USED | SERVER_QUERY_NO_GOOD_INDEX_USED)) &&
(specialflag & SPECIAL_LOG_QUERIES_NOT_USING_INDEXES)))
(specialflag & SPECIAL_LOG_QUERIES_NOT_USING_INDEXES) &&
/* == SQLCOM_END unless this is a SHOW command */
thd->lex->orig_sql_command == SQLCOM_END)
{
thd->status_var.long_query_count++;
mysql_slow_log.write(thd, thd->query, thd->query_length, start_of_query);
......
......@@ -2929,6 +2929,12 @@ bool Prepared_statement::execute(String *expanded_query, bool open_cursor)
stmt_backup.query= thd->query;
stmt_backup.query_length= thd->query_length;
/*
Save orig_sql_command as we use it to disable slow logging for SHOW
commands (see log_slow_statement()).
*/
stmt_backup.lex->orig_sql_command= thd->lex->orig_sql_command;
/*
At first execution of prepared statement we may perform logical
transformations of the query tree. Such changes should be performed
......
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