mariadb/mysql-test/suite/plugins/t/server_audit_query_id.test
Arcadiy Ivanov 62b21714d0 Reproducible test case for MDEV-37434
Add debug logging to help with tracing

Add the fix
2025-09-18 18:01:33 +02:00

89 lines
2.2 KiB
Text

--source include/have_innodb.inc
--source include/have_plugin_auth.inc
--source include/not_embedded.inc
if (!$SERVER_AUDIT_SO) {
skip No SERVER_AUDIT plugin;
}
# An unfortunate wait for check-testcase.inc to complete disconnect.
let count_sessions= 1;
source include/wait_until_count_sessions.inc;
let $MYSQLD_DATADIR= `SELECT @@datadir`;
let SEARCH_FILE= $MYSQLD_DATADIR/server_audit_query_id.log;
--disable_ps_protocol
set global server_audit_logging=on;
USE test;
CREATE TABLE source (
id bigint(20) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE dest (
id bigint(20) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE dest_2 (
id bigint(20) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
DELIMITER //;
CREATE TRIGGER test_trigger
AFTER INSERT ON source
FOR EACH ROW
INSERT INTO dest (id) VALUES(NEW.id)//
DELIMITER ;//
DELIMITER //;
CREATE TRIGGER test_trigger_2
AFTER INSERT ON dest
FOR EACH ROW
INSERT INTO dest_2 (id) VALUES(NEW.id)//
DELIMITER ;//
DELIMITER //;
CREATE PROCEDURE test_procedure (IN id bigint(20))
NOT DETERMINISTIC MODIFIES SQL DATA
BEGIN
INSERT INTO source VALUES (id), (NULL);
END;//
DELIMITER ;//
--echo # Insert a row to trigger the AFTER trigger
INSERT INTO source VALUES (NULL);
--echo # Insert another row to see the pattern
INSERT INTO source VALUES (NULL);
--echo # Test with multi-row insert
INSERT INTO source VALUES (NULL), (NULL);
--echo # Test with stored procedure
CALL test_procedure(NULL);
--echo # Clean up
DROP PROCEDURE test_procedure;
DROP TABLE source, dest, dest_2;
set global server_audit_logging=off;
--echo # Wait for audit events to be written
--let SEARCH_FILE = $MYSQLD_DATADIR/server_audit_query_id.log
--let SEARCH_PATTERN = set global server_audit_logging=off
--source include/search_pattern_in_file.inc
# Read and normalize the log
--exec perl $MYSQL_TEST_DIR/suite/plugins/t/normalize_query_id.pl $SEARCH_FILE
# Output the log without heavy replacements so we can see the actual order
--replace_regex /\d\d\d\d\d\d\d\d \d\d:\d\d:\d\d/TIMESTAMP/ /,[^,]+,root,localhost,/,HOSTNAME,root,localhost,/
cat_file $SEARCH_FILE;
remove_file $SEARCH_FILE;