return colspec
def _define_constraint_validity(self, constraint):
- if self.dialect._supports_not_valid_constraints:
- not_valid = constraint.dialect_options["postgresql"]["not_valid"]
- if not_valid:
- return " NOT VALID"
-
- return ""
+ not_valid = constraint.dialect_options["postgresql"]["not_valid"]
+ return " NOT VALID" if not_valid else ""
def visit_check_constraint(self, constraint):
if constraint._type_bound:
_backslash_escapes = True
_supports_create_index_concurrently = True
_supports_drop_index_concurrently = True
- _supports_not_valid_constraints = True
def __init__(self, json_serializer=None, json_deserializer=None, **kwargs):
default.DefaultDialect.__init__(self, **kwargs)
2,
)
self.supports_identity_columns = self.server_version_info >= (10,)
- self._supports_not_valid_constraints = self.server_version_info >= (
- 9,
- 1,
- )
def get_isolation_level_values(self, dbapi_conn):
# note the generic dialect doesn't have AUTOCOMMIT, however
"CREATE TABLE testtbl (data INTEGER, CHECK (data = 0) NOT VALID)",
)
- dialect_9_0 = postgresql.dialect()
- dialect_9_0._supports_not_valid_constraints = False
- self.assert_compile(
- schema.CreateTable(tbl),
- "CREATE TABLE testtbl (data INTEGER, CHECK (data = 0))",
- dialect=dialect_9_0,
- )
-
def test_create_foreign_key_constraint_not_valid(self):
m = MetaData()
")",
)
- dialect_9_0 = postgresql.dialect()
- dialect_9_0._supports_not_valid_constraints = False
- self.assert_compile(
- schema.CreateTable(tbl),
- "CREATE TABLE testtbl ("
- "a INTEGER, "
- "b INTEGER, "
- "FOREIGN KEY(b) REFERENCES testtbl (a)"
- ")",
- dialect=dialect_9_0,
- )
-
def test_exclude_constraint_min(self):
m = MetaData()
tbl = Table("testtbl", m, Column("room", Integer, primary_key=True))