Fix for bug #28808: log_queries_not_using_indexes variable dynamic change is ignored
Problem: logging queries not using indexes we check a special flag which is set only at the server startup and is not changing with a corresponding server variable together. Fix: check the variable value instead of the flag. mysql-test/r/show_check.result: Fix for bug #28808: log_queries_not_using_indexes variable dynamic change is ignored - test result. mysql-test/t/show_check.test: Fix for bug #28808: log_queries_not_using_indexes variable dynamic change is ignored - test case. sql/mysqld.cc: Fix for bug #28808: log_queries_not_using_indexes variable dynamic change is ignored - SPECIAL_LOG_QUERIES_NOT_USING_INDEXES is not used anymore. sql/sql_parse.cc: Fix for bug #28808: log_queries_not_using_indexes variable dynamic change is ignored - check opt_log_queries_not_using_indexes instead of SPECIAL_LOG_QUERIES_NOT_USING_INDEXES flag. sql/unireg.h: Fix for bug #28808: log_queries_not_using_indexes variable dynamic change is ignored - SPECIAL_LOG_QUERIES_NOT_USING_INDEXES is not used anymore.
This commit is contained in:
parent
0b5daef995
commit
32c6341ea8
@ -1088,4 +1088,34 @@ DROP TABLE t1;
|
||||
DROP VIEW v1;
|
||||
DROP PROCEDURE p1;
|
||||
DROP FUNCTION f1;
|
||||
flush status;
|
||||
show variables like "log_queries_not_using_indexes";
|
||||
Variable_name Value
|
||||
log_queries_not_using_indexes ON
|
||||
select 1 from information_schema.tables limit 1;
|
||||
1
|
||||
1
|
||||
show status like 'slow_queries';
|
||||
Variable_name Value
|
||||
Slow_queries 1
|
||||
set global log_queries_not_using_indexes=OFF;
|
||||
show variables like "log_queries_not_using_indexes";
|
||||
Variable_name Value
|
||||
log_queries_not_using_indexes OFF
|
||||
select 1 from information_schema.tables limit 1;
|
||||
1
|
||||
1
|
||||
show status like 'slow_queries';
|
||||
Variable_name Value
|
||||
Slow_queries 1
|
||||
set global log_queries_not_using_indexes=ON;
|
||||
show variables like "log_queries_not_using_indexes";
|
||||
Variable_name Value
|
||||
log_queries_not_using_indexes ON
|
||||
select 1 from information_schema.tables limit 1;
|
||||
1
|
||||
1
|
||||
show status like 'slow_queries';
|
||||
Variable_name Value
|
||||
Slow_queries 2
|
||||
End of 5.0 tests
|
||||
|
@ -766,4 +766,20 @@ DROP VIEW v1;
|
||||
DROP PROCEDURE p1;
|
||||
DROP FUNCTION f1;
|
||||
|
||||
#
|
||||
# Bug #28808: log_queries_not_using_indexes variable dynamic change is ignored
|
||||
#
|
||||
flush status;
|
||||
show variables like "log_queries_not_using_indexes";
|
||||
select 1 from information_schema.tables limit 1;
|
||||
show status like 'slow_queries';
|
||||
set global log_queries_not_using_indexes=OFF;
|
||||
show variables like "log_queries_not_using_indexes";
|
||||
select 1 from information_schema.tables limit 1;
|
||||
show status like 'slow_queries';
|
||||
set global log_queries_not_using_indexes=ON;
|
||||
show variables like "log_queries_not_using_indexes";
|
||||
select 1 from information_schema.tables limit 1;
|
||||
show status like 'slow_queries';
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
@ -7461,8 +7461,6 @@ static void get_options(int argc,char **argv)
|
||||
|
||||
if (opt_short_log_format)
|
||||
opt_specialflag|= SPECIAL_SHORT_LOG_FORMAT;
|
||||
if (opt_log_queries_not_using_indexes)
|
||||
opt_specialflag|= SPECIAL_LOG_QUERIES_NOT_USING_INDEXES;
|
||||
|
||||
if (init_global_datetime_format(MYSQL_TIMESTAMP_DATE,
|
||||
&global_system_variables.date_format) ||
|
||||
|
@ -2207,7 +2207,7 @@ void log_slow_statement(THD *thd)
|
||||
thd->variables.long_query_time ||
|
||||
(thd->server_status &
|
||||
(SERVER_QUERY_NO_INDEX_USED | SERVER_QUERY_NO_GOOD_INDEX_USED)) &&
|
||||
(specialflag & SPECIAL_LOG_QUERIES_NOT_USING_INDEXES) &&
|
||||
opt_log_queries_not_using_indexes &&
|
||||
/* == SQLCOM_END unless this is a SHOW command */
|
||||
thd->lex->orig_sql_command == SQLCOM_END)
|
||||
{
|
||||
|
@ -120,7 +120,7 @@
|
||||
#define SPECIAL_NO_HOST_CACHE 512 /* Don't cache hosts */
|
||||
#define SPECIAL_SHORT_LOG_FORMAT 1024
|
||||
#define SPECIAL_SAFE_MODE 2048
|
||||
#define SPECIAL_LOG_QUERIES_NOT_USING_INDEXES 4096 /* Log q not using indexes */
|
||||
#define SPECIAL_LOG_QUERIES_NOT_USING_INDEXES 4096 /* Obsolete */
|
||||
|
||||
/* Extern defines */
|
||||
#define store_record(A,B) bmove_align((A)->B,(A)->record[0],(size_t) (A)->s->reclength)
|
||||
|
Loading…
x
Reference in New Issue
Block a user