mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
MDEV-5419 no audit events for warnings converted to errors in the strict mode.
Plugins get error notifications only when my_message_sql() is called. But errors are launched with THD::raise_condition() calls in other places. These are push_warning(), implementations of SIGNAL and RESIGNAL commands. So it makes sence to notify plugins there in THD::raise_condition().
This commit is contained in:
55
mysql-test/suite/plugins/t/sql_error_log.test
Normal file
55
mysql-test/suite/plugins/t/sql_error_log.test
Normal file
@ -0,0 +1,55 @@
|
||||
|
||||
--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;
|
||||
|
||||
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;
|
||||
|
Reference in New Issue
Block a user