Opened 8 years ago

Last modified 8 years ago

#27321 closed Bug

ignores_quoted_identifier_case broken on MySQL on OS X/Windows — at Initial Version

Reported by: Adam Johnson Owned by: nobody
Component: Database layer (models, ORM) Version: 1.10
Severity: Normal Keywords: mysql, mariadb
Cc: me@… Triage Stage: Ready for checkin
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

#26781 added test_alter_db_table_case which presumes that table names are case sensitive. MySQL and MariaDB rely on the underlying filesystem to provide case sensitivity, as well as a setting, as per https://dev.mysql.com/doc/refman/5.7/en/identifier-case-sensitivity.html and https://mariadb.com/kb/en/mariadb/identifier-case-sensitivity/ . Thus it fails on OS X where the default filesystem is case insensitive, with:

django.db.utils.InternalError: (1050, "Table 'SCHEMA_AUTHOR' already exists")

I can't find any good information on whether PostgreSQL depends on filesystem case sensitive or not. All the results I found in five minutes of Googling seem to relate to whether it's syntactically case sensitive, and suggest it lowercases all table names in queries unless they are double-quoted, which would make renaming a table to uppercase a no-op.

This would mean ignores_quoted_identifier_case should be True for MySQL with its data directory mounted on a case insensitive filesystem. The only way to reliably check this would be to try create two tables with names that differ only in case and seeing if the second one failed..

Change History (0)

Note: See TracTickets for help on using tickets.
Back to Top