summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy')
-rw-r--r--lib/sqlalchemy/sql/expression.py2
-rw-r--r--lib/sqlalchemy/types.py11
2 files changed, 10 insertions, 3 deletions
diff --git a/lib/sqlalchemy/sql/expression.py b/lib/sqlalchemy/sql/expression.py
index f3a1562c5..1c3961f1f 100644
--- a/lib/sqlalchemy/sql/expression.py
+++ b/lib/sqlalchemy/sql/expression.py
@@ -2155,6 +2155,8 @@ class _BindParamClause(ColumnElement):
if type_ is None:
self.type = sqltypes.type_map.get(type(value), _fallback_type or sqltypes.NULLTYPE)
+ if _fallback_type and _fallback_type._type_affinity == self.type._type_affinity:
+ self.type = _fallback_type
elif isinstance(type_, type):
self.type = type_()
else:
diff --git a/lib/sqlalchemy/types.py b/lib/sqlalchemy/types.py
index 7f1e38003..cdbf7927e 100644
--- a/lib/sqlalchemy/types.py
+++ b/lib/sqlalchemy/types.py
@@ -704,7 +704,8 @@ class Unicode(String):
"""
kwargs.setdefault('convert_unicode', True)
- super(Unicode, self).__init__(length=length, _warn_on_bytestring=True, **kwargs)
+ kwargs.setdefault('_warn_on_bytestring', True)
+ super(Unicode, self).__init__(length=length, **kwargs)
class UnicodeText(Text):
"""An unbounded-length Unicode string.
@@ -732,7 +733,8 @@ class UnicodeText(Text):
"""
kwargs.setdefault('convert_unicode', True)
- super(UnicodeText, self).__init__(length=length, _warn_on_bytestring=True, **kwargs)
+ kwargs.setdefault('_warn_on_bytestring', True)
+ super(UnicodeText, self).__init__(length=length, **kwargs)
class Integer(_DateAffinity, TypeEngine):
@@ -838,7 +840,10 @@ class Numeric(_DateAffinity, TypeEngine):
# try:
# from fastdec import mpd as Decimal
# except ImportError:
- return processors.to_decimal_processor_factory(_python_Decimal, self.scale)
+ if self.scale is not None:
+ return processors.to_decimal_processor_factory(_python_Decimal, self.scale)
+ else:
+ return processors.to_decimal_processor_factory(_python_Decimal)
else:
return None