mirror of https://github.com/Icinga/icinga2.git
ido: Drop unused instance_id indices from comments, downtimes and their related history tables
This commit is contained in:
parent
1632415370
commit
6f6703042e
|
@ -9,6 +9,58 @@
|
|||
|
||||
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
|
||||
|
||||
-- --------------------------------------------------------
|
||||
-- Helper functions and procedures for DROP INDEX IF EXISTS
|
||||
-- --------------------------------------------------------
|
||||
|
||||
DELIMITER //
|
||||
DROP FUNCTION IF EXISTS ido_index_exists //
|
||||
CREATE FUNCTION ido_index_exists(
|
||||
f_table_name varchar(64),
|
||||
f_index_name varchar(64)
|
||||
)
|
||||
RETURNS BOOL
|
||||
DETERMINISTIC
|
||||
READS SQL DATA
|
||||
BEGIN
|
||||
DECLARE index_exists BOOL DEFAULT FALSE;
|
||||
SELECT EXISTS (
|
||||
SELECT 1
|
||||
FROM information_schema.statistics
|
||||
WHERE table_schema = SCHEMA()
|
||||
AND table_name = f_table_name
|
||||
AND index_name = f_index_name
|
||||
) INTO index_exists;
|
||||
RETURN index_exists;
|
||||
END //
|
||||
|
||||
DROP PROCEDURE IF EXISTS ido_drop_index_if_exists //
|
||||
CREATE PROCEDURE ido_drop_index_if_exists (
|
||||
IN p_table_name varchar(64),
|
||||
IN p_index_name varchar(64)
|
||||
)
|
||||
DETERMINISTIC
|
||||
MODIFIES SQL DATA
|
||||
BEGIN
|
||||
IF ido_index_exists(p_table_name, p_index_name)
|
||||
THEN
|
||||
SET @ido_drop_index_sql = CONCAT('ALTER TABLE `', SCHEMA(), '`.`', p_table_name, '` DROP INDEX `', p_index_name, '`');
|
||||
PREPARE stmt FROM @ido_drop_index_sql;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
SET @ido_drop_index_sql = NULL;
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
CALL ido_drop_index_if_exists('icinga_downtimehistory', 'instance_id');
|
||||
CALL ido_drop_index_if_exists('icinga_scheduleddowntime', 'instance_id');
|
||||
CALL ido_drop_index_if_exists('icinga_commenthistory', 'instance_id');
|
||||
CALL ido_drop_index_if_exists('icinga_comments', 'instance_id');
|
||||
|
||||
DROP FUNCTION ido_index_exists;
|
||||
DROP PROCEDURE ido_drop_index_if_exists;
|
||||
|
||||
-- -----------------------------------------
|
||||
-- #5458 IDO: Improve downtime removal/cancel
|
||||
-- -----------------------------------------
|
||||
|
|
|
@ -7,6 +7,11 @@
|
|||
-- Please check https://docs.icinga.com for upgrading information!
|
||||
-- -----------------------------------------
|
||||
|
||||
ALTER TABLE icinga_downtimehistory DROP CONSTRAINT IF EXISTS UQ_downtimehistory;
|
||||
ALTER TABLE icinga_scheduleddowntime DROP CONSTRAINT IF EXISTS UQ_scheduleddowntime;
|
||||
ALTER TABLE icinga_commenthistory DROP CONSTRAINT IF EXISTS UQ_commenthistory;
|
||||
ALTER TABLE icinga_comments DROP CONSTRAINT IF EXISTS UQ_comments;
|
||||
|
||||
-- -----------------------------------------
|
||||
-- #5458 IDO: Improve downtime removal/cancel
|
||||
-- -----------------------------------------
|
||||
|
|
Loading…
Reference in New Issue