summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy')
-rw-r--r--lib/sqlalchemy/dialects/mssql/base.py15
1 files changed, 8 insertions, 7 deletions
diff --git a/lib/sqlalchemy/dialects/mssql/base.py b/lib/sqlalchemy/dialects/mssql/base.py
index 494101140..2d883309d 100644
--- a/lib/sqlalchemy/dialects/mssql/base.py
+++ b/lib/sqlalchemy/dialects/mssql/base.py
@@ -876,8 +876,10 @@ class REAL(sqltypes.REAL):
__visit_name__ = "REAL"
def __init__(self, **kw):
- # REAL is a synonym for FLOAT(24) on SQL server
- kw["precision"] = 24
+ # REAL is a synonym for FLOAT(24) on SQL server.
+ # it is only accepted as the word "REAL" in DDL, the numeric
+ # precision value is not allowed to be present
+ kw.setdefault("precision", 24)
super(REAL, self).__init__(**kw)
@@ -2523,13 +2525,12 @@ class MSDialect(default.DefaultDialect):
)
coltype = sqltypes.NULLTYPE
else:
- if (
- issubclass(coltype, sqltypes.Numeric)
- and coltype is not MSReal
- ):
- kwargs["scale"] = numericscale
+ if issubclass(coltype, sqltypes.Numeric):
kwargs["precision"] = numericprec
+ if not issubclass(coltype, sqltypes.Float):
+ kwargs["scale"] = numericscale
+
coltype = coltype(**kwargs)
cdict = {
"name": name,