summaryrefslogtreecommitdiff
path: root/db.py
diff options
context:
space:
mode:
authorPierre-Yves David <pierre-yves.david@logilab.fr>2008-08-04 14:44:24 +0200
committerPierre-Yves David <pierre-yves.david@logilab.fr>2008-08-04 14:44:24 +0200
commit1ea16bb5f8ad86619a2fbf29ae05c78d943e68e6 (patch)
tree4800a85d12d31b4c98219aa5e5bb557daec8b5df /db.py
parenta514ba5f86b31372222202c271919f468cec523a (diff)
downloadlogilab-common-1ea16bb5f8ad86619a2fbf29ae05c78d943e68e6.tar.gz
add Decimal Type support for database apy
Diffstat (limited to 'db.py')
-rw-r--r--db.py15
1 files changed, 14 insertions, 1 deletions
diff --git a/db.py b/db.py
index 25e6df4..06c565a 100644
--- a/db.py
+++ b/db.py
@@ -348,6 +348,17 @@ class _PySqlite2Adapter(DBAPIAdapter):
def adapt_boolean(bval):
return str(bval).upper()
sqlite.register_adapter(bool, adapt_boolean)
+
+
+ # decimal type handling
+ from decimal import Decimal
+ def adapt_decimal(data):
+ return u"%s" % data
+ sqlite.register_adapter(Decimal,adapt_decimal)
+
+ def convert_decimal(data):
+ return Decimal(data)
+ sqlite.register_converter('decimal',convert_decimal)
# date/time types handling
if HAS_MX_DATETIME:
@@ -392,7 +403,9 @@ class _PySqlite2Adapter(DBAPIAdapter):
if kwargs is None:
self.__class__.__bases__[0].execute(self, sql)
else:
- self.__class__.__bases__[0].execute(self, self._replace_parameters(sql, kwargs), kwargs)
+ final_sql = self._replace_parameters(sql, kwargs)
+ self.__class__.__bases__[0].execute(self, final_sql , kwargs)
+
def executemany(self, sql, kwargss):
if not isinstance(kwargss, (list, tuple)):
kwargss = tuple(kwargss)