Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 4d940d36 authored by PAPERMAN Charles's avatar PAPERMAN Charles
Browse files

Merge branch 'hotfix/fix_check_in_ColumnSpec' into 'master'

Hotfix/fix check in column spec

See merge request !96
parents 22fcb196 2d11182b
Branches
Tags
1 merge request!96Hotfix/fix check in column spec
Pipeline #999831 passed
......@@ -320,25 +320,26 @@ class ColumnSpec:
def to_named_column(
self: NamedColumn | ColumnSpec,
relation_name: Optional[str] = None,
schema_name: Optional[str] = None,
relation_name: str | None | _MISSING_TYPE = MISSING,
schema_name: str | None | _MISSING_TYPE = MISSING,
) -> NamedColumn:
assert self.name
assert self.sqltype
assert (
not self.relation_name
or not relation_name
or self.relation_name == relation_name
)
assert (
not self.schema_name or not schema_name or self.schema_name == schema_name
)
return NamedColumn(
self.sqltype,
self.name,
self.relation_name or relation_name,
self.schema_name or schema_name,
)
if relation_name is MISSING:
relation_name = self.relation_name
elif relation_name is None:
schema_name = None
relation_name = cast(Optional[str], relation_name)
if schema_name is MISSING:
schema_name = self.schema_name
schema_name = cast(Optional[str], schema_name)
if relation_name:
assert not self.relation_name or self.relation_name == relation_name
if schema_name:
assert relation_name
assert not self.schema_name or self.schema_name == schema_name
return NamedColumn(self.sqltype, self.name, relation_name, schema_name)
@classmethod
def _resolve_str_spec(
......@@ -467,7 +468,7 @@ class ColumnSpec:
check: Optional[str | Column | qb.atoms.constraints.ColumnCheck | tuple | dict]
if callable(self.check):
check = self.check(self.to_named_column(), rel)
check = self.check(self.to_named_column(relation_name=None), rel)
else:
check = self.check
if check is not None:
......@@ -497,6 +498,7 @@ class ColumnSpec:
qb.atoms.constraints.ColumnDefault,
]
if callable(self.default):
# TODO: when is a callable default useful?
default = self.default(self.to_named_column())
else:
default = self.default
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment