diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-12-04 13:29:29 -0500 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-12-04 13:29:29 -0500 |
commit | 3867ea9dc7b432f84d29496c1824486b14cd8bfa (patch) | |
tree | dc3ca7e039d6e7b3dbf4906bb9781fb44038a017 /lib/sqlalchemy/connectors/pyodbc.py | |
parent | 00b7f8be52d756136a2ef71f192fc37f3b6229b7 (diff) | |
download | sqlalchemy-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.py | 17 |
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 = [] |