Details
-
Bug
-
Status: Open (View Workflow)
-
Minor
-
Resolution: Unresolved
-
5.5(EOL), 10.0(EOL), 10.1(EOL)
-
Linux (and probably all case sensitive file systems)
Description
When working with a case sensitive file-system, MariaDB (it also fails in MySQL) allows you to have
a database with the same name in different cases (example TEST/test).
This works correctly.
However, procedures that are related to that database are stored inside
information_schema.routines associated with ROUTINE_SCHEMA which is a
case insensitive column.
This brings a problem, for example, when using mysqldump since when
listing routines to dump in the line "SHOW %s STATUS WHERE Db = '%s'"
it would bring procedures from other databases that have the same name
with different case.
mysqldump could be modified to use mysql.proc instead which correctly
has utf8_bin in the Db column, but I'm not sure that would be the best
to go since this affects anyone using SHOW <P/F> STATUS.
CREATE DATABASE A; |
USE A; |
|
delimiter //
|
|
CREATE PROCEDURE simpleproc() |
BEGIN |
SELECT 1; |
END// |
|
delimiter ;
|
CREATE DATABASE a; |
USE a; |
|
SHOW PROCEDURE STATUS WHERE Db = 'a'; |
-- Incorrectly shows procedure from A
|
SELECT count(*) FROM mysql.proc WHERE Db='a'; |
-- Correctly show 0 results
|
|
DROP DATABASE A; |
DROP DATABASE a; |