summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/databases/mysql.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2007-01-12 01:57:41 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2007-01-12 01:57:41 +0000
commitbd70cdb5fd9971f4989f8ebbad6fea2b4fc4462a (patch)
treeba43e349e3626df620dc81b22bad6f1765130ea8 /lib/sqlalchemy/databases/mysql.py
parent4e7c3d50deea68319c9622a4fd4af5126567cffe (diff)
downloadsqlalchemy-bd70cdb5fd9971f4989f8ebbad6fea2b4fc4462a.tar.gz
- mysql is inconsistent with what kinds of quotes it uses in foreign keys during a
SHOW CREATE TABLE, reflection updated to accomodate for all three styles [ticket:420]
Diffstat (limited to 'lib/sqlalchemy/databases/mysql.py')
-rw-r--r--lib/sqlalchemy/databases/mysql.py6
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/sqlalchemy/databases/mysql.py b/lib/sqlalchemy/databases/mysql.py
index 32402763f..0edcbc7bd 100644
--- a/lib/sqlalchemy/databases/mysql.py
+++ b/lib/sqlalchemy/databases/mysql.py
@@ -422,10 +422,10 @@ class MySQLDialect(ansisql.ANSIDialect):
if match:
tabletype = match.group('ttype')
- fkpat = r'CONSTRAINT `(?P<name>.+?)` FOREIGN KEY \((?P<columns>.+?)\) REFERENCES `(?P<reftable>.+?)` \((?P<refcols>.+?)\)'
+ fkpat = r'''CONSTRAINT [`"'](?P<name>.+?)[`"'] FOREIGN KEY \((?P<columns>.+?)\) REFERENCES [`"'](?P<reftable>.+?)[`"'] \((?P<refcols>.+?)\)'''
for match in re.finditer(fkpat, desc):
- columns = re.findall(r'`(.+?)`', match.group('columns'))
- refcols = [match.group('reftable') + "." + x for x in re.findall(r'`(.+?)`', match.group('refcols'))]
+ columns = re.findall(r'''[`"'](.+?)[`"']''', match.group('columns'))
+ refcols = [match.group('reftable') + "." + x for x in re.findall(r'''[`"'](.+?)[`"']''', match.group('refcols'))]
schema.Table(match.group('reftable'), table.metadata, autoload=True, autoload_with=connection)
constraint = schema.ForeignKeyConstraint(columns, refcols, name=match.group('name'))
table.append_constraint(constraint)