From 247d7eaca3df99cfd23f23911e3ca689046c18ad Mon Sep 17 00:00:00 2001 From: Lele Gaifax Date: Fri, 22 Jan 2010 19:02:57 +0000 Subject: [PATCH] Fix #1582, backporting [6257]: handle spurious spaces reflecting default values on Firebird --- CHANGES | 6 ++++++ lib/sqlalchemy/databases/firebird.py | 11 +++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) 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']: -- 2.47.3