DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `util`.`slowLog_prune`()
BEGIN
/**
 * Prunes MySQL slow query log table deleting all records older than one week.
 */
	DECLARE vSlowQueryLog INT DEFAULT @@slow_query_log;
	DECLARE vSqlLogBin INT DEFAULT @@SESSION.sql_log_bin;
	DECLARE vLogExists BOOL;

	SET sql_log_bin = OFF;
	SET GLOBAL slow_query_log = OFF;

	SELECT COUNT(*) INTO vLogExists
		FROM information_schema.TABLES
		WHERE TABLE_SCHEMA = 'mysql' AND TABLE_NAME = 'slow_log';

	IF vLogExists THEN
		DROP TEMPORARY TABLE IF EXISTS `mysql`.`slow_log_temp`;
		RENAME TABLE `mysql`.`slow_log` TO `mysql`.`slow_log_temp`;
	END IF;

	DELETE FROM `mysql`.`slow_log_temp`
		WHERE start_time < TIMESTAMPADD(WEEK, -1, util.VN_NOW());

	RENAME TABLE `mysql`.`slow_log_temp` TO `mysql`.`slow_log`;

	SET GLOBAL slow_query_log = vSlowQueryLog;
	SET sql_log_bin = vSqlLogBin;
END$$
DELIMITER ;
