From: Lele Gaifax Date: Fri, 22 Jan 2010 19:02:57 +0000 (+0000) Subject: Fix #1582, backporting [6257]: handle spurious spaces reflecting default values on... X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=247d7eaca3df99cfd23f23911e3ca689046c18ad;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git Fix #1582, backporting [6257]: handle spurious spaces reflecting default values on Firebird --- diff --git a/CHANGES b/CHANGES index 1071f01326..0068cc20b4 100644 --- a/CHANGES +++ b/CHANGES @@ -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 d61e8092bb..32dc211b6d 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']: