A marker for a transparent database-side default. Use :class:`.FetchedValue` when the database is configured to provide some automatic default for a column. E.g.:: Column("foo", Integer, FetchedValue()) Would indicate that some trigger or default generator will create
| 4352 | |
| 4353 | @inspection._self_inspects |
| 4354 | class FetchedValue(SchemaEventTarget): |
| 4355 | """A marker for a transparent database-side default. |
| 4356 | |
| 4357 | Use :class:`.FetchedValue` when the database is configured |
| 4358 | to provide some automatic default for a column. |
| 4359 | |
| 4360 | E.g.:: |
| 4361 | |
| 4362 | Column("foo", Integer, FetchedValue()) |
| 4363 | |
| 4364 | Would indicate that some trigger or default generator |
| 4365 | will create a new value for the ``foo`` column during an |
| 4366 | INSERT. |
| 4367 | |
| 4368 | .. seealso:: |
| 4369 | |
| 4370 | :ref:`triggered_columns` |
| 4371 | |
| 4372 | """ |
| 4373 | |
| 4374 | is_server_default = True |
| 4375 | reflected = False |
| 4376 | has_argument = False |
| 4377 | is_clause_element = False |
| 4378 | is_identity = False |
| 4379 | _is_monotonic_fn = False |
| 4380 | |
| 4381 | column: Optional[Column[Any]] |
| 4382 | |
| 4383 | def __init__(self, for_update: bool = False) -> None: |
| 4384 | self.for_update = for_update |
| 4385 | |
| 4386 | def _as_for_update(self, for_update: bool) -> FetchedValue: |
| 4387 | if for_update == self.for_update: |
| 4388 | return self |
| 4389 | else: |
| 4390 | return self._clone(for_update) |
| 4391 | |
| 4392 | def _copy(self) -> FetchedValue: |
| 4393 | return FetchedValue(self.for_update) |
| 4394 | |
| 4395 | def _clone(self, for_update: bool) -> Self: |
| 4396 | n = self.__class__.__new__(self.__class__) |
| 4397 | n.__dict__.update(self.__dict__) |
| 4398 | n.__dict__.pop("column", None) |
| 4399 | n.for_update = for_update |
| 4400 | return n |
| 4401 | |
| 4402 | def _set_parent(self, parent: SchemaEventTarget, **kw: Any) -> None: |
| 4403 | column = parent |
| 4404 | assert isinstance(column, Column) |
| 4405 | self.column = column |
| 4406 | if self.for_update: |
| 4407 | self.column.server_onupdate = self |
| 4408 | else: |
| 4409 | self.column.server_default = self |
| 4410 | |
| 4411 | def __repr__(self) -> str: |
no outgoing calls