--disable_query_log --disable_result_log # ----------------------------------------------------------------------------- # Setup # ----------------------------------------------------------------------------- --disable_ps_protocol INSTALL PLUGIN NULL_AUDIT SONAME 'adt_null.so'; CREATE DATABASE audit_test; USE audit_test; CREATE TABLE t (id INT PRIMARY KEY); DELIMITER |; # Procedure body: 4 sub-statements (INSERT / SELECT..INTO / UPDATE / DELETE). CREATE PROCEDURE test_proc(IN p_id INT) BEGIN INSERT INTO t(id) VALUES (p_id); SELECT COUNT(*) INTO @c FROM t WHERE id = p_id; # INTO: no client result set UPDATE t SET id = p_id; DELETE FROM t; END| # Function body: 3 sub-statements. CREATE FUNCTION test_fn(p INT) RETURNS INT DETERMINISTIC BEGIN DECLARE r1 INT; DECLARE r2 INT; DECLARE r3 INT; SELECT 1 INTO r1; SELECT 2 INTO r2; SELECT 3 INTO r3; RETURN r1 + r2 + r3 + p; END| DELIMITER ;| --enable_ps_protocol --echo # setup done # ----------------------------------------------------------------------------- # Measurements (statements run under --ps-protocol = COM_STMT_EXECUTE, but are # not echoed to the output). # ----------------------------------------------------------------------------- # --- Function: 3 internal sub-statements --- let $g0= query_get_value(SHOW GLOBAL STATUS LIKE 'Audit_null_general_status', Value, 1); SELECT test_fn(1); let $g1= query_get_value(SHOW GLOBAL STATUS LIKE 'Audit_null_general_status', Value, 1); --let $d_fn= `SELECT $g1 - $g0` --echo # test_fn : Audit_null_general_status before=$g0 after=$g1 delta=$d_fn # --- Procedure: 4 internal sub-statements (INSERT/UPDATE/DELETE included) --- let $g0= query_get_value(SHOW GLOBAL STATUS LIKE 'Audit_null_general_status', Value, 1); CALL test_proc(1); let $g1= query_get_value(SHOW GLOBAL STATUS LIKE 'Audit_null_general_status', Value, 1); --let $d_pr= `SELECT $g1 - $g0` --echo # test_proc : Audit_null_general_status before=$g0 after=$g1 delta=$d_pr # ----------------------------------------------------------------------------- # Cleanup # ----------------------------------------------------------------------------- --disable_ps_protocol DROP DATABASE audit_test; --disable_warnings UNINSTALL PLUGIN NULL_AUDIT; --enable_warnings --enable_ps_protocol --echo # cleanup done