diff options
author | Lele Gaifax <lele@metapensiero.it> | 2010-01-22 19:02:57 +0000 |
---|---|---|
committer | Lele Gaifax <lele@metapensiero.it> | 2010-01-22 19:02:57 +0000 |
commit | 247d7eaca3df99cfd23f23911e3ca689046c18ad (patch) | |
tree | 4365d6f54ec2674087dfacb1864df88aba2bf219 | |
parent | e1b22962e5672f67ca77806b1a8abfc49b661615 (diff) | |
download | sqlalchemy-247d7eaca3df99cfd23f23911e3ca689046c18ad.tar.gz |
Fix #1582, backporting [6257]: handle spurious spaces reflecting default values on Firebird
-rw-r--r-- | CHANGES | 6 | ||||
-rw-r--r-- | lib/sqlalchemy/databases/firebird.py | 11 |
2 files changed, 13 insertions, 4 deletions
@@ -4,6 +4,12 @@ CHANGES ======= +0.5.9 +===== +- firebird + - Fix reflection of default values with spurious spaces + (backport of r6257). [ticket:1582] + 0.5.8 ===== - sql diff --git a/lib/sqlalchemy/databases/firebird.py b/lib/sqlalchemy/databases/firebird.py index d61e8092b..32dc211b6 100644 --- a/lib/sqlalchemy/databases/firebird.py +++ b/lib/sqlalchemy/databases/firebird.py @@ -497,10 +497,13 @@ class FBDialect(default.DefaultDialect): # does it have a default value? if row['fdefault'] is not None: - # the value comes down as "DEFAULT 'value'" - assert row['fdefault'].upper().startswith('DEFAULT '), row - defvalue = row['fdefault'][8:] - args.append(schema.DefaultClause(sql.text(defvalue))) + # the value comes down as "DEFAULT 'value'": there may be + # more than one space around the "DEFAULT" keyword + defexpr = row['fdefault'].lstrip() + assert defexpr.startswith('DEFAULT '), "Unrecognized default value: %s" % defexpr + defvalue = defexpr[8:].strip() + if defvalue != 'NULL': + args.append(schema.DefaultClause(sql.text(defvalue))) col = schema.Column(*args, **kw) if kw['primary_key']: |