diff options
Diffstat (limited to 'lib/sqlalchemy/dialects/postgresql/pg8000.py')
| -rw-r--r-- | lib/sqlalchemy/dialects/postgresql/pg8000.py | 25 |
1 files changed, 6 insertions, 19 deletions
diff --git a/lib/sqlalchemy/dialects/postgresql/pg8000.py b/lib/sqlalchemy/dialects/postgresql/pg8000.py index e90bebb6b..079b05530 100644 --- a/lib/sqlalchemy/dialects/postgresql/pg8000.py +++ b/lib/sqlalchemy/dialects/postgresql/pg8000.py @@ -19,31 +19,23 @@ Interval Passing data from/to the Interval type is not supported as of yet. """ -from sqlalchemy.engine import default import decimal + +from sqlalchemy.engine import default from sqlalchemy import util, exc +from sqlalchemy import processors from sqlalchemy import types as sqltypes from sqlalchemy.dialects.postgresql.base import PGDialect, \ PGCompiler, PGIdentifierPreparer, PGExecutionContext class _PGNumeric(sqltypes.Numeric): def bind_processor(self, dialect): - def process(value): - if value is not None: - return float(value) - else: - return value - return process + return processors.to_float def result_processor(self, dialect, coltype): if self.asdecimal: if coltype in (700, 701): - def process(value): - if value is not None: - return decimal.Decimal(str(value)) - else: - return value - return process + return processors.to_decimal_processor_factory(decimal.Decimal) elif coltype == 1700: # pg8000 returns Decimal natively for 1700 return None @@ -54,12 +46,7 @@ class _PGNumeric(sqltypes.Numeric): # pg8000 returns float natively for 701 return None elif coltype == 1700: - def process(value): - if value is not None: - return float(value) - else: - return value - return process + return processors.to_float else: raise exc.InvalidRequestError("Unknown PG numeric type: %d" % coltype) |
