We have a database that is utf8mb4 and utf8mb4_unicode_ci through and through. I've even exported all SQL code of the entire "project" (via dbForge) and can't find a single reference to UTF8 in the entire project. I've verified all tables use the proper charset and collation.
The problem is every time I perform a reset on our sandbox (which rebuilds the data within the database for testing purposes), I get the following error in multiple stored procedures:
SQLEXCEPTION:CORE_create_root_data:(HY000:3719) 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.
I can't figure out why on earth this is happening; there is no UTF8 definition within the stored procedure or the stored procedures it calls or any columns of any table. I've even walked the code in debug mode and tracked down where these warnings are being triggered. It's a stored procedure that simply inserts root data into the database; and the warning is triggered at the return of the call. It makes absolutely no sense. For example:
Below is the handler that's triggered:
DECLARE CONTINUE HANDLER FOR SQLWARNING
BEGIN
GET DIAGNOSTICS CONDITION 1 @p1 = RETURNED_SQLSTATE, @p2 = MYSQL_ERRNO, @p3 = MESSAGE_TEXT;
IF @p1 REGEXP '^01' = 1 THEN
SET @errortype = 'SQL WARNING';
ELSEIF @p1 REGEXP '^02' = 1 THEN
SET @errortype = 'NOT FOUND';
ELSEIF @p1 REGEXP '^0[0-2]' = 0 THEN
SET @errortype = 'SQLEXCEPTION';
END IF;
SET @full_error = CONCAT(@errortype, ':CORE_create_root_data:(', @p1, ':', @p2, ') ', @p3);
SELECT
@full_error;
END;
The below Stored Procedure is called (var_result is simply a BOOL result).
CALL CORE_create_global_static_settings(in_password, var_result);
The code from the above does this:
INSERT INTO global_static_setting (setting_category, setting_name, setting_value)
VALUES ('GLOBAL_VALUE', 'LIMIT_DEFAULT', 200);
Upon return from the SP that does the simple insert... it triggers the utf8 error/warning.
Any idea what's going on here?