]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Fix #1582, backporting [6257]: handle spurious spaces reflecting default values on...
authorLele Gaifax <lele@metapensiero.it>
Fri, 22 Jan 2010 19:02:57 +0000 (19:02 +0000)
committerLele Gaifax <lele@metapensiero.it>
Fri, 22 Jan 2010 19:02:57 +0000 (19:02 +0000)
CHANGES
lib/sqlalchemy/databases/firebird.py

diff --git a/CHANGES b/CHANGES
index 1071f013260193572e1e12559f61b53002c29cb5..0068cc20b4805f9a9a7dc52c0c27a5a1b46c9101 100644 (file)
--- 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
index d61e8092bb3ce637edd994b1a5c693b4cf200706..32dc211b6dd2e008f19d0107fc3661216060747c 100644 (file)
@@ -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']: