mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-33145 Add FLUSH GLOBAL STATUS
- FLUSH GLOBAL STATUS now resets most global_status_vars. At this stage, this is mainly to be used for testing. - FLUSH SESSION STATUS added as an alias for FLUSH STATUS. - FLUSH STATUS does not require any privilege (before required RELOAD). - FLUSH GLOBAL STATUS requires RELOAD privilege. - All global status reset moved to FLUSH GLOBAL STATUS. - Replication semisync status variables are now reset by FLUSH GLOBAL STATUS. - In test cases, the only changes are: - Replace FLUSH STATUS with FLUSH GLOBAL STATUS - Replace FLUSH STATUS with FLUSH STATUS; FLUSH GLOBAL STATUS. This was only done in a few tests where the test was using SHOW STATUS for both local and global variables. - Uptime_since_flush_status is now always provided, independent if ENABLED_PROFILING is enabled when compiling MariaDB. - @@global.Uptime_since_flush_status is reset on FLUSH GLOBAL STATUS and @@session.Uptime_since_flush_status is reset on FLUSH SESSION STATUS. - When connected, @@session.Uptime_since_flush_status is set to 0.
This commit is contained in:
@ -2183,7 +2183,8 @@ dispatch_command_return dispatch_command(enum enum_server_command command, THD *
|
||||
if (trans_commit_implicit(thd))
|
||||
break;
|
||||
thd->release_transactional_locks();
|
||||
if (check_global_access(thd,RELOAD_ACL))
|
||||
if ((options & ~REFRESH_SESSION_STATUS) &&
|
||||
check_global_access(thd,RELOAD_ACL))
|
||||
break;
|
||||
general_log_print(thd, command, NullS);
|
||||
#ifndef DBUG_OFF
|
||||
@ -5237,7 +5238,8 @@ mysql_execute_command(THD *thd, bool is_called_from_prepared_stmt)
|
||||
case SQLCOM_FLUSH:
|
||||
{
|
||||
int write_to_binlog;
|
||||
if (check_global_access(thd,RELOAD_ACL))
|
||||
if ((lex->type & ~REFRESH_SESSION_STATUS) &&
|
||||
check_global_access(thd,RELOAD_ACL))
|
||||
goto error;
|
||||
|
||||
if (first_table && lex->type & (REFRESH_READ_LOCK|REFRESH_FOR_EXPORT))
|
||||
@ -5275,7 +5277,8 @@ mysql_execute_command(THD *thd, bool is_called_from_prepared_stmt)
|
||||
#ifdef HAVE_QUERY_CACHE
|
||||
REFRESH_QUERY_CACHE_FREE |
|
||||
#endif /* HAVE_QUERY_CACHE */
|
||||
REFRESH_STATUS |
|
||||
REFRESH_SESSION_STATUS |
|
||||
REFRESH_GLOBAL_STATUS |
|
||||
REFRESH_USER_RESOURCES))
|
||||
{
|
||||
WSREP_TO_ISOLATION_BEGIN_WRTCHK(WSREP_MYSQL_DB, NULL, NULL);
|
||||
|
Reference in New Issue
Block a user