diff options
author | Bartlomiej Biernacki <pax0r@o2.pl> | 2019-01-31 09:33:01 -0500 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2019-02-01 22:04:22 -0500 |
commit | 620bfde695079eeab35467086956764616de037c (patch) | |
tree | a25675d8b6ed2b0000ebd999c51853c100c24cde /lib/sqlalchemy/dialects/sqlite/base.py | |
parent | 5ae8a54ed381735a88141b8ec5326b21c36e793b (diff) | |
download | sqlalchemy-620bfde695079eeab35467086956764616de037c.tar.gz |
Render parenthesis around sqlite expression defaults
Fixed bug in SQLite DDL where using an expression as a server side default
required that it be contained within parenthesis to be accepted by the
sqlite parser. Pull request courtesy Bartlomiej Biernacki.
Fixes: #4474
Closes: #4475
Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/4475
Pull-request-sha: 0af3238c69c2610333cf62082c12047d45c31ce0
Change-Id: I888c69bfba5a5ab8ffa420f512557ac311a36b31
(cherry picked from commit f7ce37e9dd493d4b60b3156f08ef4c98fd63904d)
Diffstat (limited to 'lib/sqlalchemy/dialects/sqlite/base.py')
-rw-r--r-- | lib/sqlalchemy/dialects/sqlite/base.py | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/sqlalchemy/dialects/sqlite/base.py b/lib/sqlalchemy/dialects/sqlite/base.py index bc7f7fce4..d6a713988 100644 --- a/lib/sqlalchemy/dialects/sqlite/base.py +++ b/lib/sqlalchemy/dialects/sqlite/base.py @@ -583,6 +583,7 @@ from ... import types as sqltypes from ... import util from ...engine import default from ...engine import reflection +from ...sql import ColumnElement from ...sql import compiler from ...types import BLOB # noqa from ...types import BOOLEAN # noqa @@ -1034,6 +1035,8 @@ class SQLiteDDLCompiler(compiler.DDLCompiler): colspec = self.preparer.format_column(column) + " " + coltype default = self.get_column_default_string(column) if default is not None: + if isinstance(column.server_default.arg, ColumnElement): + default = "(" + default + ")" colspec += " DEFAULT " + default if not column.nullable: |