]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
implement dialect-specific _pyodbcTIME class
authorGord Thompson <gord@gordthompson.com>
Wed, 2 Oct 2019 14:37:13 +0000 (08:37 -0600)
committerGord Thompson <gord@gordthompson.com>
Wed, 2 Oct 2019 14:37:13 +0000 (08:37 -0600)
lib/sqlalchemy/dialects/mysql/pyodbc.py

index e8d2034a1744ce80c0ab21c9dff69b2416a7cb56..7efb767db729f379b9c84f21adedd85f660983d9 100644 (file)
@@ -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