summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/dialects/sqlite/base.py
diff options
context:
space:
mode:
authorBartlomiej Biernacki <pax0r@o2.pl>2019-01-31 09:33:01 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2019-02-01 22:04:22 -0500
commit620bfde695079eeab35467086956764616de037c (patch)
treea25675d8b6ed2b0000ebd999c51853c100c24cde /lib/sqlalchemy/dialects/sqlite/base.py
parent5ae8a54ed381735a88141b8ec5326b21c36e793b (diff)
downloadsqlalchemy-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.py3
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: