summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Riedemann <mriedem@us.ibm.com>2016-10-10 11:43:07 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2016-10-10 11:54:04 -0400
commit4b94ee113baab901aee881ad94851587c912f785 (patch)
tree449e4ae8a6bffc42c4b95c493237bb0af27d7565
parentb9d0e2d5c55f68193fae001bb553a51018ab8ed6 (diff)
downloadsqlalchemy-4b94ee113baab901aee881ad94851587c912f785.tar.gz
Update the Column.nullable docstring for the primary_key=True case
While reviewing a change that created a new table, the primary_key column value was set to True but nullable was not explicitly set, which led to some confusion over the default behavior for the nullable column value when setting a primary_key. Looking at the docs it's not clear, but the code shows that if nullable is not specified, then nullable = not primary_key, so nullable defaults to False when primary_key is True. This patch adds a simple clarification to the docs so people don't have to check the code. Change-Id: I8553339d56fbae11370c7c6af6d8d4723163be1c Pull-request: https://github.com/zzzeek/sqlalchemy/pull/312
-rw-r--r--lib/sqlalchemy/sql/schema.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/lib/sqlalchemy/sql/schema.py b/lib/sqlalchemy/sql/schema.py
index df7e419ca..27ef9e01b 100644
--- a/lib/sqlalchemy/sql/schema.py
+++ b/lib/sqlalchemy/sql/schema.py
@@ -1048,10 +1048,14 @@ class Column(SchemaItem, ColumnClause):
:param info: Optional data dictionary which will be populated into the
:attr:`.SchemaItem.info` attribute of this object.
- :param nullable: If set to the default of ``True``, indicates the
- column will be rendered as allowing NULL, else it's rendered as
- NOT NULL. This parameter is only used when issuing CREATE TABLE
- statements.
+ :param nullable: When set to ``False``, will cause the "NOT NULL"
+ phrase to be added when generating DDL for the column. When
+ ``True``, will normally generate nothing (in SQL this defaults to
+ "NULL"), except in some very specific backend-specific edge cases
+ where "NULL" may render explicitly. Defaults to ``True`` unless
+ :paramref:`~.Column.primary_key` is also ``True``, in which case it
+ defaults to ``False``. This parameter is only used when issuing
+ CREATE TABLE statements.
:param onupdate: A scalar, Python callable, or
:class:`~sqlalchemy.sql.expression.ClauseElement` representing a