From 2c1006534e2bb9e3e468e6ce47181f7a1f8a8de8 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Fri, 1 Sep 2006 00:30:36 +0000 Subject: possible fix for [ticket:276]. if mysql detects case-insensitivity, converts tables to lower case names --- lib/sqlalchemy/databases/mysql.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'lib/sqlalchemy/databases/mysql.py') diff --git a/lib/sqlalchemy/databases/mysql.py b/lib/sqlalchemy/databases/mysql.py index 825d779e1..bb6b41d78 100644 --- a/lib/sqlalchemy/databases/mysql.py +++ b/lib/sqlalchemy/databases/mysql.py @@ -317,9 +317,11 @@ class MySQLDialect(ansisql.ANSIDialect): return bool( not not cursor.rowcount ) def reflecttable(self, connection, table): - # to use information_schema: - #ischema.reflecttable(self, table, ischema_names, use_mysql=True) - + # reference: http://dev.mysql.com/doc/refman/5.0/en/name-case-sensitivity.html + case_sensitive = connection.execute("show variables like 'lower_case_table_names'").fetchone()[1] == 0 + if not case_sensitive: + table.name = table.name.lower() + table.metadata.tables[table.name]= table c = connection.execute("describe " + table.name, {}) found_table = False while True: -- cgit v1.2.1