diff options
| author | mike bayer <mike_mp@zzzcomputing.com> | 2018-03-30 12:55:58 -0400 |
|---|---|---|
| committer | Gerrit Code Review <gerrit@ci.zzzcomputing.com> | 2018-03-30 12:55:58 -0400 |
| commit | 85af25b7d1dbf21f2607739de74067684ef37dd1 (patch) | |
| tree | a98848d618ba320ace3751928afa44096bdd31e6 /lib/sqlalchemy | |
| parent | c5437296713288cbfcd323032ca48a75a97e10e5 (diff) | |
| parent | f55c4f6bd2cb2f2b18e62159361ce7ecb5897396 (diff) | |
| download | sqlalchemy-85af25b7d1dbf21f2607739de74067684ef37dd1.tar.gz | |
Merge "Filter non-integer characters from pyodbc SQL Server version"
Diffstat (limited to 'lib/sqlalchemy')
| -rw-r--r-- | lib/sqlalchemy/connectors/pyodbc.py | 5 | ||||
| -rw-r--r-- | lib/sqlalchemy/dialects/mssql/pyodbc.py | 6 |
2 files changed, 7 insertions, 4 deletions
diff --git a/lib/sqlalchemy/connectors/pyodbc.py b/lib/sqlalchemy/connectors/pyodbc.py index d8c3fcec4..41ba89de6 100644 --- a/lib/sqlalchemy/connectors/pyodbc.py +++ b/lib/sqlalchemy/connectors/pyodbc.py @@ -134,7 +134,7 @@ class PyODBCConnector(Connector): vers += (m.group(2),) return vers - def _get_server_version_info(self, connection): + def _get_server_version_info(self, connection, allow_chars=True): # NOTE: this function is not reliable, particularly when # freetds is in use. Implement database-specific server version # queries. @@ -145,7 +145,8 @@ class PyODBCConnector(Connector): try: version.append(int(n)) except ValueError: - version.append(n) + if allow_chars: + version.append(n) return tuple(version) def set_isolation_level(self, connection, level): diff --git a/lib/sqlalchemy/dialects/mssql/pyodbc.py b/lib/sqlalchemy/dialects/mssql/pyodbc.py index 14e8ae838..36bcc49b3 100644 --- a/lib/sqlalchemy/dialects/mssql/pyodbc.py +++ b/lib/sqlalchemy/dialects/mssql/pyodbc.py @@ -276,6 +276,8 @@ class MSDialect_pyodbc(PyODBCConnector, MSDialect): def _get_server_version_info(self, connection): try: + # "Version of the instance of SQL Server, in the form + # of 'major.minor.build.revision'" raw = connection.scalar( "SELECT CAST(SERVERPROPERTY('ProductVersion') AS VARCHAR)") except exc.DBAPIError: @@ -283,7 +285,7 @@ class MSDialect_pyodbc(PyODBCConnector, MSDialect): # 2008. Before we had the VARCHAR cast above, pyodbc would also # fail on this query. return super(MSDialect_pyodbc, self).\ - _get_server_version_info(connection) + _get_server_version_info(connection, allow_chars=False) else: version = [] r = re.compile(r'[.\-]') @@ -291,7 +293,7 @@ class MSDialect_pyodbc(PyODBCConnector, MSDialect): try: version.append(int(n)) except ValueError: - version.append(n) + pass return tuple(version) def is_disconnect(self, e, connection, cursor): |
