Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
None
-
None
Description
To reproduce this bug, it’s sufficient to run the query INSERT INTO Persons SELECT 5, 'EEE', PKG2.func(@a); after creating table Persons. In the case of APFS, the default filesystem on Mac, it is case-insensitive. On such systems, we set lower_case_table_names is to 2. According to our KB at https://mariadb.com/docs/server/ref/mdb/system-variables/lower_case_table_names/ this means that “When the lower_case_table_names system variable is set to 2, the server uses a special mode for case-insensitive file systems. In this mode, table names and database names are stored as declared, but they are compared in lowercase.” This bug happens because the sp_name constructor discards the case information for the procedure name if lower_case_table_names is any value other than zero, and stores the name as all lowercase. Later, if we print or otherwise display this name, it’s shown as all lowercase, in contradiction to our documentation.
To fix this bug, I think we need to remember the value in its original case, perhaps as a separate variable on the sp_name class, and show that whenever the name may be displayed to the user. We can retain the all-lowercase value for internal processing as we do today.
Attachments
Issue Links
- is caused by
-
MDEV-33616 Tests Failing on macOS, organized by failure kind
- Stalled