Represent a SQL EXTRACT clause, ``extract(field FROM expr)``.
| 3818 | |
| 3819 | |
| 3820 | class Extract(ColumnElement[int]): |
| 3821 | """Represent a SQL EXTRACT clause, ``extract(field FROM expr)``.""" |
| 3822 | |
| 3823 | __visit_name__ = "extract" |
| 3824 | |
| 3825 | _traverse_internals: _TraverseInternalsType = [ |
| 3826 | ("expr", InternalTraversal.dp_clauseelement), |
| 3827 | ("field", InternalTraversal.dp_string), |
| 3828 | ] |
| 3829 | |
| 3830 | expr: ColumnElement[Any] |
| 3831 | field: str |
| 3832 | |
| 3833 | def __init__(self, field: str, expr: _ColumnExpressionArgument[Any]): |
| 3834 | self.type = type_api.INTEGERTYPE |
| 3835 | self.field = field |
| 3836 | self.expr = coercions.expect(roles.ExpressionElementRole, expr) |
| 3837 | |
| 3838 | @util.ro_non_memoized_property |
| 3839 | def _from_objects(self) -> List[FromClause]: |
| 3840 | return self.expr._from_objects |
| 3841 | |
| 3842 | |
| 3843 | class _label_reference(ColumnElement[_T]): |