Commit 99d42667 authored by unknown's avatar unknown
Browse files

Bug #19764: SHOW commands end up in the slow log as table scans

Do not consider SHOW commands slow queries, just because they don't use proper indexes.

This bug fix is not needed in 5.1, and the code changes will be null merged.  However, the test cases will be propogated up to 5.1.


mysql-test/t/show_check-master.opt:
  Rename: BitKeeper/deleted/.del-show_check-master.opt -> mysql-test/t/show_check-master.opt
mysql-test/r/ps.result:
  Add test case for bug 19764
mysql-test/r/show_check.result:
  Add test case for bug 19764
mysql-test/r/union.result:
  Adjust test case results based on bug #19764 changes
mysql-test/t/ps.test:
  Add test case for bug 19764
mysql-test/t/show_check.test:
  Add test case for bug 19764
sql/sql_parse.cc:
  Do not log SHOW commands as slow queries just because they don't use indexes.
sql/sql_prepare.cc:
  Save stmt_backup.lex->orig_sql_command for use in log_slow_statement()
mysql-test/t/ps-master.opt:
  Add log-slow-queries and --log-queries-not-using indexes, to test bug #19764
parent e9b7cc09
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -1358,4 +1358,21 @@ EXECUTE stmt USING @a;
i	j	i	i	j
DEALLOCATE PREPARE stmt;
DROP TABLE IF EXISTS t1, t2, t3;
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.
+15 −0
Original line number Diff line number Diff line
@@ -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
+4 −4
Original line number Diff line number Diff line
@@ -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
+1 −0
Original line number Diff line number Diff line
--log-slow-queries --log-long-format --log-queries-not-using-indexes
+14 −0
Original line number Diff line number Diff line
@@ -1410,4 +1410,18 @@ DEALLOCATE PREPARE stmt;
DROP TABLE IF EXISTS t1, t2, t3;


#
# 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.
Loading