summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/databases/mysql.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2006-08-07 21:58:53 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2006-08-07 21:58:53 +0000
commita38cc03bb6e114fe846704600aaf0b4ee6023422 (patch)
tree68aa4d15fa3a29fba9c1e7740ffa3ccc6452a750 /lib/sqlalchemy/databases/mysql.py
parentaf59af2359cf37325fdace801e37871b014b8b5b (diff)
downloadsqlalchemy-a38cc03bb6e114fe846704600aaf0b4ee6023422.tar.gz
fixed possible error in mysql reflection where certain versions
return an array instead of string for SHOW CREATE TABLE call
Diffstat (limited to 'lib/sqlalchemy/databases/mysql.py')
-rw-r--r--lib/sqlalchemy/databases/mysql.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/sqlalchemy/databases/mysql.py b/lib/sqlalchemy/databases/mysql.py
index c98593a55..7e337b9a3 100644
--- a/lib/sqlalchemy/databases/mysql.py
+++ b/lib/sqlalchemy/databases/mysql.py
@@ -372,7 +372,12 @@ class MySQLDialect(ansisql.ANSIDialect):
CONSTRAINT `child_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `parent` (`id`) ON DELETE CASCADE\n) TYPE=InnoDB
"""
c = connection.execute("SHOW CREATE TABLE " + table.name, {})
- desc = c.fetchone()[1].strip()
+ desc_fetched = c.fetchone()[1]
+ if type(desc_fetched) is not str:
+ # may get array.array object here, depending on version (such as mysql 4.1.14 vs. 4.1.11)
+ desc_fetched = desc_fetched.tostring()
+ desc = desc_fetched.strip()
+
tabletype = ''
lastparen = re.search(r'\)[^\)]*\Z', desc)
if lastparen: