summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql/compiler.py
diff options
context:
space:
mode:
authorFederico Caselli <cfederico87@gmail.com>2021-01-07 21:22:52 +0100
committerMike Bayer <mike_mp@zzzcomputing.com>2021-01-16 18:39:11 -0500
commit3ebc3710a72c9bb724e7074ef0409ae69cfc39fe (patch)
tree77f81978aa29869e516615998cb35ef1ce6dd115 /lib/sqlalchemy/sql/compiler.py
parent6137d223be8e596fb2d7c78623ab22162db8ea6e (diff)
downloadsqlalchemy-3ebc3710a72c9bb724e7074ef0409ae69cfc39fe.tar.gz
``Identity`` implies ``nullable=False``.
Altered the behavior of the :class:`_schema.Identity` construct such that when applied to a :class:`_schema.Column`, it will automatically imply that the value of :paramref:`_sql.Column.nullable` should default to ``False``, in a similar manner as when the :paramref:`_sql.Column.primary_key` parameter is set to ``True``. This matches the default behavior of all supporting databases where ``IDENTITY`` implies ``NOT NULL``. The PostgreSQL backend is the only one that supports adding ``NULL`` to an ``IDENTITY`` column, which is here supported by passing a ``True`` value for the :paramref:`_sql.Column.nullable` parameter at the same time. Fixes: #5775 Change-Id: I0516d506ff327cff35cda605e8897a27440e0373
Diffstat (limited to 'lib/sqlalchemy/sql/compiler.py')
-rw-r--r--lib/sqlalchemy/sql/compiler.py2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/sqlalchemy/sql/compiler.py b/lib/sqlalchemy/sql/compiler.py
index 45cb75c25..ef7db0bbe 100644
--- a/lib/sqlalchemy/sql/compiler.py
+++ b/lib/sqlalchemy/sql/compiler.py
@@ -4130,7 +4130,7 @@ class DDLCompiler(Compiled):
if column.identity is not None:
colspec += " " + self.process(column.identity)
- if not column.nullable:
+ if not column.nullable and not column.identity:
colspec += " NOT NULL"
return colspec