diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-12-17 14:19:22 -0500 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-12-17 14:19:22 -0500 |
commit | 2e7a54d6fbfe9260887a0eb848e296e3b5e59c47 (patch) | |
tree | 66b121a8a3a984e676acf47997ac119878d7ccd1 /lib/sqlalchemy/dialects/mssql/base.py | |
parent | b5f3648188ee46e7c0353d3123f8ed6d55f31b56 (diff) | |
parent | ba964522e15da9062f5ed11e8bf55a0b5fb54693 (diff) | |
download | sqlalchemy-2e7a54d6fbfe9260887a0eb848e296e3b5e59c47.tar.gz |
merge tip
Diffstat (limited to 'lib/sqlalchemy/dialects/mssql/base.py')
-rw-r--r-- | lib/sqlalchemy/dialects/mssql/base.py | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/lib/sqlalchemy/dialects/mssql/base.py b/lib/sqlalchemy/dialects/mssql/base.py index 0b3dabc01..028322677 100644 --- a/lib/sqlalchemy/dialects/mssql/base.py +++ b/lib/sqlalchemy/dialects/mssql/base.py @@ -474,7 +474,7 @@ ischema_names = { class MSTypeCompiler(compiler.GenericTypeCompiler): - def _extend(self, spec, type_): + def _extend(self, spec, type_, length=None): """Extend a string-type declaration with standard SQL COLLATE annotations. @@ -484,9 +484,12 @@ class MSTypeCompiler(compiler.GenericTypeCompiler): collation = 'COLLATE %s' % type_.collation else: collation = None - - if type_.length: - spec = spec + "(%d)" % type_.length + + if not length: + length = type_.length + + if length: + spec = spec + "(%s)" % length return ' '.join([c for c in (spec, collation) if c is not None]) @@ -540,7 +543,8 @@ class MSTypeCompiler(compiler.GenericTypeCompiler): return self._extend("TEXT", type_) def visit_VARCHAR(self, type_): - return self._extend("VARCHAR", type_) + return self._extend("VARCHAR", type_, + length = type_.length or 'max') def visit_CHAR(self, type_): return self._extend("CHAR", type_) @@ -549,7 +553,8 @@ class MSTypeCompiler(compiler.GenericTypeCompiler): return self._extend("NCHAR", type_) def visit_NVARCHAR(self, type_): - return self._extend("NVARCHAR", type_) + return self._extend("NVARCHAR", type_, + length = type_.length or 'max') def visit_date(self, type_): if self.dialect.server_version_info < MS_2008_VERSION: |