summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/databases/sqlite.py
diff options
context:
space:
mode:
authorJason Kirtland <jek@discorporate.us>2007-08-22 00:21:06 +0000
committerJason Kirtland <jek@discorporate.us>2007-08-22 00:21:06 +0000
commit372e69ee08cd2d35747edf311ff3b539923b1728 (patch)
tree76b560b6fca760874259b0c56be3452b3033841e /lib/sqlalchemy/databases/sqlite.py
parent8ebbfae0a4b39a80ad1eac233f9ce68a5e5d7fdf (diff)
downloadsqlalchemy-372e69ee08cd2d35747edf311ff3b539923b1728.tar.gz
For sqlite NUMERIC, send Decimal bind values as strings instead of converting to floats.
Diffstat (limited to 'lib/sqlalchemy/databases/sqlite.py')
-rw-r--r--lib/sqlalchemy/databases/sqlite.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/sqlalchemy/databases/sqlite.py b/lib/sqlalchemy/databases/sqlite.py
index 8618bfc3e..86146af4d 100644
--- a/lib/sqlalchemy/databases/sqlite.py
+++ b/lib/sqlalchemy/databases/sqlite.py
@@ -18,6 +18,15 @@ from sqlalchemy.sql import compiler
SELECT_REGEXP = re.compile(r'\s*(?:SELECT|PRAGMA)', re.I | re.UNICODE)
class SLNumeric(sqltypes.Numeric):
+ def bind_processor(self, dialect):
+ type_ = self.asdecimal and str or float
+ def process(value):
+ if value is not None:
+ return type_(value)
+ else:
+ return value
+ return process
+
def get_col_spec(self):
if self.precision is None:
return "NUMERIC"