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 VIEW v1;
|
||||||
DROP PROCEDURE p1;
|
DROP PROCEDURE p1;
|
||||||
DROP FUNCTION f1;
|
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
|
End of 5.0 tests
|
||||||
|
@ -766,4 +766,20 @@ DROP VIEW v1;
|
|||||||
DROP PROCEDURE p1;
|
DROP PROCEDURE p1;
|
||||||
DROP FUNCTION f1;
|
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
|
--echo End of 5.0 tests
|
||||||
|
@ -7461,8 +7461,6 @@ static void get_options(int argc,char **argv)
|
|||||||
|
|
||||||
if (opt_short_log_format)
|
if (opt_short_log_format)
|
||||||
opt_specialflag|= SPECIAL_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,
|
if (init_global_datetime_format(MYSQL_TIMESTAMP_DATE,
|
||||||
&global_system_variables.date_format) ||
|
&global_system_variables.date_format) ||
|
||||||
|
@ -2207,7 +2207,7 @@ void log_slow_statement(THD *thd)
|
|||||||
thd->variables.long_query_time ||
|
thd->variables.long_query_time ||
|
||||||
(thd->server_status &
|
(thd->server_status &
|
||||||
(SERVER_QUERY_NO_INDEX_USED | SERVER_QUERY_NO_GOOD_INDEX_USED)) &&
|
(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 */
|
/* == SQLCOM_END unless this is a SHOW command */
|
||||||
thd->lex->orig_sql_command == SQLCOM_END)
|
thd->lex->orig_sql_command == SQLCOM_END)
|
||||||
{
|
{
|
||||||
|
@ -120,7 +120,7 @@
|
|||||||
#define SPECIAL_NO_HOST_CACHE 512 /* Don't cache hosts */
|
#define SPECIAL_NO_HOST_CACHE 512 /* Don't cache hosts */
|
||||||
#define SPECIAL_SHORT_LOG_FORMAT 1024
|
#define SPECIAL_SHORT_LOG_FORMAT 1024
|
||||||
#define SPECIAL_SAFE_MODE 2048
|
#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 */
|
/* Extern defines */
|
||||||
#define store_record(A,B) bmove_align((A)->B,(A)->record[0],(size_t) (A)->s->reclength)
|
#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