· 7 years ago · Nov 28, 2018, 08:08 AM
1# Debug database and debug table for Sipred debug control.
2# Run as:
3# $ mysql -e "source _path_to_this_file_/create_dbg.sql"
4#
5# Example test dbg:
6# SET @l_proc_id := 'test_debug';
7# CALL Debug.debug_on(@l_proc_id);
8# CALL Debug.debug_insert(@l_proc_id,'Testing Debug');
9# CALL Debug.debug_off(@l_proc_id);
10
11DROP DATABASE IF EXISTS Debug;
12CREATE DATABASE Debug;
13
14DROP TABLE IF EXISTS Debug.debug;
15
16CREATE TABLE Debug.debug (
17 proc_id VARCHAR(50) default NULL,
18 debug_output TEXT,
19 line_id INT(11) NOT NULL auto_increment,
20 PRIMARY KEY (line_id)
21);
22
23DELIMITER %%
24
25DROP PROCEDURE IF EXISTS Debug.debug_insert %%
26DROP PROCEDURE IF EXISTS Debug.debug_on %%
27DROP PROCEDURE IF EXISTS Debug.debug_off %%
28
29CREATE PROCEDURE Debug.debug_insert(IN p_procedure_id VARCHAR(50), IN p_debug_info TEXT)
30BEGIN
31 INSERT INTO Debug.debug(proc_id, debug_output)
32 VALUES (p_procedure_id, p_debug_info);
33END %%
34
35CREATE PROCEDURE Debug.debug_on(IN p_procedure_id VARCHAR(50))
36BEGIN
37 CALL Debug.debug_insert(p_procedure_id, CONCAT('Debug started at: ', NOW()));
38END %%
39
40CREATE PROCEDURE Debug.debug_off(IN p_procedure_id VARCHAR(50))
41BEGIN
42 CALL Debug.debug_insert(p_procedure_id, CONCAT('Debug ended at: ', NOW()));
43 SELECT debug_output FROM Debug.debug WHERE proc_id = p_procedure_id ORDER BY line_id;
44 DELETE FROM Debug.debug WHERE proc_id = p_procedure_id;
45END %%
46
47DELIMITER ;