from .base import VARBINARY
from .base import VARCHAR
from .base import XML
+from .base import TRY_CAST
base.dialect = dialect = pyodbc.dialect
"UNIQUEIDENTIFIER",
"SQL_VARIANT",
"XML",
+ "TRY_CAST",
"dialect",
)
__visit_name__ = "SQL_VARIANT"
+class TRY_CAST(elements.Cast):
+ pass
+
+
# old names.
MSDateTime = _MSDateTime
MSDate = _MSDate
# Limit in mssql is after the select keyword
return ""
+ def _try_cast(self, element, **kw):
+ return "TRY CAST (%s AS %s)" % (
+ compiler.SQLCompiler.process(element.clause, **kw),
+ compiler.SQLCompiler.process(element.typeclause, **kw),
+ )
+
def visit_select(self, select, **kwargs):
"""Look for ``LIMIT`` and OFFSET in a select statement, and if
so tries to wrap it in a subquery with ``row_number()`` criterion.