From 8d0174792021d46a0a81cdb0f613d0eac8ca41f9 Mon Sep 17 00:00:00 2001 From: Gord Thompson Date: Wed, 2 Oct 2019 08:37:13 -0600 Subject: [PATCH] implement dialect-specific _pyodbcTIME class --- lib/sqlalchemy/dialects/mysql/pyodbc.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/sqlalchemy/dialects/mysql/pyodbc.py b/lib/sqlalchemy/dialects/mysql/pyodbc.py index e8d2034a17..7efb767db7 100644 --- a/lib/sqlalchemy/dialects/mysql/pyodbc.py +++ b/lib/sqlalchemy/dialects/mysql/pyodbc.py @@ -26,10 +26,20 @@ import re from .base import MySQLDialect from .base import MySQLExecutionContext +from .types import TIME from ... import util from ...connectors.pyodbc import PyODBCConnector +class _pyodbcTIME(TIME): + def result_processor(self, dialect, coltype): + def process(value): + # pyodbc already returns a datetime.time object, so no need to convert + return value + + return process + + class MySQLExecutionContext_pyodbc(MySQLExecutionContext): def get_lastrowid(self): cursor = self.create_cursor() @@ -40,6 +50,7 @@ class MySQLExecutionContext_pyodbc(MySQLExecutionContext): class MySQLDialect_pyodbc(PyODBCConnector, MySQLDialect): + colspecs = util.update_copy(MySQLDialect.colspecs, {TIME: _pyodbcTIME}) supports_unicode_statements = False execution_ctx_cls = MySQLExecutionContext_pyodbc -- 2.47.3