diff options
Diffstat (limited to 'lib/sqlalchemy/dialects/mssql/base.py')
-rw-r--r-- | lib/sqlalchemy/dialects/mssql/base.py | 39 |
1 files changed, 17 insertions, 22 deletions
diff --git a/lib/sqlalchemy/dialects/mssql/base.py b/lib/sqlalchemy/dialects/mssql/base.py index b1fb46041..028322677 100644 --- a/lib/sqlalchemy/dialects/mssql/base.py +++ b/lib/sqlalchemy/dialects/mssql/base.py @@ -175,8 +175,9 @@ class REAL(sqltypes.Float): __visit_name__ = 'REAL' - def __init__(self): - super(REAL, self).__init__(precision=24) + def __init__(self, **kw): + kw.setdefault('precision', 24) + super(REAL, self).__init__(**kw) class TINYINT(sqltypes.Integer): __visit_name__ = 'TINYINT' @@ -258,7 +259,8 @@ class SMALLDATETIME(_DateTimeBase, sqltypes.DateTime): class DATETIME2(_DateTimeBase, sqltypes.DateTime): __visit_name__ = 'DATETIME2' - def __init__(self, precision=None, **kwargs): + def __init__(self, precision=None, **kw): + super(DATETIME2, self).__init__(**kw) self.precision = precision @@ -278,16 +280,15 @@ class _StringType(object): class TEXT(_StringType, sqltypes.TEXT): """MSSQL TEXT type, for variable-length text up to 2^31 characters.""" - def __init__(self, *args, **kw): + def __init__(self, length=None, collation=None, **kw): """Construct a TEXT. :param collation: Optional, a column-level collation for this string value. Accepts a Windows Collation Name or a SQL Collation Name. """ - collation = kw.pop('collation', None) _StringType.__init__(self, collation) - sqltypes.Text.__init__(self, *args, **kw) + sqltypes.Text.__init__(self, length, **kw) class NTEXT(_StringType, sqltypes.UnicodeText): """MSSQL NTEXT type, for variable-length unicode text up to 2^30 @@ -295,24 +296,22 @@ class NTEXT(_StringType, sqltypes.UnicodeText): __visit_name__ = 'NTEXT' - def __init__(self, *args, **kwargs): + def __init__(self, length=None, collation=None, **kw): """Construct a NTEXT. :param collation: Optional, a column-level collation for this string value. Accepts a Windows Collation Name or a SQL Collation Name. """ - collation = kwargs.pop('collation', None) _StringType.__init__(self, collation) - length = kwargs.pop('length', None) - sqltypes.UnicodeText.__init__(self, length, **kwargs) + sqltypes.UnicodeText.__init__(self, length, **kw) class VARCHAR(_StringType, sqltypes.VARCHAR): """MSSQL VARCHAR type, for variable-length non-Unicode data with a maximum of 8,000 characters.""" - def __init__(self, *args, **kw): + def __init__(self, length=None, collation=None, **kw): """Construct a VARCHAR. :param length: Optinal, maximum data length, in characters. @@ -333,16 +332,15 @@ class VARCHAR(_StringType, sqltypes.VARCHAR): value. Accepts a Windows Collation Name or a SQL Collation Name. """ - collation = kw.pop('collation', None) _StringType.__init__(self, collation) - sqltypes.VARCHAR.__init__(self, *args, **kw) + sqltypes.VARCHAR.__init__(self, length, **kw) class NVARCHAR(_StringType, sqltypes.NVARCHAR): """MSSQL NVARCHAR type. For variable-length unicode character data up to 4,000 characters.""" - def __init__(self, *args, **kw): + def __init__(self, length=None, collation=None, **kw): """Construct a NVARCHAR. :param length: Optional, Maximum data length, in characters. @@ -351,15 +349,14 @@ class NVARCHAR(_StringType, sqltypes.NVARCHAR): value. Accepts a Windows Collation Name or a SQL Collation Name. """ - collation = kw.pop('collation', None) _StringType.__init__(self, collation) - sqltypes.NVARCHAR.__init__(self, *args, **kw) + sqltypes.NVARCHAR.__init__(self, length, **kw) class CHAR(_StringType, sqltypes.CHAR): """MSSQL CHAR type, for fixed-length non-Unicode data with a maximum of 8,000 characters.""" - def __init__(self, *args, **kw): + def __init__(self, length=None, collation=None, **kw): """Construct a CHAR. :param length: Optinal, maximum data length, in characters. @@ -380,16 +377,15 @@ class CHAR(_StringType, sqltypes.CHAR): value. Accepts a Windows Collation Name or a SQL Collation Name. """ - collation = kw.pop('collation', None) _StringType.__init__(self, collation) - sqltypes.CHAR.__init__(self, *args, **kw) + sqltypes.CHAR.__init__(self, length, **kw) class NCHAR(_StringType, sqltypes.NCHAR): """MSSQL NCHAR type. For fixed-length unicode character data up to 4,000 characters.""" - def __init__(self, *args, **kw): + def __init__(self, length=None, collation=None, **kw): """Construct an NCHAR. :param length: Optional, Maximum data length, in characters. @@ -398,9 +394,8 @@ class NCHAR(_StringType, sqltypes.NCHAR): value. Accepts a Windows Collation Name or a SQL Collation Name. """ - collation = kw.pop('collation', None) _StringType.__init__(self, collation) - sqltypes.NCHAR.__init__(self, *args, **kw) + sqltypes.NCHAR.__init__(self, length, **kw) class IMAGE(sqltypes.LargeBinary): __visit_name__ = 'IMAGE' |