Skip to content
This repository was archived by the owner on Aug 28, 2024. It is now read-only.

Commit 4cd9af7

Browse files
committed
Fixes to reset_to_default()
- Conditionally update setup_consumers - Add a 5.7 specific verison, as setup_objects has more objects within it
1 parent 770e1da commit 4cd9af7

File tree

3 files changed

+136
-3
lines changed

3 files changed

+136
-3
lines changed

procedures/reset_to_default.sql

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,7 @@ BEGIN
5757
DEALLOCATE PREPARE reset_stmt;
5858

5959
SET @query = 'UPDATE performance_schema.setup_consumers
60-
SET ENABLED = ''NO''
61-
WHERE NAME NOT IN (''events_statements_current'', ''global_instrumentation'', ''thread_instrumentation'', ''statements_digest'')';
60+
SET ENABLED = IF(NAME IN (''events_statements_current'', ''global_instrumentation'', ''thread_instrumentation'', ''statements_digest''), ''YES'', ''NO'')';
6261

6362
IF (in_verbose) THEN
6463
SELECT CONCAT('Resetting: setup_consumers\n', @query) AS status;

procedures/reset_to_default_57.sql

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
/**
2+
* Procedure: reset_to_default
3+
*
4+
* Reset the settings to the default 5.7 settings.
5+
*
6+
* Parameters
7+
* in_verbose: Whether to print each statement before executing
8+
*
9+
* Versions: 5.7+
10+
*
11+
* Contributed by Jesper Krogh of MySQL Support @ Oracle
12+
*/
13+
14+
-- Because of bug 11750980/bug 41686, set the sql_mode to ''
15+
SET @old_sql_mode = @@session.sql_mode;
16+
SET sql_mode = '';
17+
18+
DROP PROCEDURE IF EXISTS reset_to_default;
19+
20+
DELIMITER $$
21+
22+
CREATE PROCEDURE reset_to_default(IN in_verbose BOOLEAN)
23+
COMMENT 'Parameters: in_verbose (boolean)'
24+
BEGIN
25+
SET @query = 'DELETE
26+
FROM performance_schema.setup_actors
27+
WHERE NOT (HOST = ''%'' AND USER = ''%'' AND ROLE = ''%'')';
28+
29+
IF (in_verbose) THEN
30+
SELECT CONCAT('Resetting: setup_actors\n', @query) AS status;
31+
END IF;
32+
33+
PREPARE reset_stmt FROM @query;
34+
EXECUTE reset_stmt;
35+
DEALLOCATE PREPARE reset_stmt;
36+
37+
SET @query = 'INSERT IGNORE INTO performance_schema.setup_actors
38+
VALUES (''%'', ''%'', ''%'')';
39+
40+
IF (in_verbose) THEN
41+
SELECT CONCAT('Resetting: setup_actors\n', @query) AS status;
42+
END IF;
43+
44+
PREPARE reset_stmt FROM @query;
45+
EXECUTE reset_stmt;
46+
DEALLOCATE PREPARE reset_stmt;
47+
48+
SET @query = 'UPDATE performance_schema.setup_instruments
49+
SET ENABLED = ''NO'', TIMED = ''NO''
50+
WHERE NAME NOT LIKE ''wait/io/file/%''
51+
AND NAME NOT LIKE ''wait/io/table/%''
52+
AND NAME NOT LIKE ''statement/%''
53+
AND NAME NOT IN (''wait/lock/table/sql/handler'', ''idle'')';
54+
55+
IF (in_verbose) THEN
56+
SELECT CONCAT('Resetting: setup_instruments\n', @query) AS status;
57+
END IF;
58+
59+
PREPARE reset_stmt FROM @query;
60+
EXECUTE reset_stmt;
61+
DEALLOCATE PREPARE reset_stmt;
62+
63+
SET @query = 'UPDATE performance_schema.setup_consumers
64+
SET ENABLED = IF(NAME IN (''events_statements_current'', ''global_instrumentation'', ''thread_instrumentation'', ''statements_digest''), ''YES'', ''NO'')';
65+
66+
IF (in_verbose) THEN
67+
SELECT CONCAT('Resetting: setup_consumers\n', @query) AS status;
68+
END IF;
69+
70+
PREPARE reset_stmt FROM @query;
71+
EXECUTE reset_stmt;
72+
DEALLOCATE PREPARE reset_stmt;
73+
74+
SET @query = 'DELETE
75+
FROM performance_schema.setup_objects
76+
WHERE NOT (OBJECT_TYPE IN (''EVENT'', ''FUNCTION'', ''PROCEDURE'', ''TABLE'', ''TRIGGER'') AND OBJECT_NAME = ''%''
77+
AND (OBJECT_SCHEMA = ''mysql'' AND ENABLED = ''NO'' AND TIMED = ''NO'' )
78+
OR (OBJECT_SCHEMA = ''performance_schema'' AND ENABLED = ''NO'' AND TIMED = ''NO'' )
79+
OR (OBJECT_SCHEMA = ''information_schema'' AND ENABLED = ''NO'' AND TIMED = ''NO'' )
80+
OR (OBJECT_SCHEMA = ''%'' AND ENABLED = ''YES'' AND TIMED = ''YES''))';
81+
82+
IF (in_verbose) THEN
83+
SELECT CONCAT('Resetting: setup_objects\n', @query) AS status;
84+
END IF;
85+
86+
PREPARE reset_stmt FROM @query;
87+
EXECUTE reset_stmt;
88+
DEALLOCATE PREPARE reset_stmt;
89+
90+
SET @query = 'INSERT IGNORE INTO performance_schema.setup_objects
91+
VALUES (''EVENT'' , ''mysql'' , ''%'', ''NO'' , ''NO'' ),
92+
(''EVENT'' , ''performance_schema'', ''%'', ''NO'' , ''NO'' ),
93+
(''EVENT'' , ''information_schema'', ''%'', ''NO'' , ''NO'' ),
94+
(''EVENT'' , ''%'' , ''%'', ''YES'', ''YES''),
95+
(''FUNCTION'' , ''mysql'' , ''%'', ''NO'' , ''NO'' ),
96+
(''FUNCTION'' , ''performance_schema'', ''%'', ''NO'' , ''NO'' ),
97+
(''FUNCTION'' , ''information_schema'', ''%'', ''NO'' , ''NO'' ),
98+
(''FUNCTION'' , ''%'' , ''%'', ''YES'', ''YES''),
99+
(''PROCEDURE'', ''mysql'' , ''%'', ''NO'' , ''NO'' ),
100+
(''PROCEDURE'', ''performance_schema'', ''%'', ''NO'' , ''NO'' ),
101+
(''PROCEDURE'', ''information_schema'', ''%'', ''NO'' , ''NO'' ),
102+
(''PROCEDURE'', ''%'' , ''%'', ''YES'', ''YES''),
103+
(''TABLE'' , ''mysql'' , ''%'', ''NO'' , ''NO'' ),
104+
(''TABLE'' , ''performance_schema'', ''%'', ''NO'' , ''NO'' ),
105+
(''TABLE'' , ''information_schema'', ''%'', ''NO'' , ''NO'' ),
106+
(''TABLE'' , ''%'' , ''%'', ''YES'', ''YES''),
107+
(''TRIGGER'' , ''mysql'' , ''%'', ''NO'' , ''NO'' ),
108+
(''TRIGGER'' , ''performance_schema'', ''%'', ''NO'' , ''NO'' ),
109+
(''TRIGGER'' , ''information_schema'', ''%'', ''NO'' , ''NO'' ),
110+
(''TRIGGER'' , ''%'' , ''%'', ''YES'', ''YES'')';
111+
112+
IF (in_verbose) THEN
113+
SELECT CONCAT('Resetting: setup_objects\n', @query) AS status;
114+
END IF;
115+
116+
PREPARE reset_stmt FROM @query;
117+
EXECUTE reset_stmt;
118+
DEALLOCATE PREPARE reset_stmt;
119+
120+
SET @query = 'UPDATE performance_schema.threads
121+
SET INSTRUMENTED = ''YES''';
122+
123+
IF (in_verbose) THEN
124+
SELECT CONCAT('Resetting: threads\n', @query) AS status;
125+
END IF;
126+
127+
PREPARE reset_stmt FROM @query;
128+
EXECUTE reset_stmt;
129+
DEALLOCATE PREPARE reset_stmt;
130+
END$$
131+
132+
DELIMITER ;
133+
134+
SET sql_mode = @old_sql_mode;

ps_helper_57.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ SOURCE ./procedures/enable_background_threads.sql
1818
SOURCE ./procedures/enable_current_thread.sql
1919
SOURCE ./procedures/only_enable.sql
2020
SOURCE ./procedures/reload_saved_config.sql
21-
SOURCE ./procedures/reset_to_default.sql
21+
SOURCE ./procedures/reset_to_default_57.sql
2222
SOURCE ./procedures/save_current_config.sql
2323
SOURCE ./procedures/truncate_all.sql
2424

0 commit comments

Comments
 (0)