mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
MDEV-9077 - port sys schema to MariaDB
- Innodb is not always available, which means t is not always possible to use innodb system variables, or innodb information schema tables. Thus creation of objects that use Innodb information_schema is enclosed into BEGIN NOT ATOMIC blocks with dummy SQLEXCEPTION handler. - sys_config table uses Aria, just like other system tables. - several tables that exist in MySQL, do not exist in MariaDB performance_schema.replication_applier_status, mysql.slave_master_info, mysql.slave_relay_log_info
This commit is contained in:
@@ -30,6 +30,12 @@
|
||||
-- +--------------------------+------------+------------+-------+--------------+-----------+-------------+
|
||||
--
|
||||
|
||||
DELIMITER $$
|
||||
|
||||
BEGIN NOT ATOMIC
|
||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
||||
BEGIN
|
||||
END;
|
||||
CREATE OR REPLACE
|
||||
ALGORITHM = TEMPTABLE
|
||||
DEFINER = 'root'@'localhost'
|
||||
@@ -54,3 +60,6 @@ SELECT IF(LOCATE('.', ibp.table_name) = 0, 'InnoDB System', REPLACE(SUBSTRING_IN
|
||||
WHERE table_name IS NOT NULL
|
||||
GROUP BY object_schema
|
||||
ORDER BY SUM(IF(ibp.compressed_size = 0, 16384, compressed_size)) DESC;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
||||
|
@@ -34,6 +34,9 @@
|
||||
-- +--------------------------+------------------------------------+------------+-----------+-------+--------------+-----------+-------------+
|
||||
--
|
||||
|
||||
DELIMITER $$
|
||||
BEGIN NOT ATOMIC
|
||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN END;
|
||||
CREATE OR REPLACE
|
||||
ALGORITHM = TEMPTABLE
|
||||
DEFINER = 'root'@'localhost'
|
||||
@@ -60,3 +63,5 @@ SELECT IF(LOCATE('.', ibp.table_name) = 0, 'InnoDB System', REPLACE(SUBSTRING_IN
|
||||
WHERE table_name IS NOT NULL
|
||||
GROUP BY object_schema, object_name
|
||||
ORDER BY SUM(IF(ibp.compressed_size = 0, 16384, compressed_size)) DESC;
|
||||
END$$
|
||||
DELIMITER ;
|
@@ -51,7 +51,11 @@
|
||||
-- sql_kill_blocking_connection: KILL 4
|
||||
-- 1 row in set (0.01 sec)
|
||||
--
|
||||
|
||||
DELIMITER $$
|
||||
BEGIN NOT ATOMIC
|
||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
||||
BEGIN
|
||||
END;
|
||||
CREATE OR REPLACE
|
||||
ALGORITHM = TEMPTABLE
|
||||
DEFINER = 'root'@'localhost'
|
||||
@@ -116,3 +120,5 @@ SELECT r.trx_wait_started AS wait_started,
|
||||
INNER JOIN information_schema.innodb_locks bl ON bl.lock_id = w.blocking_lock_id
|
||||
INNER JOIN information_schema.innodb_locks rl ON rl.lock_id = w.requested_lock_id
|
||||
ORDER BY r.trx_wait_started;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
@@ -29,6 +29,11 @@
|
||||
-- +--------------------------+-----------+--------+-------+--------------+-----------+-------------+
|
||||
--
|
||||
|
||||
DELIMITER $$
|
||||
BEGIN NOT ATOMIC
|
||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
||||
BEGIN
|
||||
END;
|
||||
CREATE OR REPLACE
|
||||
ALGORITHM = TEMPTABLE
|
||||
DEFINER = 'root'@'localhost'
|
||||
@@ -46,10 +51,12 @@ SELECT IF(LOCATE('.', ibp.table_name) = 0, 'InnoDB System', REPLACE(SUBSTRING_IN
|
||||
SUM(IF(ibp.compressed_size = 0, 16384, compressed_size)) AS allocated,
|
||||
SUM(ibp.data_size) AS data,
|
||||
COUNT(ibp.page_number) AS pages,
|
||||
COUNT(IF(ibp.is_hashed = 'YES', 1, NULL)) AS pages_hashed,
|
||||
COUNT(IF(ibp.is_old = 'YES', 1, NULL)) AS pages_old,
|
||||
COUNT(IF(ibp.is_hashed, 1, NULL)) AS pages_hashed,
|
||||
COUNT(IF(ibp.is_old, 1, NULL)) AS pages_old,
|
||||
ROUND(IFNULL(SUM(ibp.number_records)/NULLIF(COUNT(DISTINCT ibp.index_name), 0), 0)) AS rows_cached
|
||||
FROM information_schema.innodb_buffer_page ibp
|
||||
WHERE table_name IS NOT NULL
|
||||
GROUP BY object_schema
|
||||
ORDER BY SUM(IF(ibp.compressed_size = 0, 16384, compressed_size)) DESC;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
@@ -33,7 +33,9 @@
|
||||
-- ...
|
||||
-- +--------------------------+------------------------------------+-----------+--------+-------+--------------+-----------+-------------+
|
||||
--
|
||||
|
||||
DELIMITER $$
|
||||
BEGIN NOT ATOMIC
|
||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN END;
|
||||
CREATE OR REPLACE
|
||||
ALGORITHM = TEMPTABLE
|
||||
DEFINER = 'root'@'localhost'
|
||||
@@ -53,10 +55,12 @@ SELECT IF(LOCATE('.', ibp.table_name) = 0, 'InnoDB System', REPLACE(SUBSTRING_IN
|
||||
SUM(IF(ibp.compressed_size = 0, 16384, compressed_size)) AS allocated,
|
||||
SUM(ibp.data_size) AS data,
|
||||
COUNT(ibp.page_number) AS pages,
|
||||
COUNT(IF(ibp.is_hashed = 'YES', 1, NULL)) AS pages_hashed,
|
||||
COUNT(IF(ibp.is_old = 'YES', 1, NULL)) AS pages_old,
|
||||
COUNT(IF(ibp.is_hashed, 1, NULL)) AS pages_hashed,
|
||||
COUNT(IF(ibp.is_old, 1, NULL)) AS pages_old,
|
||||
ROUND(IFNULL(SUM(ibp.number_records)/NULLIF(COUNT(DISTINCT ibp.index_name), 0), 0)) AS rows_cached
|
||||
FROM information_schema.innodb_buffer_page ibp
|
||||
WHERE table_name IS NOT NULL
|
||||
GROUP BY object_schema, object_name
|
||||
ORDER BY SUM(IF(ibp.compressed_size = 0, 16384, compressed_size)) DESC;
|
||||
END$$
|
||||
DELIMITER ;
|
@@ -52,6 +52,10 @@
|
||||
-- 1 row in set (0.01 sec)
|
||||
--
|
||||
|
||||
DELIMITER $$
|
||||
BEGIN NOT ATOMIC
|
||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN END;
|
||||
|
||||
CREATE OR REPLACE
|
||||
ALGORITHM = TEMPTABLE
|
||||
DEFINER = 'root'@'localhost'
|
||||
@@ -116,3 +120,5 @@ SELECT r.trx_wait_started AS wait_started,
|
||||
INNER JOIN information_schema.innodb_locks bl ON bl.lock_id = w.blocking_lock_id
|
||||
INNER JOIN information_schema.innodb_locks rl ON rl.lock_id = w.requested_lock_id
|
||||
ORDER BY r.trx_wait_started;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
@@ -68,6 +68,9 @@
|
||||
-- | UNIX_TIMESTAMP() | 1433042870.382 ...| System Time | YES |
|
||||
-- +-----------------------------------------------+-------------------------...+--------------------------------------+---------+
|
||||
-- 412 rows in set (0.02 sec)
|
||||
DELIMITER $$
|
||||
BEGIN NOT ATOMIC
|
||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN END;
|
||||
|
||||
CREATE OR REPLACE
|
||||
ALGORITHM = TEMPTABLE
|
||||
@@ -85,7 +88,7 @@ SELECT LOWER(VARIABLE_NAME) AS Variable_name, VARIABLE_VALUE AS Variable_value,
|
||||
) UNION ALL (
|
||||
SELECT NAME AS Variable_name, COUNT AS Variable_value,
|
||||
CONCAT('InnoDB Metrics - ', SUBSYSTEM) AS Type,
|
||||
IF(STATUS = 'enabled', 'YES', 'NO') AS Enabled
|
||||
'YES' AS Enabled
|
||||
FROM information_schema.INNODB_METRICS
|
||||
-- Deduplication - some variables exists both in GLOBAL_STATUS and INNODB_METRICS
|
||||
-- Keep the one from GLOBAL_STATUS as it is always enabled and it's more likely to be used for existing tools.
|
||||
@@ -119,3 +122,5 @@ SELECT 'NOW()' AS Variable_name, NOW(3) AS Variable_value, 'System Time' AS Type
|
||||
SELECT 'UNIX_TIMESTAMP()' AS Variable_name, ROUND(UNIX_TIMESTAMP(NOW(3)), 3) AS Variable_value, 'System Time' AS Type, 'YES' AS Enabled
|
||||
)
|
||||
ORDER BY Type, Variable_name;
|
||||
END$$
|
||||
DELIMITER ;
|
@@ -49,7 +49,10 @@
|
||||
-- innodb_buffer_bytes_data: 1924
|
||||
-- innodb_buffer_rows_cached: 2
|
||||
--
|
||||
|
||||
|
||||
DELIMITER $$
|
||||
BEGIN NOT ATOMIC
|
||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN END;
|
||||
CREATE OR REPLACE
|
||||
ALGORITHM = TEMPTABLE
|
||||
DEFINER = 'root'@'localhost'
|
||||
@@ -114,3 +117,6 @@ SELECT pst.object_schema AS table_schema,
|
||||
ON pst.object_schema = ibp.object_schema
|
||||
AND pst.object_name = ibp.object_name
|
||||
ORDER BY pst.sum_timer_wait DESC;
|
||||
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
@@ -49,7 +49,11 @@
|
||||
-- innodb_buffer_pages_old: 42
|
||||
-- innodb_buffer_rows_cached: 210
|
||||
--
|
||||
|
||||
|
||||
DELIMITER $$
|
||||
BEGIN NOT ATOMIC
|
||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN END;
|
||||
|
||||
CREATE OR REPLACE
|
||||
ALGORITHM = TEMPTABLE
|
||||
DEFINER = 'root'@'localhost'
|
||||
@@ -114,3 +118,5 @@ SELECT pst.object_schema AS table_schema,
|
||||
ON pst.object_schema = ibp.object_schema
|
||||
AND pst.object_name = ibp.object_name
|
||||
ORDER BY pst.sum_timer_wait DESC;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
Reference in New Issue
Block a user