summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/databases/mysql.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2006-09-01 00:30:36 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2006-09-01 00:30:36 +0000
commit2c1006534e2bb9e3e468e6ce47181f7a1f8a8de8 (patch)
tree1942e4ea5c494aa04f6db02b97b7de8ee6fb104f /lib/sqlalchemy/databases/mysql.py
parenta0255d22d0ec28d0542821bcb7f64945cdf44ef8 (diff)
downloadsqlalchemy-2c1006534e2bb9e3e468e6ce47181f7a1f8a8de8.tar.gz
possible fix for [ticket:276]. if mysql detects case-insensitivity, converts
tables to lower case names
Diffstat (limited to 'lib/sqlalchemy/databases/mysql.py')
-rw-r--r--lib/sqlalchemy/databases/mysql.py8
1 files changed, 5 insertions, 3 deletions
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: