summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/connectors/pyodbc.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2011-12-04 13:29:29 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2011-12-04 13:29:29 -0500
commit3867ea9dc7b432f84d29496c1824486b14cd8bfa (patch)
treedc3ca7e039d6e7b3dbf4906bb9781fb44038a017 /lib/sqlalchemy/connectors/pyodbc.py
parent00b7f8be52d756136a2ef71f192fc37f3b6229b7 (diff)
downloadsqlalchemy-3867ea9dc7b432f84d29496c1824486b14cd8bfa.tar.gz
- [bug] pyodbc-based dialects now parse the
pyodbc accurately as far as observed pyodbc strings, including such gems as "py3-3.0.1-beta4" [ticket:2318] - [bug] use new pyodbc version detection for _need_decimal_fix option, [ticket:2318]
Diffstat (limited to 'lib/sqlalchemy/connectors/pyodbc.py')
-rw-r--r--lib/sqlalchemy/connectors/pyodbc.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/sqlalchemy/connectors/pyodbc.py b/lib/sqlalchemy/connectors/pyodbc.py
index 562cf9273..b90846de0 100644
--- a/lib/sqlalchemy/connectors/pyodbc.py
+++ b/lib/sqlalchemy/connectors/pyodbc.py
@@ -126,6 +126,23 @@ class PyODBCConnector(Connector):
# run other initialization which asks for user name, etc.
super(PyODBCConnector, self).initialize(connection)
+ def _dbapi_version(self):
+ if not self.dbapi:
+ return ()
+ return self._parse_dbapi_version(self.dbapi.version)
+
+ def _parse_dbapi_version(self, vers):
+ m = re.match(
+ r'(?:py.*-)?([\d\.]+)(?:-(\w+))?',
+ vers
+ )
+ if not m:
+ return ()
+ vers = tuple([int(x) for x in m.group(1).split(".")])
+ if m.group(2):
+ vers += (m.group(2),)
+ return vers
+
def _get_server_version_info(self, connection):
dbapi_con = connection.connection
version = []