It is broken because the ON_UPDATE for slow_query_log_use_global_control is broken.
From sql/sys_vars.cc:
===============
const char *slow_query_log_use_global_control_name[]= { "log_slow_filter", "log_slow_rate_limit", "log_slow_verbosity", "long_query_time", "min_examined_row_limit", "all", 0}; static bool update_slow_query_log_use_global_control(sys_var */*self*/, THD */*thd*/, enum_var_type /*type*/) { if(opt_slow_query_log_use_global_control & (ULL(1) << SLOG_UG_ALL)) { opt_slow_query_log_use_global_control= SLOG_UG_LOG_SLOW_FILTER | SLOG_UG_LOG_SLOW_RATE_LIMIT | SLOG_UG_LOG_SLOW_VERBOSITY | SLOG_UG_LONG_QUERY_TIME | SLOG_UG_MIN_EXAMINED_ROW_LIMIT; } return false; }
================
When set to all, opt_slow_query_log_use_global_control ends up with value of 7 (0 | 1 | 2 | 3 | 4) instead of the intended value of 32.
Following is the fix:
===================================================== 3168,3169c3168,3169 < SLOG_UG_LOG_SLOW_FILTER | SLOG_UG_LOG_SLOW_RATE_LIMIT | SLOG_UG_LOG_SLOW_VERBOSITY | < SLOG_UG_LONG_QUERY_TIME | SLOG_UG_MIN_EXAMINED_ROW_LIMIT; --- > (1 << SLOG_UG_LOG_SLOW_FILTER) | (1 << SLOG_UG_LOG_SLOW_RATE_LIMIT) | (1 << SLOG_UG_LOG_SLOW_VERBOSITY) | > (1 << SLOG_UG_LONG_QUERY_TIME) | (1 << SLOG_UG_MIN_EXAMINED_ROW_LIMIT);
==========================================================
It is broken because the ON_UPDATE for slow_query_ log_use_ global_ control is broken.
From sql/sys_vars.cc:
===============
const char *slow_query_ log_use_ global_ control_ name[]= { "log_slow_filter", "log_slow_ rate_limit" , "log_slow_ verbosity" , "long_query_time", "min_examined_ row_limit" , "all", 0}; slow_query_ log_use_ global_ control( sys_var */*self*/, THD */*thd*/,
enum_ var_type /*type*/) slow_query_ log_use_ global_ control & (ULL(1) << SLOG_UG_ALL)) slow_query_ log_use_ global_ control= UG_LOG_ SLOW_FILTER | SLOG_UG_ LOG_SLOW_ RATE_LIMIT | SLOG_UG_ LOG_SLOW_ VERBOSITY | UG_LONG_ QUERY_TIME | SLOG_UG_ MIN_EXAMINED_ ROW_LIMIT;
static bool update_
{
if(opt_
{
opt_
SLOG_
SLOG_
}
return false;
}
================
When set to all, opt_slow_ query_log_ use_global_ control ends up with value of 7 (0 | 1 | 2 | 3 | 4) instead of the intended value of 32.
Following is the fix:
======= ======= ======= ======= ======= ======= ======= ==== LOG_SLOW_ FILTER | SLOG_UG_ LOG_SLOW_ RATE_LIMIT | SLOG_UG_ LOG_SLOW_ VERBOSITY | LONG_QUERY_ TIME | SLOG_UG_ MIN_EXAMINED_ ROW_LIMIT; LOG_SLOW_ FILTER) | (1 << SLOG_UG_ LOG_SLOW_ RATE_LIMIT) | (1 << SLOG_UG_ LOG_SLOW_ VERBOSITY) | LONG_QUERY_ TIME) | (1 << SLOG_UG_ MIN_EXAMINED_ ROW_LIMIT) ;
3168,3169c3168,3169
< SLOG_UG_
< SLOG_UG_
---
> (1 << SLOG_UG_
> (1 << SLOG_UG_
======= ======= ======= ======= ======= ======= ======= ======= ==