diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-08-07 21:58:53 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2006-08-07 21:58:53 +0000 |
commit | a38cc03bb6e114fe846704600aaf0b4ee6023422 (patch) | |
tree | 68aa4d15fa3a29fba9c1e7740ffa3ccc6452a750 /lib/sqlalchemy/databases/mysql.py | |
parent | af59af2359cf37325fdace801e37871b014b8b5b (diff) | |
download | sqlalchemy-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.py | 7 |
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: |