mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Bug#57609 performance_schema does not work with lower_case_table_names
Before this fix, the performance schema tables were defined in UPPERCASE. This was incompatible with the lowercase_table_names option, and caused issues with the install / upgrade process, when changing the lower case table names setting *after* the install or upgrade. With this fix, all performance schema tables are exposed with lowercase names. As a result, the name of the performance schema table is always lowercase, no matter how / if / when the lowercase_table_names setting if changed.
This commit is contained in:
@ -1,38 +1,38 @@
|
||||
UPDATE performance_schema.SETUP_INSTRUMENTS SET enabled = 'YES', timed = 'YES';
|
||||
UPDATE performance_schema.setup_instruments SET enabled = 'YES', timed = 'YES';
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1 (id INT PRIMARY KEY, b CHAR(100) DEFAULT 'initial value')
|
||||
ENGINE=MyISAM;
|
||||
INSERT INTO t1 (id) VALUES (1), (2), (3), (4), (5), (6), (7), (8);
|
||||
SELECT OPERATION, SUM(NUMBER_OF_BYTES) AS TOTAL
|
||||
FROM performance_schema.EVENTS_WAITS_HISTORY_LONG
|
||||
FROM performance_schema.events_waits_history_long
|
||||
GROUP BY OPERATION
|
||||
HAVING TOTAL IS NOT NULL
|
||||
ORDER BY OPERATION
|
||||
LIMIT 1;
|
||||
OPERATION TOTAL
|
||||
chsize [NUM_BYTES]
|
||||
SELECT EVENT_ID FROM performance_schema.EVENTS_WAITS_CURRENT
|
||||
SELECT EVENT_ID FROM performance_schema.events_waits_current
|
||||
WHERE THREAD_ID IN
|
||||
(SELECT THREAD_ID FROM performance_schema.THREADS)
|
||||
(SELECT THREAD_ID FROM performance_schema.threads)
|
||||
AND EVENT_NAME IN
|
||||
(SELECT NAME FROM performance_schema.SETUP_INSTRUMENTS
|
||||
(SELECT NAME FROM performance_schema.setup_instruments
|
||||
WHERE NAME LIKE "wait/synch/%")
|
||||
LIMIT 1;
|
||||
EVENT_ID
|
||||
[EVENT_ID]
|
||||
SELECT DISTINCT EVENT_ID
|
||||
FROM performance_schema.EVENTS_WAITS_CURRENT
|
||||
JOIN performance_schema.EVENTS_WAITS_HISTORY USING (EVENT_ID)
|
||||
JOIN performance_schema.EVENTS_WAITS_HISTORY_LONG USING (EVENT_ID)
|
||||
FROM performance_schema.events_waits_current
|
||||
JOIN performance_schema.events_waits_history USING (EVENT_ID)
|
||||
JOIN performance_schema.events_waits_history_long USING (EVENT_ID)
|
||||
ORDER BY EVENT_ID
|
||||
LIMIT 1;
|
||||
EVENT_ID
|
||||
[EVENT_ID]
|
||||
SELECT t1.THREAD_ID, t2.EVENT_ID, t3.EVENT_NAME, t4.TIMER_WAIT
|
||||
FROM performance_schema.EVENTS_WAITS_HISTORY t1
|
||||
JOIN performance_schema.EVENTS_WAITS_HISTORY t2 USING (EVENT_ID)
|
||||
JOIN performance_schema.EVENTS_WAITS_HISTORY t3 ON (t2.THREAD_ID = t3.THREAD_ID)
|
||||
JOIN performance_schema.EVENTS_WAITS_HISTORY t4 ON (t3.EVENT_NAME = t4.EVENT_NAME)
|
||||
FROM performance_schema.events_waits_history t1
|
||||
JOIN performance_schema.events_waits_history t2 USING (EVENT_ID)
|
||||
JOIN performance_schema.events_waits_history t3 ON (t2.THREAD_ID = t3.THREAD_ID)
|
||||
JOIN performance_schema.events_waits_history t4 ON (t3.EVENT_NAME = t4.EVENT_NAME)
|
||||
ORDER BY t1.EVENT_ID, t2.EVENT_ID
|
||||
LIMIT 5;
|
||||
THREAD_ID EVENT_ID EVENT_NAME TIMER_WAIT
|
||||
@ -42,11 +42,11 @@ THREAD_ID EVENT_ID EVENT_NAME TIMER_WAIT
|
||||
[THREAD_ID] [EVENT_ID] [EVENT_NAME] [TIMER_WAIT]
|
||||
[THREAD_ID] [EVENT_ID] [EVENT_NAME] [TIMER_WAIT]
|
||||
SELECT THREAD_ID, EVENT_ID FROM (
|
||||
SELECT THREAD_ID, EVENT_ID FROM performance_schema.EVENTS_WAITS_CURRENT
|
||||
SELECT THREAD_ID, EVENT_ID FROM performance_schema.events_waits_current
|
||||
UNION
|
||||
SELECT THREAD_ID, EVENT_ID FROM performance_schema.EVENTS_WAITS_HISTORY
|
||||
SELECT THREAD_ID, EVENT_ID FROM performance_schema.events_waits_history
|
||||
UNION
|
||||
SELECT THREAD_ID, EVENT_ID FROM performance_schema.EVENTS_WAITS_HISTORY_LONG
|
||||
SELECT THREAD_ID, EVENT_ID FROM performance_schema.events_waits_history_long
|
||||
) t1 ORDER BY THREAD_ID, EVENT_ID
|
||||
LIMIT 5;
|
||||
THREAD_ID EVENT_ID
|
||||
@ -58,14 +58,14 @@ THREAD_ID EVENT_ID
|
||||
DROP TABLE IF EXISTS t_event;
|
||||
DROP EVENT IF EXISTS t_ps_event;
|
||||
CREATE TABLE t_event AS
|
||||
SELECT EVENT_ID FROM performance_schema.EVENTS_WAITS_CURRENT
|
||||
SELECT EVENT_ID FROM performance_schema.events_waits_current
|
||||
WHERE 1 = 2;
|
||||
CREATE EVENT t_ps_event
|
||||
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 SECOND
|
||||
DO INSERT INTO t_event
|
||||
SELECT DISTINCT EVENT_ID
|
||||
FROM performance_schema.EVENTS_WAITS_CURRENT
|
||||
JOIN performance_schema.EVENTS_WAITS_HISTORY USING (EVENT_ID)
|
||||
FROM performance_schema.events_waits_current
|
||||
JOIN performance_schema.events_waits_history USING (EVENT_ID)
|
||||
ORDER BY EVENT_ID
|
||||
LIMIT 1;
|
||||
ALTER TABLE t1 ADD COLUMN c INT;
|
||||
@ -73,7 +73,7 @@ DROP TRIGGER IF EXISTS t_ps_trigger;
|
||||
CREATE TRIGGER t_ps_trigger BEFORE INSERT ON t1
|
||||
FOR EACH ROW BEGIN
|
||||
SET NEW.c = (SELECT MAX(EVENT_ID)
|
||||
FROM performance_schema.EVENTS_WAITS_CURRENT);
|
||||
FROM performance_schema.events_waits_current);
|
||||
END;
|
||||
|
|
||||
INSERT INTO t1 (id) VALUES (11), (12), (13);
|
||||
@ -86,7 +86,7 @@ DROP TRIGGER t_ps_trigger;
|
||||
DROP PROCEDURE IF EXISTS t_ps_proc;
|
||||
CREATE PROCEDURE t_ps_proc(IN conid INT, OUT pid INT)
|
||||
BEGIN
|
||||
SELECT thread_id FROM performance_schema.THREADS
|
||||
SELECT thread_id FROM performance_schema.threads
|
||||
WHERE PROCESSLIST_ID = conid INTO pid;
|
||||
END;
|
||||
|
|
||||
@ -94,7 +94,7 @@ CALL t_ps_proc(connection_id(), @p_id);
|
||||
DROP FUNCTION IF EXISTS t_ps_proc;
|
||||
CREATE FUNCTION t_ps_func(conid INT) RETURNS int
|
||||
BEGIN
|
||||
return (SELECT thread_id FROM performance_schema.THREADS
|
||||
return (SELECT thread_id FROM performance_schema.threads
|
||||
WHERE PROCESSLIST_ID = conid);
|
||||
END;
|
||||
|
|
||||
|
Reference in New Issue
Block a user