mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
This is a patch for bug#41569.
"mysql_upgrade (ver 5.1) add 3 fields to mysql.proc table but does
not set values".
mysql_upgrade (ver 5.1) adds 3 fields (character_set_client,
collation_connection and db_collation) to the mysql.proc table, but
does not set any values. When we run stored procedures, which were
created with mysql 5.0, a warning is logged into the error log.
The solution to this is for mysql_upgrade to set default best guess
values for these fields. A warning is also written during upgrade, to
make the user aware that default values are set.
This commit is contained in:
@@ -89,3 +89,20 @@ DROP USER mysqltest1@'%';
|
||||
set GLOBAL sql_mode='STRICT_ALL_TABLES,ANSI_QUOTES,NO_ZERO_DATE';
|
||||
--exec $MYSQL_UPGRADE --skip-verbose --force 2>&1
|
||||
eval set GLOBAL sql_mode=default;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # Bug #41569 mysql_upgrade (ver 5.1) add 3 fields to mysql.proc table
|
||||
--echo # but does not set values.
|
||||
--echo #
|
||||
|
||||
# Create a stored procedure and set the fields in question to null.
|
||||
# When running mysql_upgrade, a warning should be written.
|
||||
|
||||
CREATE PROCEDURE testproc() BEGIN END;
|
||||
UPDATE mysql.proc SET character_set_client = NULL WHERE name LIKE 'testproc';
|
||||
UPDATE mysql.proc SET collation_connection = NULL WHERE name LIKE 'testproc';
|
||||
UPDATE mysql.proc SET db_collation = NULL WHERE name LIKE 'testproc';
|
||||
--exec $MYSQL_UPGRADE --skip-verbose --force 2>&1
|
||||
CALL testproc();
|
||||
DROP PROCEDURE testproc;
|
||||
|
||||
Reference in New Issue
Block a user