--source include/not_embedded.inc if (!$SQL_ERRLOG_SO) { skip No SQL_ERROR_LOG plugin; } --disable_warnings drop procedure if exists test_error; drop table if exists t1; --enable_warnings install plugin SQL_ERROR_LOG soname 'sql_errlog'; show variables like 'sql_error_log%'; set global sql_error_log_rate=1; --error ER_NO_SUCH_TABLE select * from t_doesnt_exist; --error 1064 syntax_error_query; delimiter |; CREATE PROCEDURE test_error() BEGIN DECLARE CONTINUE HANDLER FOR 1146 BEGIN RESIGNAL SQLSTATE '40000' SET MYSQL_ERRNO = 1000, MESSAGE_TEXT = 'new message'; END; SELECT `c` FROM `temptab`; END| delimiter ;| --error 1000 CALL test_error(); drop procedure test_error; SET SQL_MODE = STRICT_ALL_TABLES; create table t1(id int); --error 1366 insert into t1 values ('aa'); SET SQL_MODE = ''; drop table t1; SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'not_exists' AND TABLE_NAME = 'not_exists'; # # MDEV-6421 SQL_ERROR_LOG doesn't log comments in Events # actually testing SP call is enough for that. DELIMITER |; CREATE procedure e1() BEGIN START TRANSACTION; INSERT INTO test.non_exists VALUES (0,0,0) /* e1 */; COMMIT; END| DELIMITER ;| --error ER_NO_SUCH_TABLE CALL e1(); DROP PROCEDURE e1; uninstall plugin SQL_ERROR_LOG; let $MYSQLD_DATADIR= `SELECT @@datadir`; # replace the timestamp and the hostname with constant values --replace_regex /[1-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] [ 0-9][0-9]:[0-9][0-9]:[0-9][0-9] [^E]*/TIME HOSTNAME / cat_file $MYSQLD_DATADIR/sql_errors.log;