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(*) > 0 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 ;