diff roundup/backends/rdbms_common.py @ 2482:a15f91a10e45 maint-0.7

merge from HEAD
author Richard Jones <richard@users.sourceforge.net>
date Mon, 21 Jun 2004 04:34:58 +0000
parents a8db3996b4f5
children 8ff455218ec2
line wrap: on
line diff
--- a/roundup/backends/rdbms_common.py	Thu Jun 17 10:15:49 2004 +0000
+++ b/roundup/backends/rdbms_common.py	Mon Jun 21 04:34:58 2004 +0000
@@ -1,4 +1,4 @@
-# $Id: rdbms_common.py,v 1.98.2.8 2004-06-09 09:48:49 richard Exp $
+# $Id: rdbms_common.py,v 1.98.2.9 2004-06-21 04:34:57 richard Exp $
 ''' Relational database (SQL) backend common code.
 
 Basics:
@@ -53,6 +53,12 @@
     except:
         return float(num)
 
+def _bool_cvt(value):
+    if value in ('TRUE', 'FALSE'):
+        return {'TRUE': 1, 'FALSE': 0}[value]
+    # assume it's a number returned from the db API
+    return int(value)
+
 class Database(FileStorage, hyperdb.Database, roundupdb.Database):
     ''' Wrapper around an SQL database that presents a hyperdb interface.
 
@@ -736,7 +742,7 @@
 
             prop = props[col[1:]]
             value = values[col[1:]]
-            if value:
+            if value is not None:
                 value = self.hyperdb_to_sql_value[prop.__class__](value)
             vals.append(value)
         vals.append(nodeid)
@@ -876,7 +882,7 @@
         hyperdb.Link   : str,
         hyperdb.Interval  : date.Interval,
         hyperdb.Password  : lambda x: password.Password(encrypted=x),
-        hyperdb.Boolean   : int,
+        hyperdb.Boolean   : _bool_cvt,
         hyperdb.Number    : _num_cvt,
         hyperdb.Multilink : lambda x: x,    # used in journal marshalling
     }

Roundup Issue Tracker: http://roundup-tracker.org/