(
self,
typeclause: elements.TypeClause,
type_: Optional[TypeEngine[Any]] = None,
**kw: Any,
)
| 1613 | return text |
| 1614 | |
| 1615 | def visit_typeclause( |
| 1616 | self, |
| 1617 | typeclause: elements.TypeClause, |
| 1618 | type_: Optional[TypeEngine[Any]] = None, |
| 1619 | **kw: Any, |
| 1620 | ) -> Optional[str]: |
| 1621 | if type_ is None: |
| 1622 | type_ = typeclause.type.dialect_impl(self.dialect) |
| 1623 | if isinstance(type_, sqltypes.TypeDecorator): |
| 1624 | return self.visit_typeclause(typeclause, type_.impl, **kw) # type: ignore[arg-type] # noqa: E501 |
| 1625 | elif isinstance(type_, sqltypes.Integer): |
| 1626 | if getattr(type_, "unsigned", False): |
| 1627 | return "UNSIGNED INTEGER" |
| 1628 | else: |
| 1629 | return "SIGNED INTEGER" |
| 1630 | elif isinstance(type_, sqltypes.TIMESTAMP): |
| 1631 | return "DATETIME" |
| 1632 | elif isinstance( |
| 1633 | type_, |
| 1634 | ( |
| 1635 | sqltypes.DECIMAL, |
| 1636 | sqltypes.DateTime, |
| 1637 | sqltypes.Date, |
| 1638 | sqltypes.Time, |
| 1639 | ), |
| 1640 | ): |
| 1641 | return self.dialect.type_compiler_instance.process(type_) |
| 1642 | elif isinstance(type_, sqltypes.String) and not isinstance( |
| 1643 | type_, (ENUM, SET) |
| 1644 | ): |
| 1645 | adapted = CHAR._adapt_string_for_cast(type_) |
| 1646 | return self.dialect.type_compiler_instance.process(adapted) |
| 1647 | elif isinstance(type_, sqltypes._Binary): |
| 1648 | return "BINARY" |
| 1649 | elif isinstance(type_, sqltypes.JSON): |
| 1650 | return "JSON" |
| 1651 | elif isinstance(type_, sqltypes.NUMERIC): |
| 1652 | return self.dialect.type_compiler_instance.process(type_).replace( |
| 1653 | "NUMERIC", "DECIMAL" |
| 1654 | ) |
| 1655 | elif ( |
| 1656 | isinstance(type_, sqltypes.Float) |
| 1657 | and self.dialect._support_float_cast |
| 1658 | ): |
| 1659 | return self.dialect.type_compiler_instance.process(type_) |
| 1660 | else: |
| 1661 | return None |
| 1662 | |
| 1663 | def visit_cast(self, cast: elements.Cast[Any], **kw: Any) -> str: |
| 1664 | type_ = self.process(cast.typeclause) |
nothing calls this directly
no test coverage detected