diff options
author | Jason Kirtland <jek@discorporate.us> | 2007-08-22 00:21:06 +0000 |
---|---|---|
committer | Jason Kirtland <jek@discorporate.us> | 2007-08-22 00:21:06 +0000 |
commit | 372e69ee08cd2d35747edf311ff3b539923b1728 (patch) | |
tree | 76b560b6fca760874259b0c56be3452b3033841e /lib/sqlalchemy/databases/sqlite.py | |
parent | 8ebbfae0a4b39a80ad1eac233f9ce68a5e5d7fdf (diff) | |
download | sqlalchemy-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.py | 9 |
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" |